@poolzin/pool-bot 2026.3.7 → 2026.3.10
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 +40 -0
- package/README.md +147 -69
- package/dist/.buildstamp +1 -1
- package/dist/agents/error-classifier.js +251 -0
- package/dist/agents/skills/security.js +211 -0
- package/dist/build-info.json +3 -3
- package/dist/cli/cron-cli/register.cron-dashboard.js +339 -0
- package/dist/cli/cron-cli/register.js +2 -0
- package/dist/cli/errors.js +187 -0
- package/dist/cli/lazy-commands.example.js +113 -0
- package/dist/cli/lazy-commands.js +329 -0
- package/dist/cli/program/command-registry.js +26 -0
- package/dist/cli/program/register.maintenance.js +21 -0
- package/dist/cli/program/register.skills.js +4 -0
- package/dist/cli/program/register.subclis.js +9 -0
- package/dist/cli/swarm-cli/register.js +8 -0
- package/dist/cli/swarm-cli/register.swarm-status.js +488 -0
- package/dist/cli/telemetry-cli/register.js +10 -0
- package/dist/cli/telemetry-cli/register.telemetry-alerts.js +176 -0
- package/dist/cli/telemetry-cli/register.telemetry-metrics.js +323 -0
- package/dist/cli/telemetry-cli/register.telemetry-status.js +179 -0
- package/dist/commands/doctor-checks.js +498 -0
- package/dist/config/config.js +1 -0
- package/dist/config/secrets-integration.js +88 -0
- package/dist/context-engine/index.js +33 -0
- package/dist/context-engine/legacy.js +179 -0
- package/dist/context-engine/registry.js +86 -0
- package/dist/context-engine/summarizing.js +290 -0
- package/dist/context-engine/types.js +7 -0
- package/dist/cron/service/timer.js +18 -0
- package/dist/gateway/protocol/index.js +5 -2
- package/dist/gateway/protocol/schema/error-codes.js +1 -0
- package/dist/gateway/protocol/schema/swarm.js +80 -0
- package/dist/gateway/protocol/schema.js +1 -0
- package/dist/gateway/server-close.js +4 -0
- package/dist/gateway/server-constants.js +1 -0
- package/dist/gateway/server-cron.js +29 -0
- package/dist/gateway/server-maintenance.js +35 -2
- package/dist/gateway/server-methods/swarm.js +58 -0
- package/dist/gateway/server-methods/telemetry.js +71 -0
- package/dist/gateway/server-methods-list.js +8 -0
- package/dist/gateway/server-methods.js +9 -2
- package/dist/gateway/server.impl.js +33 -16
- package/dist/infra/abort-pattern.js +106 -0
- package/dist/infra/retry.js +96 -0
- package/dist/secrets/index.js +28 -0
- package/dist/secrets/resolver.js +185 -0
- package/dist/secrets/runtime.js +142 -0
- package/dist/secrets/types.js +11 -0
- package/dist/security/dangerous-tools.js +80 -0
- package/dist/security/types.js +12 -0
- package/dist/skills/commands.js +333 -0
- package/dist/skills/index.js +164 -0
- package/dist/skills/loader.js +282 -0
- package/dist/skills/parser.js +446 -0
- package/dist/skills/registry.js +394 -0
- package/dist/skills/security.js +312 -0
- package/dist/skills/types.js +21 -0
- package/dist/swarm/service.js +247 -0
- package/dist/telemetry/alert-engine.js +258 -0
- package/dist/telemetry/cron-instrumentation.js +49 -0
- package/dist/telemetry/gateway-instrumentation.js +80 -0
- package/dist/telemetry/instrumentation.js +66 -0
- package/dist/telemetry/service.js +345 -0
- package/dist/test-utils/index.js +219 -0
- package/dist/tui/components/assistant-message.js +6 -2
- package/dist/tui/components/hyperlink-markdown.js +32 -0
- package/dist/tui/components/searchable-select-list.js +12 -1
- package/dist/tui/components/user-message.js +6 -2
- package/dist/tui/index.js +611 -0
- package/dist/tui/theme/theme-detection.js +226 -0
- package/dist/tui/tui-command-handlers.js +20 -0
- package/dist/tui/tui-formatters.js +4 -3
- package/dist/tui/utils/ctrl-c-handler.js +67 -0
- package/dist/tui/utils/osc8-hyperlinks.js +208 -0
- package/dist/tui/utils/safe-stop.js +180 -0
- package/dist/tui/utils/session-key-utils.js +81 -0
- package/dist/tui/utils/text-sanitization.js +284 -0
- package/dist/utils/lru-cache.js +116 -0
- package/dist/utils/performance.js +199 -0
- package/dist/utils/retry.js +240 -0
- package/docs/INTEGRATION_PLAN.md +475 -0
- package/docs/INTEGRATION_SUMMARY.md +215 -0
- package/docs/MELHORIAS_IMPLEMENTADAS.md +228 -0
- package/docs/MELHORIAS_PROFISSIONAIS.md +282 -0
- package/docs/PLANO_ACAO_TUI.md +357 -0
- package/docs/PROGRESSO_TUI.md +66 -0
- package/docs/RELATORIO_FINAL.md +217 -0
- package/docs/diagnostico-shell-completion.md +265 -0
- package/docs/features/advanced-memory.md +585 -0
- package/docs/features/discord-components-v2.md +277 -0
- package/docs/features/swarm.md +100 -0
- package/docs/features/telemetry.md +284 -0
- package/docs/integrations/HEXSTRIKE_PLAN.md +796 -0
- package/docs/integrations/INTEGRATION_PLAN.md +744 -0
- package/docs/integrations/PAGE_AGENT_PLAN.md +370 -0
- package/docs/integrations/XYOPS_PLAN.md +978 -0
- package/docs/models/provider-infrastructure.md +400 -0
- package/docs/security/exec-approvals.md +294 -0
- package/docs/skills/IMPLEMENTATION_SUMMARY.md +145 -0
- package/docs/skills/SKILL.md +524 -0
- package/docs/skills.md +405 -0
- package/extensions/bluebubbles/package.json +1 -1
- package/extensions/copilot-proxy/package.json +1 -1
- package/extensions/diagnostics-otel/package.json +1 -1
- package/extensions/discord/package.json +1 -1
- package/extensions/feishu/package.json +1 -1
- package/extensions/google-antigravity-auth/package.json +1 -1
- package/extensions/google-gemini-cli-auth/package.json +1 -1
- package/extensions/googlechat/package.json +1 -1
- package/extensions/hexstrike-bridge/README.md +119 -0
- package/extensions/hexstrike-bridge/index.test.ts +247 -0
- package/extensions/hexstrike-bridge/index.ts +487 -0
- package/extensions/hexstrike-bridge/package.json +17 -0
- package/extensions/imessage/package.json +1 -1
- package/extensions/irc/package.json +1 -1
- package/extensions/line/package.json +1 -1
- package/extensions/llm-task/package.json +1 -1
- package/extensions/lobster/package.json +1 -1
- package/extensions/matrix/CHANGELOG.md +5 -0
- package/extensions/matrix/package.json +1 -1
- package/extensions/mattermost/package.json +1 -1
- package/extensions/mcp-server/index.ts +14 -0
- package/extensions/mcp-server/package.json +11 -0
- package/extensions/mcp-server/src/service.ts +540 -0
- package/extensions/memory-core/package.json +1 -1
- package/extensions/memory-lancedb/package.json +1 -1
- package/extensions/minimax-portal-auth/package.json +1 -1
- package/extensions/msteams/CHANGELOG.md +5 -0
- package/extensions/msteams/package.json +1 -1
- package/extensions/nextcloud-talk/package.json +1 -1
- package/extensions/nostr/CHANGELOG.md +5 -0
- package/extensions/nostr/package.json +1 -1
- package/extensions/open-prose/package.json +1 -1
- package/extensions/openai-codex-auth/package.json +1 -1
- package/extensions/signal/package.json +1 -1
- package/extensions/slack/package.json +1 -1
- package/extensions/telegram/package.json +1 -1
- package/extensions/tlon/package.json +1 -1
- package/extensions/twitch/CHANGELOG.md +5 -0
- package/extensions/twitch/package.json +1 -1
- package/extensions/voice-call/CHANGELOG.md +5 -0
- package/extensions/voice-call/package.json +1 -1
- package/extensions/whatsapp/package.json +1 -1
- package/extensions/zalo/CHANGELOG.md +5 -0
- package/extensions/zalo/package.json +1 -1
- package/extensions/zalouser/CHANGELOG.md +5 -0
- package/extensions/zalouser/package.json +1 -1
- package/package.json +8 -1
- package/skills/example-skill/SKILL.md +195 -0
package/docs/skills.md
ADDED
|
@@ -0,0 +1,405 @@
|
|
|
1
|
+
# PoolBot Skills System
|
|
2
|
+
|
|
3
|
+
The PoolBot Skills System provides modular, discoverable capabilities defined in SKILL.md files. Skills follow the [agentskills.io](https://agentskills.io) specification and support progressive disclosure, security scanning, and context integration.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
Skills are self-contained capability modules that:
|
|
8
|
+
|
|
9
|
+
- **Define when to use** them with clear criteria
|
|
10
|
+
- **Provide practical examples** and templates
|
|
11
|
+
- **Support progressive loading** (metadata → summary → full content)
|
|
12
|
+
- **Are automatically security scanned** for common vulnerabilities
|
|
13
|
+
- **Can be enabled/disabled** per session or globally
|
|
14
|
+
- **Integrate with the context engine** for LLM prompt injection
|
|
15
|
+
|
|
16
|
+
## Quick Start
|
|
17
|
+
|
|
18
|
+
### Listing Skills
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# List all skills
|
|
22
|
+
poolbot skills list
|
|
23
|
+
|
|
24
|
+
# Filter by category
|
|
25
|
+
poolbot skills list --category=productivity
|
|
26
|
+
|
|
27
|
+
# Show only enabled/disabled
|
|
28
|
+
poolbot skills list --enabled
|
|
29
|
+
poolbot skills list --disabled
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Viewing Skills
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
# View skill details (full content)
|
|
36
|
+
poolbot skills view github
|
|
37
|
+
|
|
38
|
+
# View with specific disclosure level
|
|
39
|
+
poolbot skills view github --level=summary
|
|
40
|
+
poolbot skills view github --level=metadata
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Searching Skills
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
# Search by text
|
|
47
|
+
poolbot skills search git
|
|
48
|
+
|
|
49
|
+
# Search with filters
|
|
50
|
+
poolbot skills search deploy --tag=devops
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Managing Skills
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
# Enable/disable skills
|
|
57
|
+
poolbot skills enable github
|
|
58
|
+
poolbot skills disable github
|
|
59
|
+
|
|
60
|
+
# Security scan
|
|
61
|
+
poolbot skills scan
|
|
62
|
+
poolbot skills scan ./skills/my-skill
|
|
63
|
+
|
|
64
|
+
# Statistics
|
|
65
|
+
poolbot skills stats
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Creating Skills
|
|
69
|
+
|
|
70
|
+
### File Structure
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
skills/
|
|
74
|
+
└── my-skill/
|
|
75
|
+
└── SKILL.md # Main skill definition
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### SKILL.md Format
|
|
79
|
+
|
|
80
|
+
```markdown
|
|
81
|
+
---
|
|
82
|
+
id: my-skill # Unique kebab-case identifier
|
|
83
|
+
name: My Skill # Human-readable name
|
|
84
|
+
description: | # Multi-line description
|
|
85
|
+
What this skill does and
|
|
86
|
+
when to use it.
|
|
87
|
+
version: 1.0.0 # Semver version
|
|
88
|
+
author: Your Name # Author attribution
|
|
89
|
+
categories: # Classification
|
|
90
|
+
- productivity
|
|
91
|
+
- automation
|
|
92
|
+
tags: # Searchable tags
|
|
93
|
+
- git
|
|
94
|
+
- github
|
|
95
|
+
- devops
|
|
96
|
+
metadata:
|
|
97
|
+
poolbot: # PoolBot-specific settings
|
|
98
|
+
emoji: 🚀
|
|
99
|
+
always: false # Load on every session?
|
|
100
|
+
requires: # Dependencies
|
|
101
|
+
bins: [gh, jq]
|
|
102
|
+
env: [GITHUB_TOKEN]
|
|
103
|
+
install: # Auto-install specs
|
|
104
|
+
- kind: brew
|
|
105
|
+
formula: gh
|
|
106
|
+
bins: [gh]
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
# My Skill
|
|
110
|
+
|
|
111
|
+
## When to Use
|
|
112
|
+
|
|
113
|
+
✅ **USE this skill when:**
|
|
114
|
+
- Condition 1
|
|
115
|
+
- Condition 2
|
|
116
|
+
|
|
117
|
+
❌ **DON'T use this skill when:**
|
|
118
|
+
- Condition 3
|
|
119
|
+
- Condition 4
|
|
120
|
+
|
|
121
|
+
## Common Commands
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
# Example command
|
|
125
|
+
poolbot command --option
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
## Templates
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
# Reusable template
|
|
132
|
+
echo "Template content"
|
|
133
|
+
```
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Frontmatter Fields
|
|
137
|
+
|
|
138
|
+
| Field | Type | Required | Description |
|
|
139
|
+
|-------|------|----------|-------------|
|
|
140
|
+
| `id` | string | Yes | Unique kebab-case identifier |
|
|
141
|
+
| `name` | string | Yes | Human-readable name |
|
|
142
|
+
| `description` | string | Yes | What the skill does |
|
|
143
|
+
| `version` | string | Yes | Semver version |
|
|
144
|
+
| `author` | string | No | Author attribution |
|
|
145
|
+
| `categories` | string[] | No | Classification tags |
|
|
146
|
+
| `tags` | string[] | No | Searchable keywords |
|
|
147
|
+
| `metadata.poolbot.emoji` | string | No | Emoji icon |
|
|
148
|
+
| `metadata.poolbot.always` | boolean | No | Load on every session |
|
|
149
|
+
| `metadata.poolbot.requires.bins` | string[] | No | Required binaries |
|
|
150
|
+
| `metadata.poolbot.requires.env` | string[] | No | Required env vars |
|
|
151
|
+
| `metadata.poolbot.install` | array | No | Auto-install specs |
|
|
152
|
+
|
|
153
|
+
### Categories
|
|
154
|
+
|
|
155
|
+
Choose from these standard categories:
|
|
156
|
+
|
|
157
|
+
- `communication` - Messaging, email, notifications
|
|
158
|
+
- `productivity` - Task management, notes, calendar
|
|
159
|
+
- `development` - Coding, git, CI/CD
|
|
160
|
+
- `devops` - Infrastructure, deployment, monitoring
|
|
161
|
+
- `data` - Databases, analytics, processing
|
|
162
|
+
- `media` - Images, video, audio
|
|
163
|
+
- `automation` - Workflows, scripting
|
|
164
|
+
- `integration` - APIs, webhooks, services
|
|
165
|
+
- `utility` - General-purpose tools
|
|
166
|
+
|
|
167
|
+
## Security
|
|
168
|
+
|
|
169
|
+
All skills are automatically scanned for:
|
|
170
|
+
|
|
171
|
+
- **Prompt injection** - Attempts to override system instructions
|
|
172
|
+
- **Command injection** - Dangerous shell command patterns
|
|
173
|
+
- **Path traversal** - File system escape attempts
|
|
174
|
+
- **Hardcoded credentials** - Passwords, tokens, keys
|
|
175
|
+
- **Suspicious encoding** - Base64 obfuscation
|
|
176
|
+
- **Data exfiltration** - Unauthorized data transmission
|
|
177
|
+
|
|
178
|
+
### Security Levels
|
|
179
|
+
|
|
180
|
+
| Severity | Description | Action |
|
|
181
|
+
|----------|-------------|--------|
|
|
182
|
+
| Critical | Immediate security risk | Block loading |
|
|
183
|
+
| High | Significant risk | Warn user |
|
|
184
|
+
| Medium | Moderate concern | Log only |
|
|
185
|
+
| Low | Minor issue | Silent |
|
|
186
|
+
| Info | FYI | Silent |
|
|
187
|
+
|
|
188
|
+
### Strict Mode
|
|
189
|
+
|
|
190
|
+
Enable strict mode to block skills with any high/critical findings:
|
|
191
|
+
|
|
192
|
+
```typescript
|
|
193
|
+
import { initSkills } from "./skills/index.js";
|
|
194
|
+
|
|
195
|
+
await initSkills({
|
|
196
|
+
security: {
|
|
197
|
+
strictMode: true, // Block on high/critical findings
|
|
198
|
+
autoScan: true, // Scan on load
|
|
199
|
+
},
|
|
200
|
+
});
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
## Context Integration
|
|
204
|
+
|
|
205
|
+
Skills can be automatically injected into LLM prompts based on the conversation context.
|
|
206
|
+
|
|
207
|
+
### Progressive Disclosure
|
|
208
|
+
|
|
209
|
+
Content loads incrementally to manage token usage:
|
|
210
|
+
|
|
211
|
+
1. **Metadata** (~50 tokens) - ID, name, description
|
|
212
|
+
2. **Summary** (~200 tokens) - Metadata + first section
|
|
213
|
+
3. **Full** (all tokens) - Complete content
|
|
214
|
+
|
|
215
|
+
### Query-Based Loading
|
|
216
|
+
|
|
217
|
+
```typescript
|
|
218
|
+
import { loadSkillForQuery } from "./skills/index.js";
|
|
219
|
+
|
|
220
|
+
// Load skills relevant to a query
|
|
221
|
+
const skills = await loadSkillForQuery("deploy to production", {
|
|
222
|
+
maxTokens: 2000,
|
|
223
|
+
disclosure: "summary",
|
|
224
|
+
});
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
### Context Preparation
|
|
228
|
+
|
|
229
|
+
```typescript
|
|
230
|
+
import { prepareSkillsForContext } from "./skills/index.js";
|
|
231
|
+
|
|
232
|
+
// Prepare skills for LLM context
|
|
233
|
+
const context = await prepareSkillsForContext({
|
|
234
|
+
skillIds: ["github", "docker"],
|
|
235
|
+
maxTokens: 4000,
|
|
236
|
+
disclosure: "full",
|
|
237
|
+
});
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
## Programmatic API
|
|
241
|
+
|
|
242
|
+
### Registry
|
|
243
|
+
|
|
244
|
+
```typescript
|
|
245
|
+
import { getRegistry } from "./skills/index.js";
|
|
246
|
+
|
|
247
|
+
const registry = getRegistry();
|
|
248
|
+
|
|
249
|
+
// Add a skill
|
|
250
|
+
await registry.addSkill("/path/to/skill");
|
|
251
|
+
|
|
252
|
+
// Search
|
|
253
|
+
const results = registry.searchSkills({
|
|
254
|
+
query: "git",
|
|
255
|
+
category: "development",
|
|
256
|
+
});
|
|
257
|
+
|
|
258
|
+
// Enable/disable
|
|
259
|
+
registry.enableSkill("github");
|
|
260
|
+
registry.disableSkill("github");
|
|
261
|
+
|
|
262
|
+
// Listen for events
|
|
263
|
+
registry.on("skillLoaded", (skill) => {
|
|
264
|
+
console.log(`Loaded: ${skill.name}`);
|
|
265
|
+
});
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
### Parser
|
|
269
|
+
|
|
270
|
+
```typescript
|
|
271
|
+
import { parseSkillFile } from "./skills/index.js";
|
|
272
|
+
|
|
273
|
+
const skill = parseSkillFile("/path/to/SKILL.md");
|
|
274
|
+
console.log(skill.metadata.name);
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
### Security
|
|
278
|
+
|
|
279
|
+
```typescript
|
|
280
|
+
import { scanSkill, quickSecurityCheck } from "./skills/index.js";
|
|
281
|
+
|
|
282
|
+
// Full scan
|
|
283
|
+
const report = scanSkill("my-skill", skillContent);
|
|
284
|
+
console.log(report.findings);
|
|
285
|
+
|
|
286
|
+
// Quick check
|
|
287
|
+
const isSafe = quickSecurityCheck("my-skill", skillContent);
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
## Examples
|
|
291
|
+
|
|
292
|
+
See the `skills/example-skill/SKILL.md` file for a comprehensive template.
|
|
293
|
+
|
|
294
|
+
### Simple Skill
|
|
295
|
+
|
|
296
|
+
```markdown
|
|
297
|
+
---
|
|
298
|
+
id: hello
|
|
299
|
+
name: Hello World
|
|
300
|
+
description: A simple greeting skill
|
|
301
|
+
version: 1.0.0
|
|
302
|
+
categories: [utility]
|
|
303
|
+
tags: [demo, example]
|
|
304
|
+
---
|
|
305
|
+
|
|
306
|
+
# Hello World
|
|
307
|
+
|
|
308
|
+
Says hello to the user.
|
|
309
|
+
|
|
310
|
+
## When to Use
|
|
311
|
+
|
|
312
|
+
Use when you want to greet someone.
|
|
313
|
+
|
|
314
|
+
## Commands
|
|
315
|
+
|
|
316
|
+
```bash
|
|
317
|
+
echo "Hello, World!"
|
|
318
|
+
```
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
### Complex Skill
|
|
322
|
+
|
|
323
|
+
```markdown
|
|
324
|
+
---
|
|
325
|
+
id: kubernetes-deploy
|
|
326
|
+
name: Kubernetes Deployment
|
|
327
|
+
description: Deploy applications to Kubernetes clusters
|
|
328
|
+
version: 2.1.0
|
|
329
|
+
author: DevOps Team
|
|
330
|
+
categories: [devops, automation]
|
|
331
|
+
tags: [k8s, kubernetes, deploy, helm]
|
|
332
|
+
metadata:
|
|
333
|
+
poolbot:
|
|
334
|
+
emoji: ☸️
|
|
335
|
+
requires:
|
|
336
|
+
bins: [kubectl, helm]
|
|
337
|
+
env: [KUBECONFIG]
|
|
338
|
+
---
|
|
339
|
+
|
|
340
|
+
# Kubernetes Deployment
|
|
341
|
+
|
|
342
|
+
Deploy and manage applications on Kubernetes clusters.
|
|
343
|
+
|
|
344
|
+
## When to Use
|
|
345
|
+
|
|
346
|
+
✅ **USE when:**
|
|
347
|
+
- Deploying to Kubernetes
|
|
348
|
+
- Managing Helm releases
|
|
349
|
+
- Checking pod status
|
|
350
|
+
|
|
351
|
+
❌ **DON'T use when:**
|
|
352
|
+
- Working with Docker Compose
|
|
353
|
+
- Managing bare-metal servers
|
|
354
|
+
|
|
355
|
+
## Common Commands
|
|
356
|
+
|
|
357
|
+
```bash
|
|
358
|
+
# Apply manifests
|
|
359
|
+
kubectl apply -f deployment.yaml
|
|
360
|
+
|
|
361
|
+
# Check status
|
|
362
|
+
kubectl get pods -n production
|
|
363
|
+
|
|
364
|
+
# Deploy with Helm
|
|
365
|
+
helm upgrade --install myapp ./chart
|
|
366
|
+
```
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
## Best Practices
|
|
370
|
+
|
|
371
|
+
1. **Clear descriptions** - Make the purpose obvious
|
|
372
|
+
2. **Specific criteria** - Define when to use (and when not to)
|
|
373
|
+
3. **Practical examples** - Include real, tested commands
|
|
374
|
+
4. **Security first** - Never include credentials
|
|
375
|
+
5. **Version properly** - Use semantic versioning
|
|
376
|
+
6. **Categorize well** - Choose appropriate categories
|
|
377
|
+
7. **Tag thoroughly** - Include relevant keywords
|
|
378
|
+
8. **Test examples** - Ensure commands actually work
|
|
379
|
+
|
|
380
|
+
## Troubleshooting
|
|
381
|
+
|
|
382
|
+
### Skill not appearing
|
|
383
|
+
|
|
384
|
+
- Check file is named exactly `SKILL.md`
|
|
385
|
+
- Verify YAML frontmatter is valid
|
|
386
|
+
- Ensure file is in a subdirectory of `skills/`
|
|
387
|
+
|
|
388
|
+
### Security scan failures
|
|
389
|
+
|
|
390
|
+
- Review findings with `poolbot skills scan`
|
|
391
|
+
- Remove hardcoded credentials
|
|
392
|
+
- Avoid suspicious patterns
|
|
393
|
+
- Use environment variables for secrets
|
|
394
|
+
|
|
395
|
+
### Context not loading
|
|
396
|
+
|
|
397
|
+
- Check skill is enabled: `poolbot skills list --enabled`
|
|
398
|
+
- Verify token limits aren't exceeded
|
|
399
|
+
- Try lower disclosure level
|
|
400
|
+
|
|
401
|
+
## See Also
|
|
402
|
+
|
|
403
|
+
- [agentskills.io specification](https://agentskills.io)
|
|
404
|
+
- [Example Skill](../skills/example-skill/SKILL.md)
|
|
405
|
+
- [CLI Reference](./cli/skills.md)
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# HexStrike Bridge Extension
|
|
2
|
+
|
|
3
|
+
Integração do PoolBot com HexStrike AI - plataforma de segurança com 150+ scanners.
|
|
4
|
+
|
|
5
|
+
## Visão Geral
|
|
6
|
+
|
|
7
|
+
Esta extensão conecta o PoolBot ao HexStrike AI, permitindo executar scans de segurança diretamente via CLI e gateway.
|
|
8
|
+
|
|
9
|
+
## Funcionalidades
|
|
10
|
+
|
|
11
|
+
- **150+ ferramentas de segurança** disponíveis via HexStrike
|
|
12
|
+
- **Scans assíncronos** com acompanhamento de progresso
|
|
13
|
+
- **CLI integrada** - comandos `poolbot security`
|
|
14
|
+
- **Gateway RPC** - métodos para integração com outros sistemas
|
|
15
|
+
|
|
16
|
+
## Instalação
|
|
17
|
+
|
|
18
|
+
A extensão é carregada automaticamente pelo PoolBot quando presente no diretório `extensions/`.
|
|
19
|
+
|
|
20
|
+
## Configuração
|
|
21
|
+
|
|
22
|
+
```json
|
|
23
|
+
{
|
|
24
|
+
"hexstrike-bridge": {
|
|
25
|
+
"baseUrl": "http://localhost:8888",
|
|
26
|
+
"timeoutMs": 300000,
|
|
27
|
+
"maxConcurrentScans": 3
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
| Opção | Descrição | Padrão |
|
|
33
|
+
|-------|-----------|--------|
|
|
34
|
+
| `baseUrl` | URL da API HexStrike | `http://localhost:8888` |
|
|
35
|
+
| `timeoutMs` | Timeout de scans em ms | `300000` (5min) |
|
|
36
|
+
| `maxConcurrentScans` | Máximo de scans paralelos | `3` |
|
|
37
|
+
|
|
38
|
+
## Comandos CLI
|
|
39
|
+
|
|
40
|
+
### Verificar status
|
|
41
|
+
```bash
|
|
42
|
+
poolbot security status
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Listar ferramentas disponíveis
|
|
46
|
+
```bash
|
|
47
|
+
poolbot security tools
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Executar scan
|
|
51
|
+
```bash
|
|
52
|
+
# Scan rápido (assíncrono)
|
|
53
|
+
poolbot security scan nmap example.com
|
|
54
|
+
|
|
55
|
+
# Scan com espera
|
|
56
|
+
poolbot security scan nmap example.com --wait
|
|
57
|
+
|
|
58
|
+
# Scan com timeout customizado
|
|
59
|
+
poolbot security scan nmap example.com --wait --timeout 600
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Verificar status do scan
|
|
63
|
+
```bash
|
|
64
|
+
poolbot security scan-status <job-id>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Gateway RPC Methods
|
|
68
|
+
|
|
69
|
+
| Método | Descrição |
|
|
70
|
+
|--------|-----------|
|
|
71
|
+
| `security.status` | Status da conexão HexStrike |
|
|
72
|
+
| `security.tools.list` | Lista ferramentas disponíveis |
|
|
73
|
+
| `security.scan.start` | Inicia um novo scan |
|
|
74
|
+
| `security.scan.status` | Status de um scan específico |
|
|
75
|
+
| `security.scan.list` | Lista todos os scans ativos |
|
|
76
|
+
|
|
77
|
+
## Exemplos de Uso
|
|
78
|
+
|
|
79
|
+
### Scan de portas com Nmap
|
|
80
|
+
```bash
|
|
81
|
+
poolbot security scan nmap 192.168.1.1 --wait
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Scan de vulnerabilidades
|
|
85
|
+
```bash
|
|
86
|
+
poolbot security scan nikto https://example.com --wait
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Verificar todos os scans em andamento
|
|
90
|
+
```bash
|
|
91
|
+
poolbot security scan-list
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Requisitos
|
|
95
|
+
|
|
96
|
+
- HexStrike AI rodando (por padrão em `localhost:8888`)
|
|
97
|
+
- PoolBot v2026.3.9+
|
|
98
|
+
|
|
99
|
+
## Troubleshooting
|
|
100
|
+
|
|
101
|
+
### "HexStrike offline"
|
|
102
|
+
Verifique se o HexStrike está rodando:
|
|
103
|
+
```bash
|
|
104
|
+
curl http://localhost:8888/health
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Timeout em scans longos
|
|
108
|
+
Aumente o timeout na configuração:
|
|
109
|
+
```json
|
|
110
|
+
{
|
|
111
|
+
"hexstrike-bridge": {
|
|
112
|
+
"timeoutMs": 600000
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## Licença
|
|
118
|
+
|
|
119
|
+
MIT - Parte do ecossistema PoolBot
|