@fabioforest/openclaw 3.0.0 → 3.4.1
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/README.md +417 -46
- package/bin/openclaw.js +37 -8
- package/lib/cli/assist.js +84 -0
- package/lib/cli/doctor.js +37 -3
- package/lib/cli/ide.js +218 -0
- package/lib/cli/init.js +135 -79
- package/lib/cli/inspect.js +58 -0
- package/lib/cli/orchestrate.js +43 -15
- package/lib/cli/update.js +113 -47
- package/lib/context/collector.js +104 -0
- package/lib/context/index.js +75 -0
- package/lib/router/match.js +107 -0
- package/lib/setup/config_wizard.js +2 -0
- package/package.json +2 -2
- package/templates/.agent/agents/workflow-automator.md +31 -0
- package/templates/.agent/rules/CONSENT_FIRST.md +24 -0
- package/templates/.agent/rules/DEV_MODE.md +18 -0
- package/templates/.agent/rules/ROUTER_PROTOCOL.md +22 -0
- package/templates/.agent/rules/WEB_AUTOMATION.md +52 -0
- package/templates/.agent/skills/content-sourcer/SKILL.md +48 -0
- package/templates/.agent/skills/context-flush/SKILL.md +30 -0
- package/templates/.agent/skills/drive-organizer/SKILL.md +40 -0
- package/templates/.agent/skills/linkedin-optimizer/SKILL.md +48 -0
- package/templates/.agent/skills/mission-control/SKILL.md +37 -0
- package/templates/.agent/skills/openclaw-assist/SKILL.md +30 -0
- package/templates/.agent/skills/openclaw-dev/SKILL.md +26 -0
- package/templates/.agent/skills/openclaw-inspect/SKILL.md +21 -0
- package/templates/.agent/skills/openclaw-installation-debugger/scripts/debug.js +16 -2
- package/templates/.agent/skills/openclaw-router/SKILL.md +34 -0
- package/templates/.agent/skills/openclaw-security/SKILL.md +21 -0
- package/templates/.agent/skills/site-tester/SKILL.md +49 -0
- package/templates/.agent/skills/smart-router/SKILL.md +116 -0
- package/templates/.agent/skills/web-scraper/SKILL.md +51 -0
- package/templates/.agent/state/MEMORY.md +8 -0
- package/templates/.agent/state/mission_control.json +34 -0
- package/templates/.agent/workflows/ai-capture.md +39 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: web-scraper
|
|
3
|
+
description: Extrai conteúdo de sites de forma responsável (respeitando robots.txt/ToS), usando Playwright ou um serviço (Browserless/Firecrawl) em sandbox.
|
|
4
|
+
triggers:
|
|
5
|
+
- scraping
|
|
6
|
+
- extrair tabela
|
|
7
|
+
- coletar dados
|
|
8
|
+
- baixar conteúdo
|
|
9
|
+
- crawler
|
|
10
|
+
- web scraping
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Web Scraper
|
|
14
|
+
|
|
15
|
+
## Objetivo
|
|
16
|
+
Extrair dados estruturados de páginas web de forma responsável, respeitando robots.txt, ToS e limites de taxa, usando ferramentas em sandbox.
|
|
17
|
+
|
|
18
|
+
## Contexto necessário
|
|
19
|
+
- Lista de URLs alvo
|
|
20
|
+
- Formato de saída desejado (markdown/json/csv)
|
|
21
|
+
- Política de respeito a robots.txt (verificar antes)
|
|
22
|
+
|
|
23
|
+
## Fluxo (inspect → plan → consent → apply → audit)
|
|
24
|
+
|
|
25
|
+
1. **INSPECT**: Verificar robots.txt e se há API oficial alternativa ao scraping
|
|
26
|
+
2. **PLAN**: Estimar volume e taxa; escolher ferramenta (Playwright local vs serviço)
|
|
27
|
+
3. **CONSENT**: Confirmar execução e destino dos dados extraídos
|
|
28
|
+
4. **APPLY**: Rodar scraping em sandbox; salvar outputs em `.agent/state/scrapes/`
|
|
29
|
+
5. **AUDIT**: Registrar URLs, timestamps, erros e retries
|
|
30
|
+
|
|
31
|
+
## Ferramentas disponíveis
|
|
32
|
+
|
|
33
|
+
| Ferramenta | Tipo | Melhor para |
|
|
34
|
+
|-----------|------|------------|
|
|
35
|
+
| Playwright | Local/Docker | Páginas dinâmicas, SPA, login flows |
|
|
36
|
+
| Browserless | SaaS (BaaS) | Elasticidade, sem infra local |
|
|
37
|
+
| Firecrawl | Serviço + CLI | Scraping/crawling em lote |
|
|
38
|
+
|
|
39
|
+
## Restrições de segurança e compliance
|
|
40
|
+
|
|
41
|
+
- ✅ Respeitar robots.txt (não é autorização, mas é prática obrigatória)
|
|
42
|
+
- ✅ Preferir APIs oficiais quando existirem
|
|
43
|
+
- ✅ Limitar taxa de requests (rate limiting autoimposto)
|
|
44
|
+
- ✅ Executar em sandbox (Docker/VM) sempre que possível
|
|
45
|
+
- ❌ Nunca fazer scraping de plataformas que proíbem explicitamente (ex: LinkedIn)
|
|
46
|
+
- ❌ Nunca extrair dados pessoais sem autorização
|
|
47
|
+
- ❌ Nunca burlar CAPTCHAs ou proteções anti-bot
|
|
48
|
+
|
|
49
|
+
## Armazenamento
|
|
50
|
+
- `.agent/state/scrapes/` — outputs organizados por domínio/data
|
|
51
|
+
- `.agent/audit/` — log com URLs, volume, taxa e erros
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# Memória Persistente
|
|
2
|
+
|
|
3
|
+
Adicione aqui resumos e decisões importantes do projeto.
|
|
4
|
+
Este arquivo é gerenciado pela skill **context-flush** e
|
|
5
|
+
atualizado apenas com consentimento explícito do usuário.
|
|
6
|
+
|
|
7
|
+
## Formato sugerido
|
|
8
|
+
- **Data** — Resumo breve da decisão ou aprendizado
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"project_status": "active",
|
|
3
|
+
"project_name": "default",
|
|
4
|
+
"sprint_goal": "",
|
|
5
|
+
"agents": [
|
|
6
|
+
{
|
|
7
|
+
"id": "orchestrator",
|
|
8
|
+
"role": "orchestrator",
|
|
9
|
+
"active": true
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"id": "researcher",
|
|
13
|
+
"role": "researcher",
|
|
14
|
+
"active": true
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"id": "writer",
|
|
18
|
+
"role": "writer",
|
|
19
|
+
"active": true
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"id": "reviewer",
|
|
23
|
+
"role": "reviewer",
|
|
24
|
+
"active": true
|
|
25
|
+
}
|
|
26
|
+
],
|
|
27
|
+
"task_queue": [],
|
|
28
|
+
"history": [],
|
|
29
|
+
"settings": {
|
|
30
|
+
"work_dir": "mission_control",
|
|
31
|
+
"max_tasks_per_tick": 2,
|
|
32
|
+
"default_priority": "medium"
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Exemplo de workflow avançado usando AI Capture e nós interativos para coleta de tickets de suporte.
|
|
3
|
+
params:
|
|
4
|
+
- userId
|
|
5
|
+
- message
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Support Ticket Capture Workflow
|
|
9
|
+
|
|
10
|
+
Este workflow demonstra como capturar dados estruturados de uma conversa natural.
|
|
11
|
+
|
|
12
|
+
### 1. Saudação Interativa
|
|
13
|
+
- **Message Node**: Olá! Sou o assistente de suporte inteligente. Vou coletar os dados do seu chamado.
|
|
14
|
+
|
|
15
|
+
### 2. Coleta de Dados (AI Capture)
|
|
16
|
+
- **Interactive Node**: Por favor, descreva o problema que está enfrentando com o máximo de detalhes possível.
|
|
17
|
+
- **AI Capture Node**:
|
|
18
|
+
- **Prompt**: Analise a resposta do usuário e extraia os seguintes campos em JSON:
|
|
19
|
+
- `summary`: Resumo de uma linha do problema.
|
|
20
|
+
- `category`: Categoria (Hardware, Software, Rede, Acesso).
|
|
21
|
+
- `urgency`: Urgência (Baixa, Média, Alta) baseada no tom.
|
|
22
|
+
- `details`: O relato completo do usuário.
|
|
23
|
+
- **Validation**: Verifique se `details` tem mais de 10 caracteres. Se não, peça para detalhar mais.
|
|
24
|
+
|
|
25
|
+
### 3. Confirmação
|
|
26
|
+
- **Message Node**: Obrigado! Registrei o chamado:
|
|
27
|
+
- **Resumo**: {{capture.summary}}
|
|
28
|
+
- **Categoria**: {{capture.category}}
|
|
29
|
+
- **Urgência**: {{capture.urgency}}
|
|
30
|
+
|
|
31
|
+
### 4. Ação (Skill Call)
|
|
32
|
+
- **Skill Node**: `openclaw-ops/create-ticket` (simulado)
|
|
33
|
+
- **Args**:
|
|
34
|
+
- title: {{capture.summary}}
|
|
35
|
+
- body: {{capture.details}}
|
|
36
|
+
- priority: {{capture.urgency}}
|
|
37
|
+
|
|
38
|
+
### 5. Finalização
|
|
39
|
+
- **Message Node**: Chamado criado com sucesso! Um técnico entrará em contato em breve.
|