@poolzin/pool-bot 2026.3.16 → 2026.3.18
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 +69 -0
- package/dist/agents/tools/web-fetch.js +1 -1
- package/dist/build-info.json +3 -3
- package/dist/commands/skills-openclaw.command.js +123 -0
- package/dist/config/paths.js +7 -0
- package/dist/infra/net/fetch-guard.js +191 -146
- package/dist/media/fetch.js +83 -112
- package/dist/media/inbound-path-policy.js +90 -97
- package/dist/media/read-response-with-limit.js +49 -26
- package/dist/media-understanding/attachments.js +1 -1
- package/dist/plugin-sdk/audio.js +7 -0
- package/dist/plugin-sdk/bluebubbles.js +7 -0
- package/dist/plugin-sdk/browser.js +7 -0
- package/dist/plugin-sdk/canvas.js +7 -0
- package/dist/plugin-sdk/cron.js +7 -0
- package/dist/plugin-sdk/discord-actions.js +6 -0
- package/dist/plugin-sdk/discord.js +7 -0
- package/dist/plugin-sdk/image.js +7 -0
- package/dist/plugin-sdk/imessage.js +6 -0
- package/dist/plugin-sdk/keyed-async-queue.js +35 -0
- package/dist/plugin-sdk/media.js +8 -0
- package/dist/plugin-sdk/memory.js +7 -0
- package/dist/plugin-sdk/pdf.js +7 -0
- package/dist/plugin-sdk/sessions.js +7 -0
- package/dist/plugin-sdk/signal.js +6 -0
- package/dist/plugin-sdk/slack-actions.js +7 -0
- package/dist/plugin-sdk/slack.js +7 -0
- package/dist/plugin-sdk/telegram-actions.js +6 -0
- package/dist/plugin-sdk/telegram.js +6 -0
- package/dist/plugin-sdk/test-utils.js +110 -0
- package/dist/plugin-sdk/tts.js +7 -0
- package/dist/plugin-sdk/whatsapp.js +6 -0
- package/dist/providers/github-copilot-auth.js +53 -76
- package/dist/providers/github-copilot-models.js +63 -35
- package/dist/providers/github-copilot-token.js +46 -89
- package/dist/security/audit-findings.js +165 -0
- package/dist/security/audit.js +141 -572
- package/dist/skills/openclaw-skill-loader.js +191 -0
- package/dist/slack/monitor/media.js +2 -1
- package/docs/branding-evaluation-2026-03-12.md +285 -0
- package/docs/improvements/OPENCLAW-IMPLEMENTATION.md +45 -0
- package/docs/skills/openclaw-integration.md +295 -0
- package/docs/testing/TEST-PLAN-2026-03-13.md +338 -0
- package/docs/version-2026.3.16-evaluation.md +190 -0
- package/extensions/acpx/package.json +19 -0
- package/extensions/acpx/poolbot.plugin.json +9 -0
- package/extensions/acpx/src/index.ts +34 -0
- package/extensions/bluebubbles/src/runtime.ts +1 -0
- package/extensions/diffs/package.json +15 -0
- package/extensions/diffs/poolbot.plugin.json +10 -0
- package/extensions/diffs/src/index.ts +106 -0
- package/extensions/discord/src/runtime.ts +1 -0
- package/extensions/feishu/src/runtime.ts +1 -0
- package/extensions/github-copilot/package.json +28 -0
- package/extensions/github-copilot/poolbot.plugin.json +29 -0
- package/extensions/github-copilot/src/index.ts +126 -0
- package/extensions/github-copilot/tsconfig.json +10 -0
- package/extensions/googlechat/src/runtime.ts +1 -0
- package/extensions/imessage/src/runtime.ts +1 -0
- package/extensions/irc/src/runtime.ts +1 -0
- package/extensions/line/src/runtime.ts +1 -0
- package/extensions/matrix/src/runtime.ts +1 -0
- package/extensions/mattermost/src/mattermost/monitor-helpers.ts +10 -1
- package/extensions/mattermost/src/runtime.ts +6 -3
- package/extensions/msteams/src/runtime.ts +1 -0
- package/extensions/nextcloud-talk/src/runtime.ts +1 -0
- package/extensions/nostr/src/runtime.ts +5 -2
- package/extensions/ollama/package.json +20 -0
- package/extensions/ollama/poolbot.plugin.json +14 -0
- package/extensions/ollama/src/index.ts +95 -0
- package/extensions/sglang/package.json +18 -0
- package/extensions/sglang/poolbot.plugin.json +13 -0
- package/extensions/sglang/src/index.ts +62 -0
- package/extensions/signal/src/runtime.ts +1 -0
- package/extensions/slack/src/runtime.ts +1 -0
- package/extensions/telegram/src/runtime.ts +1 -0
- package/extensions/test-utils/package.json +17 -0
- package/extensions/test-utils/poolbot.plugin.json +16 -0
- package/extensions/test-utils/src/index.ts +220 -0
- package/extensions/tlon/src/runtime.ts +1 -0
- package/extensions/twitch/src/runtime.ts +1 -0
- package/extensions/vllm/package.json +19 -0
- package/extensions/vllm/poolbot.plugin.json +13 -0
- package/extensions/vllm/src/index.ts +90 -0
- package/extensions/whatsapp/src/runtime.ts +1 -0
- package/extensions/zalo/src/runtime.ts +1 -0
- package/extensions/zalouser/src/runtime.ts +1 -0
- package/package.json +77 -3
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
# OpenClaw Master Skills Integration
|
|
2
|
+
|
|
3
|
+
**339+ skills** do OpenClaw Master Skills integradas ao Pool Bot.
|
|
4
|
+
|
|
5
|
+
## Visão Geral
|
|
6
|
+
|
|
7
|
+
Esta integração traz a maior coleção de skills para agentes de IA, organizada em 13 categorias principais.
|
|
8
|
+
|
|
9
|
+
## Categorias
|
|
10
|
+
|
|
11
|
+
| Categoria | Emoji | Skills | Exemplos |
|
|
12
|
+
| --------- | ----- | ------ | -------- |
|
|
13
|
+
| AI & LLM Tools | 🤖 | 40+ | openai, gemini, whisper |
|
|
14
|
+
| Search & Web | 🔍 | 25+ | brave-search, tavily, firecrawl |
|
|
15
|
+
| Productivity | 📋 | 35+ | notion, obsidian, trello |
|
|
16
|
+
| Development | 💻 | 60+ | github, docker, react, nextjs |
|
|
17
|
+
| Marketing | 📈 | 20+ | seo, copywriting, analytics |
|
|
18
|
+
| Media | 🎨 | 25+ | youtube, video, audio |
|
|
19
|
+
| Finance | 💰 | 15+ | yahoo-finance, trading |
|
|
20
|
+
| Communication | 💬 | 20+ | slack, discord, telegram |
|
|
21
|
+
| Smart Home | 🏠 | 15+ | sonos, hue, home-assistant |
|
|
22
|
+
| Memory & Agent | 🧠 | 30+ | agent-memory, self-improve |
|
|
23
|
+
| Security | 🔒 | 10+ | audit, healthcheck |
|
|
24
|
+
| Data & Analytics | 📊 | 15+ | data-analysis, web-perf |
|
|
25
|
+
| Social & Content | 📱 | 25+ | twitter, reddit, linkedin |
|
|
26
|
+
|
|
27
|
+
## Comandos CLI
|
|
28
|
+
|
|
29
|
+
### Listar Skills
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
# Listar todas categorias
|
|
33
|
+
poolbot skills-openclaw list
|
|
34
|
+
|
|
35
|
+
# Listar skills de uma categoria
|
|
36
|
+
poolbot skills-openclaw list --category development
|
|
37
|
+
poolbot skills-openclaw list --category ai-llm
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Buscar Skills
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
# Buscar por nome ou descrição
|
|
44
|
+
poolbot skills-openclaw search github
|
|
45
|
+
poolbot skills-openclaw search "image generation"
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Ver Detalhes
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
# Ver detalhes de uma skill
|
|
52
|
+
poolbot skills-openclaw show github
|
|
53
|
+
poolbot skills-openclaw show 1password
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Instalar Dependências
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# Instalar dependências de uma skill
|
|
60
|
+
poolbot skills-openclaw install github
|
|
61
|
+
poolbot skills-openclaw install docker
|
|
62
|
+
|
|
63
|
+
# Dry run (apenas mostrar comandos)
|
|
64
|
+
poolbot skills-openclaw install github --dry-run
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Estatísticas
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
# Ver estatísticas das skills
|
|
71
|
+
poolbot skills-openclaw stats
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Skills em Destaque
|
|
75
|
+
|
|
76
|
+
### Development
|
|
77
|
+
|
|
78
|
+
#### github
|
|
79
|
+
```bash
|
|
80
|
+
poolbot skills-openclaw show github
|
|
81
|
+
```
|
|
82
|
+
- **Descrição:** Interagir com GitHub via CLI `gh`
|
|
83
|
+
- **Requer:** `gh` CLI
|
|
84
|
+
- **Instalação:** `brew install gh`
|
|
85
|
+
|
|
86
|
+
#### docker
|
|
87
|
+
```bash
|
|
88
|
+
poolbot skills-openclaw show docker
|
|
89
|
+
```
|
|
90
|
+
- **Descrição:** Gerenciar containers Docker
|
|
91
|
+
- **Requer:** Docker
|
|
92
|
+
- **Instalação:** `brew install --cask docker`
|
|
93
|
+
|
|
94
|
+
#### react
|
|
95
|
+
```bash
|
|
96
|
+
poolbot skills-openclaw show react
|
|
97
|
+
```
|
|
98
|
+
- **Descrição:** React best practices e patterns
|
|
99
|
+
- **Requer:** Node.js
|
|
100
|
+
- **Instalação:** `npm install -g create-react-app`
|
|
101
|
+
|
|
102
|
+
### AI & LLM
|
|
103
|
+
|
|
104
|
+
#### openai
|
|
105
|
+
```bash
|
|
106
|
+
poolbot skills-openclaw show openai
|
|
107
|
+
```
|
|
108
|
+
- **Descrição:** Integração com OpenAI API
|
|
109
|
+
- **Requer:** API key
|
|
110
|
+
- **Instalação:** `npm install -g openai`
|
|
111
|
+
|
|
112
|
+
#### gemini
|
|
113
|
+
```bash
|
|
114
|
+
poolbot skills-openclaw show gemini
|
|
115
|
+
```
|
|
116
|
+
- **Descrição:** Google Gemini integration
|
|
117
|
+
- **Requer:** Google API key
|
|
118
|
+
|
|
119
|
+
#### whisper
|
|
120
|
+
```bash
|
|
121
|
+
poolbot skills-openclaw show whisper
|
|
122
|
+
```
|
|
123
|
+
- **Descrição:** Transcrição de áudio
|
|
124
|
+
- **Requer:** OpenAI Whisper
|
|
125
|
+
- **Instalação:** `pip install openai-whisper`
|
|
126
|
+
|
|
127
|
+
### Productivity
|
|
128
|
+
|
|
129
|
+
#### notion
|
|
130
|
+
```bash
|
|
131
|
+
poolbot skills-openclaw show notion
|
|
132
|
+
```
|
|
133
|
+
- **Descrição:** Integração com Notion workspace
|
|
134
|
+
- **Requer:** Notion API key
|
|
135
|
+
|
|
136
|
+
#### 1password
|
|
137
|
+
```bash
|
|
138
|
+
poolbot skills-openclaw show 1password
|
|
139
|
+
```
|
|
140
|
+
- **Descrição:** 1Password CLI integration
|
|
141
|
+
- **Requer:** `op` CLI
|
|
142
|
+
- **Instalação:** `brew install 1password-cli`
|
|
143
|
+
|
|
144
|
+
## Programmatic Usage
|
|
145
|
+
|
|
146
|
+
```typescript
|
|
147
|
+
import {
|
|
148
|
+
loadOpenClawSkills,
|
|
149
|
+
getSkillByName,
|
|
150
|
+
searchSkills,
|
|
151
|
+
getSkillsByCategory,
|
|
152
|
+
installSkillDependencies,
|
|
153
|
+
} from "poolbot/skills/openclaw-skill-loader";
|
|
154
|
+
|
|
155
|
+
// Load all skills
|
|
156
|
+
const { skills, categories } = await loadOpenClawSkills(skillsDir);
|
|
157
|
+
|
|
158
|
+
// Get skill by name
|
|
159
|
+
const githubSkill = await getSkillByName(skillsDir, "github");
|
|
160
|
+
|
|
161
|
+
// Search skills
|
|
162
|
+
const results = await searchSkills(skillsDir, "image generation");
|
|
163
|
+
|
|
164
|
+
// Get skills by category
|
|
165
|
+
const devSkills = await getSkillsByCategory(skillsDir, "development");
|
|
166
|
+
|
|
167
|
+
// Install dependencies
|
|
168
|
+
const { commands } = await installSkillDependencies(githubSkill);
|
|
169
|
+
for (const cmd of commands) {
|
|
170
|
+
console.log(cmd);
|
|
171
|
+
}
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
## Estrutura de Arquivos
|
|
175
|
+
|
|
176
|
+
```
|
|
177
|
+
skills-openclaw/
|
|
178
|
+
├── README.md
|
|
179
|
+
├── 1password/
|
|
180
|
+
│ ├── SKILL.md
|
|
181
|
+
│ └── references/
|
|
182
|
+
│ ├── get-started.md
|
|
183
|
+
│ └── cli-examples.md
|
|
184
|
+
├── github/
|
|
185
|
+
│ └── SKILL.md
|
|
186
|
+
├── docker/
|
|
187
|
+
│ └── SKILL.md
|
|
188
|
+
└── ... (336 mais skills)
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
## Skill Format
|
|
192
|
+
|
|
193
|
+
Cada skill segue o formato:
|
|
194
|
+
|
|
195
|
+
```markdown
|
|
196
|
+
---
|
|
197
|
+
name: skill-name
|
|
198
|
+
description: "Descrição da skill"
|
|
199
|
+
homepage: https://example.com
|
|
200
|
+
metadata:
|
|
201
|
+
clawdbot:
|
|
202
|
+
emoji: "🔧"
|
|
203
|
+
requires:
|
|
204
|
+
bins: ["tool-name"]
|
|
205
|
+
install:
|
|
206
|
+
- id: brew
|
|
207
|
+
kind: brew
|
|
208
|
+
formula: "tool-name"
|
|
209
|
+
label: "Install tool (brew)"
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
# Skill Name
|
|
213
|
+
|
|
214
|
+
Descrição detalhada e instruções de uso.
|
|
215
|
+
|
|
216
|
+
## References
|
|
217
|
+
|
|
218
|
+
- `references/file.md`
|
|
219
|
+
|
|
220
|
+
## Workflow
|
|
221
|
+
|
|
222
|
+
1. Step 1
|
|
223
|
+
2. Step 2
|
|
224
|
+
3. Step 3
|
|
225
|
+
|
|
226
|
+
## Guardrails
|
|
227
|
+
|
|
228
|
+
- Security considerations
|
|
229
|
+
- Best practices
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
## Atualização
|
|
233
|
+
|
|
234
|
+
Para atualizar as skills:
|
|
235
|
+
|
|
236
|
+
```bash
|
|
237
|
+
# Sync skills from OpenClaw Master repository
|
|
238
|
+
poolbot skills-openclaw sync
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
## Source
|
|
242
|
+
|
|
243
|
+
- **Original:** https://github.com/LeoYeAI/openclaw-master-skills
|
|
244
|
+
- **Powered by:** https://myclaw.ai
|
|
245
|
+
- **License:** MIT
|
|
246
|
+
|
|
247
|
+
## Contributing
|
|
248
|
+
|
|
249
|
+
Para contribuir com novas skills:
|
|
250
|
+
|
|
251
|
+
1. Fork do repositório original
|
|
252
|
+
2. Adicione skill em `skills-openclaw/<name>/SKILL.md`
|
|
253
|
+
3. Submit PR
|
|
254
|
+
|
|
255
|
+
## Troubleshooting
|
|
256
|
+
|
|
257
|
+
### Skill não encontrada
|
|
258
|
+
|
|
259
|
+
```bash
|
|
260
|
+
# Verificar se skill existe
|
|
261
|
+
poolbot skills-openclaw search <name>
|
|
262
|
+
|
|
263
|
+
# Listar todas skills
|
|
264
|
+
poolbot skills-openclaw list
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
### Dependências faltando
|
|
268
|
+
|
|
269
|
+
```bash
|
|
270
|
+
# Ver dependências
|
|
271
|
+
poolbot skills-openclaw show <name>
|
|
272
|
+
|
|
273
|
+
# Instalar dependências
|
|
274
|
+
poolbot skills-openclaw install <name>
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
## Performance
|
|
278
|
+
|
|
279
|
+
- **Load time:** < 100ms para 339 skills
|
|
280
|
+
- **Search:** < 50ms
|
|
281
|
+
- **Memory:** ~5MB
|
|
282
|
+
|
|
283
|
+
## Security
|
|
284
|
+
|
|
285
|
+
- ✅ Skills são read-only
|
|
286
|
+
- ✅ Nenhuma execução de código
|
|
287
|
+
- ✅ Validação de metadata
|
|
288
|
+
- ✅ Sandbox para instalações
|
|
289
|
+
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
**Versão:** 2026.3.17+
|
|
293
|
+
**Skills:** 339+
|
|
294
|
+
**Categorias:** 13
|
|
295
|
+
**Status:** ✅ Production Ready
|
|
@@ -0,0 +1,338 @@
|
|
|
1
|
+
# Plano de Testes - Pool Bot v2026.3.17
|
|
2
|
+
|
|
3
|
+
**Data:** 2026-03-13
|
|
4
|
+
**Status:** Em Progresso
|
|
5
|
+
**Responsável:** Build Agent
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 📋 Resumo Executivo
|
|
10
|
+
|
|
11
|
+
Este documento descreve o plano de testes abrangente para a release v2026.3.17 do Pool Bot, focando em validação de integração, segurança e funcionalidade das skills OpenClaw.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## ✅ COMPLETO: Testes de Integração Security Audit
|
|
16
|
+
|
|
17
|
+
**Arquivo:** `src/security/audit.integration.test.ts`
|
|
18
|
+
**Status:** ✅ Implementado
|
|
19
|
+
**Cobertura:** 25+ testes de integração
|
|
20
|
+
|
|
21
|
+
### Testes Implementados
|
|
22
|
+
|
|
23
|
+
#### 1. Gateway Security (4 testes)
|
|
24
|
+
- ✅ Detecção de gateway inseguro (bind: "lan")
|
|
25
|
+
- ✅ Validação de gateway seguro (bind: "loopback")
|
|
26
|
+
- ✅ Deep probe do gateway
|
|
27
|
+
- ✅ Tratamento de gateway offline
|
|
28
|
+
|
|
29
|
+
#### 2. Auth & Secrets (3 testes)
|
|
30
|
+
- ✅ Detecção de API keys no config
|
|
31
|
+
- ✅ Quick security check com issues críticos
|
|
32
|
+
- ✅ Quick security check com config limpo
|
|
33
|
+
|
|
34
|
+
#### 3. Channel Security (2 testes)
|
|
35
|
+
- ✅ Detecção de group policy "open"
|
|
36
|
+
- ✅ Detecção de tokens de bot (Telegram, Discord)
|
|
37
|
+
|
|
38
|
+
#### 4. Environment Variables (2 testes)
|
|
39
|
+
- ✅ Detecção de secrets no env
|
|
40
|
+
- ✅ Detecção de PATH injection
|
|
41
|
+
|
|
42
|
+
#### 5. Report Quality (5 testes)
|
|
43
|
+
- ✅ Timestamp no report
|
|
44
|
+
- ✅ Summary com todos os níveis de severidade
|
|
45
|
+
- ✅ Remediation guidance presente
|
|
46
|
+
- ✅ Consistência entre execuções
|
|
47
|
+
- ✅ Requisições concorrentes
|
|
48
|
+
|
|
49
|
+
#### 6. Cross-Platform (3 testes)
|
|
50
|
+
- ✅ Auditoria Linux
|
|
51
|
+
- ✅ Auditoria macOS
|
|
52
|
+
- ✅ Auditoria Windows
|
|
53
|
+
|
|
54
|
+
#### 7. Edge Cases (3 testes)
|
|
55
|
+
- ✅ Config mínimo
|
|
56
|
+
- ✅ Config com undefined fields
|
|
57
|
+
- ✅ Timeout de deep probe
|
|
58
|
+
|
|
59
|
+
### Como Executar
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
# Executar testes de integração do Security Audit
|
|
63
|
+
pnpm test -- src/security/audit.integration.test.ts --run
|
|
64
|
+
|
|
65
|
+
# Executar com coverage
|
|
66
|
+
pnpm test:coverage -- src/security/audit.integration.test.ts --run
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## ⏳ PENDENTE: Testes de Integração Skills Loader
|
|
72
|
+
|
|
73
|
+
**Arquivo:** `src/skills/openclaw-skill-loader.integration.test.ts`
|
|
74
|
+
**Status:** ⏳ Pendente
|
|
75
|
+
**Estimativa:** 16h
|
|
76
|
+
|
|
77
|
+
### Testes Planejados
|
|
78
|
+
|
|
79
|
+
```typescript
|
|
80
|
+
describe("OpenClaw Skills Loader Integration", () => {
|
|
81
|
+
// 1. Validação de Carregamento
|
|
82
|
+
it("should load all 339+ skills", async () => {
|
|
83
|
+
const skills = await loadOpenClawSkills("skills-openclaw");
|
|
84
|
+
expect(skills.length).toBeGreaterThanOrEqual(339);
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
it("should validate skill structure", async () => {
|
|
88
|
+
// Validar campos obrigatórios de cada skill
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
it("should categorize skills correctly", async () => {
|
|
92
|
+
// Validar mapeamento de categorias
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
// 2. Validação de Dependencies
|
|
96
|
+
it("should parse install dependencies", async () => {
|
|
97
|
+
// Validar que dependencies são parseadas corretamente
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
it("should detect missing binaries", async () => {
|
|
101
|
+
// Validar detecção de bins faltantes
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
// 3. Validação de Execução
|
|
105
|
+
it("should execute a sample skill", async () => {
|
|
106
|
+
// Teste de integração com agent system
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
// 4. Validação de CLI
|
|
110
|
+
it("should list skills via CLI", async () => {
|
|
111
|
+
// Testar comando poolbot skills-openclaw list
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
it("should search skills via CLI", async () => {
|
|
115
|
+
// Testar comando poolbot skills-openclaw search
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Como Executar (quando implementado)
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
pnpm test -- src/skills/openclaw-skill-loader.integration.test.ts --run
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## ⏳ PENDENTE: Testes Unitários UI Components
|
|
129
|
+
|
|
130
|
+
**Arquivos:**
|
|
131
|
+
- `ui/src/ui/chat/export.test.ts`
|
|
132
|
+
- `ui/src/ui/chat/pinned-messages.test.ts`
|
|
133
|
+
- `ui/src/ui/chat/search-match.test.ts`
|
|
134
|
+
- `ui/src/ui/chat/slash-commands.test.ts`
|
|
135
|
+
|
|
136
|
+
**Status:** ⏳ Pendente
|
|
137
|
+
**Estimativa:** 8h
|
|
138
|
+
|
|
139
|
+
### Testes Planejados
|
|
140
|
+
|
|
141
|
+
#### Export Component
|
|
142
|
+
```typescript
|
|
143
|
+
describe("Chat Export", () => {
|
|
144
|
+
it("should export messages to markdown", () => {});
|
|
145
|
+
it("should export messages to JSON", () => {});
|
|
146
|
+
it("should export messages to HTML", () => {});
|
|
147
|
+
it("should filter by date range", () => {});
|
|
148
|
+
it("should include timestamps when requested", () => {});
|
|
149
|
+
it("should handle attachments", () => {});
|
|
150
|
+
});
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
#### Pinned Messages
|
|
154
|
+
```typescript
|
|
155
|
+
describe("Pinned Messages", () => {
|
|
156
|
+
it("should pin a message", () => {});
|
|
157
|
+
it("should unpin a message", () => {});
|
|
158
|
+
it("should list pinned messages", () => {});
|
|
159
|
+
it("should check if message is pinned", () => {});
|
|
160
|
+
it("should update pinned note", () => {});
|
|
161
|
+
});
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
#### Search Match
|
|
165
|
+
```typescript
|
|
166
|
+
describe("Search Messages", () => {
|
|
167
|
+
it("should search with exact match", () => {});
|
|
168
|
+
it("should search with fuzzy match", () => {});
|
|
169
|
+
it("should highlight matches", () => {});
|
|
170
|
+
it("should score results", () => {});
|
|
171
|
+
it("should extract context", () => {});
|
|
172
|
+
it("should limit results", () => {});
|
|
173
|
+
});
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
#### Slash Commands
|
|
177
|
+
```typescript
|
|
178
|
+
describe("Slash Commands", () => {
|
|
179
|
+
it("should parse command from input", () => {});
|
|
180
|
+
it("should handle flags", () => {});
|
|
181
|
+
it("should handle arguments", () => {});
|
|
182
|
+
it("should register commands", () => {});
|
|
183
|
+
it("should execute commands", () => {});
|
|
184
|
+
it("should handle unknown commands", () => {});
|
|
185
|
+
it("should show help", () => {});
|
|
186
|
+
});
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## ⏳ PENDENTE: Validação de Skills Representativas
|
|
192
|
+
|
|
193
|
+
**Status:** ⏳ Pendente
|
|
194
|
+
**Estimativa:** 8h
|
|
195
|
+
|
|
196
|
+
### 10 Skills para Validação
|
|
197
|
+
|
|
198
|
+
| # | Skill | Categoria | Arquivo | Status |
|
|
199
|
+
|---|-------|-----------|---------|--------|
|
|
200
|
+
| 1 | GitHub | Development | `skills-openclaw/github/` | ⏳ |
|
|
201
|
+
| 2 | Docker | Development | `skills-openclaw/docker/` | ⏳ |
|
|
202
|
+
| 3 | Notion | Productivity | `skills-openclaw/notion/` | ⏳ |
|
|
203
|
+
| 4 | OpenAI | AI & LLM | `skills-openclaw/openai/` | ⏳ |
|
|
204
|
+
| 5 | Slack | Communication | `skills-openclaw/slack/` | ⏳ |
|
|
205
|
+
| 6 | YouTube | Media | `skills-openclaw/youtube/` | ⏳ |
|
|
206
|
+
| 7 | Weather | Data & Analytics | `skills-openclaw/weather/` | ⏳ |
|
|
207
|
+
| 8 | Finance | Finance | `skills-openclaw/finance/` | ⏳ |
|
|
208
|
+
| 9 | Browser | Search & Web | `skills-openclaw/browser/` | ⏳ |
|
|
209
|
+
| 10 | Git | Development | `skills-openclaw/git/` | ⏳ |
|
|
210
|
+
|
|
211
|
+
### Checklist de Validação por Skill
|
|
212
|
+
|
|
213
|
+
```markdown
|
|
214
|
+
- [ ] Skill file exists and is readable
|
|
215
|
+
- [ ] Frontmatter is valid YAML
|
|
216
|
+
- [ ] Description is present and meaningful
|
|
217
|
+
- [ ] Category mapping is correct
|
|
218
|
+
- [ ] Dependencies are listed (if any)
|
|
219
|
+
- [ ] Install instructions are present (if needed)
|
|
220
|
+
- [ ] Skill can be loaded by loader
|
|
221
|
+
- [ ] Skill metadata is parsed correctly
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
## ⏳ PENDENTE: Testes de CLI Commands
|
|
227
|
+
|
|
228
|
+
**Status:** ⏳ Pendente
|
|
229
|
+
**Estimativa:** 4h
|
|
230
|
+
|
|
231
|
+
### Comandos para Testar
|
|
232
|
+
|
|
233
|
+
```bash
|
|
234
|
+
# 1. Listar skills
|
|
235
|
+
poolbot skills-openclaw list
|
|
236
|
+
|
|
237
|
+
# 2. Listar por categoria
|
|
238
|
+
poolbot skills-openclaw list --category development
|
|
239
|
+
|
|
240
|
+
# 3. Buscar skills
|
|
241
|
+
poolbot skills-openclaw search github
|
|
242
|
+
|
|
243
|
+
# 4. Mostrar detalhes
|
|
244
|
+
poolbot skills-openclaw show github
|
|
245
|
+
|
|
246
|
+
# 5. Instalar dependencies
|
|
247
|
+
poolbot skills-openclaw install-deps
|
|
248
|
+
|
|
249
|
+
# 6. Validar skills
|
|
250
|
+
poolbot skills-openclaw validate
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
### Critérios de Aceite
|
|
254
|
+
|
|
255
|
+
- [ ] Todos os comandos retornam sem erro
|
|
256
|
+
- [ ] Output é formatado corretamente (table/JSON)
|
|
257
|
+
- [ ] Filtros funcionam (--category, --format)
|
|
258
|
+
- [ ] Busca retorna resultados relevantes
|
|
259
|
+
- [ ] Help está disponível (--help)
|
|
260
|
+
|
|
261
|
+
---
|
|
262
|
+
|
|
263
|
+
## ⏳ EM PROGRESSO: Documentação de Limitações Conhecidas
|
|
264
|
+
|
|
265
|
+
**Status:** ⏳ Em Progresso
|
|
266
|
+
**Estimativa:** 4h
|
|
267
|
+
|
|
268
|
+
### Limitações Identificadas
|
|
269
|
+
|
|
270
|
+
#### 1. UI Components
|
|
271
|
+
- **Status:** Library functions completas, UI real faltando
|
|
272
|
+
- **Impacto:** Baixo (funções utilitárias funcionam)
|
|
273
|
+
- **Workaround:** Usar funções de export diretamente
|
|
274
|
+
- **ETA para fix:** v2026.3.18
|
|
275
|
+
|
|
276
|
+
#### 2. Skills Integration
|
|
277
|
+
- **Status:** 339 skills copiadas, validação pendente
|
|
278
|
+
- **Impacto:** Médio (skills podem não funcionar como esperado)
|
|
279
|
+
- **Workaround:** Validar skills individualmente antes de usar
|
|
280
|
+
- **ETA para fix:** v2026.3.18
|
|
281
|
+
|
|
282
|
+
#### 3. Test Coverage
|
|
283
|
+
- **Status:** Testes de integração incompletos
|
|
284
|
+
- **Impacto:** Médio (possíveis regressões não detectadas)
|
|
285
|
+
- **Workaround:** Testar manualmente antes de release
|
|
286
|
+
- **ETA para fix:** v2026.3.18
|
|
287
|
+
|
|
288
|
+
#### 4. Type Hacks
|
|
289
|
+
- **Status:** Workarounds para `FetchLike` e `preconnect`
|
|
290
|
+
- **Impacto:** Baixo (funciona mas não é ideal)
|
|
291
|
+
- **Workaround:** Documentar no código
|
|
292
|
+
- **ETA para fix:** v2026.4.0 (refatoração)
|
|
293
|
+
|
|
294
|
+
---
|
|
295
|
+
|
|
296
|
+
## 📊 Cronograma
|
|
297
|
+
|
|
298
|
+
| Semana | Tarefa | Horas | Status |
|
|
299
|
+
|--------|--------|-------|--------|
|
|
300
|
+
| 1 | Security Audit Tests | 8h | ✅ Completo |
|
|
301
|
+
| 1 | Skills Loader Tests | 16h | ⏳ Pendente |
|
|
302
|
+
| 1 | UI Components Tests | 8h | ⏳ Pendente |
|
|
303
|
+
| 2 | Validar 10 Skills | 8h | ⏳ Pendente |
|
|
304
|
+
| 2 | Testar CLI Commands | 4h | ⏳ Pendente |
|
|
305
|
+
| 2 | Documentar Limitações | 4h | ⏳ Em Progresso |
|
|
306
|
+
| **Total** | | **48h** | |
|
|
307
|
+
|
|
308
|
+
---
|
|
309
|
+
|
|
310
|
+
## 🎯 Critérios de Release
|
|
311
|
+
|
|
312
|
+
### Para Release Imediato (v2026.3.17-beta)
|
|
313
|
+
- [x] Build passando
|
|
314
|
+
- [x] Security Audit tests completos
|
|
315
|
+
- [ ] Skills Loader tests implementados
|
|
316
|
+
- [ ] UI Components tests implementados
|
|
317
|
+
- [ ] Documentação de limitações completa
|
|
318
|
+
|
|
319
|
+
### Para Release Produção (v2026.3.18)
|
|
320
|
+
- [ ] Todos os testes acima passando
|
|
321
|
+
- [ ] 10 skills validadas manualmente
|
|
322
|
+
- [ ] CLI commands testados
|
|
323
|
+
- [ ] Changelog atualizado com limitações
|
|
324
|
+
|
|
325
|
+
---
|
|
326
|
+
|
|
327
|
+
## 📝 Notas
|
|
328
|
+
|
|
329
|
+
1. **Security Audit Integration Tests** foram priorizados por serem críticos para segurança
|
|
330
|
+
2. **Skills Loader Tests** requerem mais tempo devido à complexidade (339 skills)
|
|
331
|
+
3. **UI Components Tests** são importantes mas não bloqueiam release beta
|
|
332
|
+
4. **Validação Manual** de skills é necessária mesmo com testes automatizados
|
|
333
|
+
|
|
334
|
+
---
|
|
335
|
+
|
|
336
|
+
**Próxima Revisão:** 2026-03-20
|
|
337
|
+
**Responsável:** Build Agent
|
|
338
|
+
**Status Report:** Semanal
|