@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,18 @@
|
|
|
1
|
+
# OpenClaw AI OS — Dev Mode (Devin-like)
|
|
2
|
+
|
|
3
|
+
Você pode atuar como:
|
|
4
|
+
- backend engineer
|
|
5
|
+
- frontend engineer
|
|
6
|
+
- UX/UI
|
|
7
|
+
- devops
|
|
8
|
+
- security engineer
|
|
9
|
+
|
|
10
|
+
## Travas obrigatórias
|
|
11
|
+
- Sempre começar com INSPECT (read-only)
|
|
12
|
+
- Sempre gerar PLANO com lista de arquivos impactados
|
|
13
|
+
- Sempre pedir CONSENTIMENTO antes de editar/criar/deletar
|
|
14
|
+
- Sempre gerar AUDIT do que foi feito/certo/errado
|
|
15
|
+
|
|
16
|
+
## Defaults seguros
|
|
17
|
+
- escrever por padrão somente em `.agent/**` e arquivos explicitamente aprovados
|
|
18
|
+
- qualquer alteração fora disso exige confirmação detalhada
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# OpenClaw AI OS — Router Protocol (Chat-first)
|
|
2
|
+
|
|
3
|
+
## Regra Suprema
|
|
4
|
+
**READ-ONLY por padrão.**
|
|
5
|
+
Nada pode ser criado/alterado/apagado sem **autorização explícita** do usuário.
|
|
6
|
+
|
|
7
|
+
## Fluxo obrigatório para qualquer pedido no chat
|
|
8
|
+
1) **Inspecionar (read-only):** entender o contexto do workspace (SO, IDE, Docker/VPS/local, OpenClaw existente, skills disponíveis).
|
|
9
|
+
2) **Roteamento:** escolher a skill mais adequada com base em `triggers`/`description`.
|
|
10
|
+
3) **Plano:** apresentar um plano claro e verificável com:
|
|
11
|
+
- arquivos que seriam tocados
|
|
12
|
+
- comandos que seriam executados
|
|
13
|
+
- riscos e rollback
|
|
14
|
+
4) **Consentimento:** perguntar: **"Posso aplicar?"**
|
|
15
|
+
5) **Aplicar somente após confirmação:**
|
|
16
|
+
- se envolver overwrite/delete: exigir confirmação reforçada (ex.: digitar uma frase)
|
|
17
|
+
6) **Auditoria:** documentar tudo que foi feito/alterado e resultado (certo/errado).
|
|
18
|
+
|
|
19
|
+
## Segurança mínima
|
|
20
|
+
- bind localhost + token por padrão
|
|
21
|
+
- acesso remoto somente via VPN (WireGuard)
|
|
22
|
+
- bloquear ações destrutivas sem confirmação explícita
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: WEB_AUTOMATION
|
|
3
|
+
description: Regra de compliance para automação web, scraping e integração com serviços externos.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Web Automation — Regras de Compliance e Segurança
|
|
7
|
+
|
|
8
|
+
## Princípio central
|
|
9
|
+
**Separar "planejar" de "executar"**: a IA pode planejar e escrever scripts/patches, mas execução real vem **após consentimento explícito** do usuário.
|
|
10
|
+
|
|
11
|
+
## Checklist obrigatório antes de qualquer automação web
|
|
12
|
+
|
|
13
|
+
### 1. ToS e legalidade
|
|
14
|
+
- [ ] Verificar se o site/plataforma permite automação (ex: LinkedIn **proíbe** bots)
|
|
15
|
+
- [ ] Verificar `robots.txt` — não é autorização, mas é prática obrigatória respeitá-lo
|
|
16
|
+
- [ ] Preferir APIs oficiais quando existirem (Google Drive API, SerpAPI, PageSpeed, etc.)
|
|
17
|
+
- [ ] Só automatizar contas que o usuário controla e autorizou
|
|
18
|
+
|
|
19
|
+
### 2. Credenciais e autenticação
|
|
20
|
+
- [ ] Preferir OAuth (Google/Microsoft) com escopos mínimos (ex: `drive.file`)
|
|
21
|
+
- [ ] Nunca armazenar senhas — usar variáveis de ambiente ou secret manager
|
|
22
|
+
- [ ] Cookies/storage state tratados como segredo (criptografar, expirar, consentimento)
|
|
23
|
+
- [ ] Nunca logar tokens ou chaves em texto puro
|
|
24
|
+
|
|
25
|
+
### 3. Execução isolada
|
|
26
|
+
- [ ] Executar em sandbox (Docker/VM) quando possível
|
|
27
|
+
- [ ] Preferir modo `non-main` ou `all` para sessões de automação
|
|
28
|
+
- [ ] Rate limiting autoimposto (nunca saturar servidores alvo)
|
|
29
|
+
- [ ] Timeout e retry com backoff exponencial
|
|
30
|
+
|
|
31
|
+
### 4. Dados e privacidade
|
|
32
|
+
- [ ] Minimizar dados enviados a provedores externos (evitar PII, segredos, dumps)
|
|
33
|
+
- [ ] Documentar qual provedor/modelo foi usado e sua política de retenção
|
|
34
|
+
- [ ] Ativar Zero Data Retention (ZDR) quando disponível e necessário
|
|
35
|
+
- [ ] Masking/redação de dados sensíveis antes de enviar a LLMs
|
|
36
|
+
|
|
37
|
+
### 5. Auditoria
|
|
38
|
+
- [ ] Registrar cada execução com entradas, saídas, status e artefatos
|
|
39
|
+
- [ ] Incluir timestamps, URLs, volume de dados e erros
|
|
40
|
+
- [ ] Manter trilha de decisões (por que fallback, por que retry)
|
|
41
|
+
|
|
42
|
+
## Plataformas com restrições conhecidas
|
|
43
|
+
|
|
44
|
+
| Plataforma | Restrição | Ação permitida |
|
|
45
|
+
|-----------|-----------|---------------|
|
|
46
|
+
| LinkedIn | Proíbe bots/crawlers/extensões que automatizam | Gerar textos + checklist; execução manual |
|
|
47
|
+
| Facebook/Instagram | Restrições em automação de perfil | Usar APIs oficiais com aprovação |
|
|
48
|
+
| Twitter/X | Rate limits estritos na API | Usar API oficial com chave própria |
|
|
49
|
+
| Google (busca) | Custom Search com limites; descontinuação prevista | Usar SerpAPI/Brave como alternativa |
|
|
50
|
+
|
|
51
|
+
## Nota sobre skills de terceiros
|
|
52
|
+
Skills de terceiros devem ser **revisadas antes de uso**. Há relatos públicos de skills maliciosas em marketplaces/registries. Tratar como código não confiável e preferir execuções sandboxed.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: content-sourcer
|
|
3
|
+
description: Busca fontes públicas e gera um "dossiê citável" (links + trechos) para alimentar posts e páginas.
|
|
4
|
+
triggers:
|
|
5
|
+
- buscar fontes
|
|
6
|
+
- referências
|
|
7
|
+
- pesquisa web
|
|
8
|
+
- dossiê
|
|
9
|
+
- fontes
|
|
10
|
+
- pesquisar
|
|
11
|
+
- research
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Content Sourcer
|
|
15
|
+
|
|
16
|
+
## Objetivo
|
|
17
|
+
Pesquisar fontes públicas sobre um tema e gerar um dossiê citável com links, trechos e relevância, útil para posts, artigos, apresentações e projetos.
|
|
18
|
+
|
|
19
|
+
## Contexto necessário
|
|
20
|
+
- Tema de pesquisa
|
|
21
|
+
- País/idioma preferido
|
|
22
|
+
- Critérios de qualidade (recência, autoridade, fontes primárias)
|
|
23
|
+
|
|
24
|
+
## Fluxo (inspect → plan → apply → audit)
|
|
25
|
+
|
|
26
|
+
1. **INSPECT**: Escolher provedor de busca e validar orçamento (queries disponíveis)
|
|
27
|
+
2. **PLAN**: Definir queries, critérios de filtragem e quantidade de fontes
|
|
28
|
+
3. **APPLY**: Executar busca, extrair resumo por fonte, salvar em `.agent/state/research/`
|
|
29
|
+
4. **AUDIT**: Registrar queries executadas, provedores usados e custos estimados
|
|
30
|
+
|
|
31
|
+
## Provedores de busca suportados
|
|
32
|
+
|
|
33
|
+
| Provedor | Free tier | Limites | Nota |
|
|
34
|
+
|---------|---------|--------|------|
|
|
35
|
+
| SerpAPI | 250 buscas/mês (free) | Throughput/hora definido | Amplo (Google, Bing, etc.) |
|
|
36
|
+
| Brave Search API | US$ 5 créditos/mês | Preço por 1.000 queries | Boa relação custo/qualidade |
|
|
37
|
+
| Google Custom Search | 100 queries/dia (free) | Descontinuação prevista (2027) | Usar com cautela |
|
|
38
|
+
|
|
39
|
+
## Requisitos de segurança
|
|
40
|
+
- ✅ Usar API keys do próprio usuário (nunca embutir chaves no skill)
|
|
41
|
+
- ✅ Respeitar limites de taxa e quotas dos provedores
|
|
42
|
+
- ✅ Citar fontes com links completos (transparência)
|
|
43
|
+
- ❌ Nunca plagiar conteúdo (apenas resumir e citar)
|
|
44
|
+
- ❌ Nunca gastar créditos sem confirmar com o usuário
|
|
45
|
+
|
|
46
|
+
## Armazenamento
|
|
47
|
+
- `.agent/state/research/` — dossiês por tema/data
|
|
48
|
+
- `.agent/audit/` — log com queries, custos e provedores
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: context-flush
|
|
3
|
+
description: Resume contexto útil e propõe anexar a MEMORY.md e/ou history do Mission Control; só aplica com consentimento.
|
|
4
|
+
triggers:
|
|
5
|
+
- flush
|
|
6
|
+
- limpar contexto
|
|
7
|
+
- resumir
|
|
8
|
+
- economizar tokens
|
|
9
|
+
- reset
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Context Flush (economia)
|
|
13
|
+
|
|
14
|
+
## Fluxo
|
|
15
|
+
1) Produzir um resumo curto com:
|
|
16
|
+
- objetivo atual
|
|
17
|
+
- decisões tomadas
|
|
18
|
+
- pendências
|
|
19
|
+
- links/arquivos relevantes
|
|
20
|
+
2) Propor onde salvar:
|
|
21
|
+
- `.agent/state/MEMORY.md` (por projeto) ou `MEMORY.md` do workspace
|
|
22
|
+
- `.agent/state/mission_control.json` (history)
|
|
23
|
+
3) Mostrar PLANO: quais arquivos seriam alterados e como.
|
|
24
|
+
4) Perguntar: "Posso aplicar?"
|
|
25
|
+
5) Se aprovado, anexar e registrar auditoria.
|
|
26
|
+
|
|
27
|
+
## Regras
|
|
28
|
+
- Nunca apagar histórico automaticamente.
|
|
29
|
+
- Nunca rodar reset automaticamente.
|
|
30
|
+
- Sempre deixar o usuário decidir.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: drive-organizer
|
|
3
|
+
description: Organiza arquivos no Google Drive (renomear, mover, criar pastas, padronizar nomenclatura) usando Drive API com OAuth e escopo mínimo.
|
|
4
|
+
triggers:
|
|
5
|
+
- google drive
|
|
6
|
+
- organizar drive
|
|
7
|
+
- renomear arquivos
|
|
8
|
+
- mover para pasta
|
|
9
|
+
- drive
|
|
10
|
+
- arquivos nuvem
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Drive Organizer
|
|
14
|
+
|
|
15
|
+
## Objetivo
|
|
16
|
+
Organizar, renomear e categorizar arquivos no Google Drive de forma segura e auditável, usando a Drive API com o escopo `drive.file` (mínimo privilégio).
|
|
17
|
+
|
|
18
|
+
## Contexto necessário
|
|
19
|
+
- Objetivo da organização (taxonomia/padrão)
|
|
20
|
+
- Pasta raiz alvo
|
|
21
|
+
- Regras de nomenclatura
|
|
22
|
+
|
|
23
|
+
## Fluxo (inspect → plan → consent → apply → validate → audit)
|
|
24
|
+
|
|
25
|
+
1. **INSPECT** (read-only): Listar arquivos selecionados + simular mudanças
|
|
26
|
+
2. **PLAN**: Tabela "antes/depois" e quantidade de mudanças previstas
|
|
27
|
+
3. **CONSENT**: Confirmação reforçada se houver sobrescrita ou conflito de nomes
|
|
28
|
+
4. **APPLY**: Executar via Drive API + registrar audit (IDs, mudanças, erros)
|
|
29
|
+
5. **VALIDATE**: Re-listar e conferir consistência
|
|
30
|
+
|
|
31
|
+
## Requisitos de segurança
|
|
32
|
+
- ✅ Usar OAuth 2.0 (sem senha) — fluxo para apps instalados
|
|
33
|
+
- ✅ Preferir escopo `drive.file` (usuário escolhe quais arquivos compartilhar)
|
|
34
|
+
- ✅ Confirmar antes de mover/renomear em lote
|
|
35
|
+
- ❌ Nunca armazenar refresh tokens em texto puro
|
|
36
|
+
- ❌ Nunca acessar arquivos fora do escopo autorizado
|
|
37
|
+
|
|
38
|
+
## Armazenamento de state
|
|
39
|
+
- `.agent/state/drive/last_operation.json` — resultado da última operação
|
|
40
|
+
- `.agent/audit/` — log completo com IDs de arquivos e mudanças aplicadas
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: linkedin-optimizer
|
|
3
|
+
description: Ajuda a otimizar perfil e posts para LinkedIn (texto, SEO social, CTA). Não automatiza ações no site; aplica apenas via API oficial se o usuário comprovar acesso e autorizar.
|
|
4
|
+
triggers:
|
|
5
|
+
- linkedin
|
|
6
|
+
- otimizar perfil
|
|
7
|
+
- headline
|
|
8
|
+
- sobre
|
|
9
|
+
- post
|
|
10
|
+
- rede social
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# LinkedIn Optimizer
|
|
14
|
+
|
|
15
|
+
## Objetivo
|
|
16
|
+
Gerar textos otimizados para perfil e posts do LinkedIn, seguindo boas práticas de SEO social e copywriting.
|
|
17
|
+
|
|
18
|
+
**IMPORTANTE**: Esta skill **nunca** automatiza ações diretamente no LinkedIn. O LinkedIn proíbe explicitamente bots, crawlers e extensões que automatizem atividade ou façam scraping.
|
|
19
|
+
|
|
20
|
+
## Modo de operação
|
|
21
|
+
|
|
22
|
+
### Human-in-the-loop (padrão recomendado)
|
|
23
|
+
1. O agente gera rascunhos e checklists
|
|
24
|
+
2. O usuário aplica manualmente no LinkedIn
|
|
25
|
+
3. Nenhum browser automation permitido
|
|
26
|
+
|
|
27
|
+
### API oficial (condicional)
|
|
28
|
+
Somente se o usuário comprovar acesso à Marketing Developer Platform com credenciais OAuth válidas e aprovadas pelo LinkedIn.
|
|
29
|
+
|
|
30
|
+
## Contexto necessário
|
|
31
|
+
- Objetivo (carreira, negócio, personal branding)
|
|
32
|
+
- Público-alvo
|
|
33
|
+
- Tom de voz desejado
|
|
34
|
+
- Idioma (pt-BR, en-US, etc.)
|
|
35
|
+
|
|
36
|
+
## Fluxo (inspect → plan → consent → apply → audit)
|
|
37
|
+
|
|
38
|
+
1. **INSPECT**: Coletar conteúdo atual (texto fornecido pelo usuário) e metas
|
|
39
|
+
2. **PLAN**: Propor 2 versões (A/B) com rationale e checklist de ajustes
|
|
40
|
+
3. **CONSENT**: Pedir autorização antes de salvar qualquer rascunho
|
|
41
|
+
4. **APPLY** (opcional): Salvar rascunho em `.agent/state/linkedin/drafts.md` + audit
|
|
42
|
+
5. **DONE**: Instruções de publicação manual + tracking (UTM/links)
|
|
43
|
+
|
|
44
|
+
## Restrições de segurança
|
|
45
|
+
- ❌ Proibido usar Playwright/Puppeteer/Selenium para navegar no LinkedIn
|
|
46
|
+
- ❌ Proibido armazenar credenciais do LinkedIn
|
|
47
|
+
- ✅ Permitido gerar texto otimizado e salvar como rascunho local
|
|
48
|
+
- ✅ Permitido usar API oficial com OAuth se o usuário tiver acesso aprovado
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mission-control
|
|
3
|
+
description: Orquestra a “Empresa de Agentes” via mission_control.json. Lê estado, cria tarefas, respeita dependências, executa em ticks e registra auditoria.
|
|
4
|
+
triggers:
|
|
5
|
+
- mission control
|
|
6
|
+
- fila
|
|
7
|
+
- tarefas
|
|
8
|
+
- orquestrar
|
|
9
|
+
- equipe
|
|
10
|
+
- sprint
|
|
11
|
+
- tick
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Mission Control
|
|
15
|
+
|
|
16
|
+
## Onde fica o estado (IDE / opção B)
|
|
17
|
+
- `.agent/state/mission_control.json`
|
|
18
|
+
- outputs em `.agent/state/mission_control/`
|
|
19
|
+
|
|
20
|
+
## Regras
|
|
21
|
+
- READ-ONLY por padrão.
|
|
22
|
+
- Qualquer alteração no JSON ou criação de arquivos exige consentimento explícito.
|
|
23
|
+
- Sempre gerar PLANO com: tarefas criadas/atualizadas, arquivos afetados, riscos.
|
|
24
|
+
|
|
25
|
+
## Fluxo (Tick)
|
|
26
|
+
1) Ler `mission_control.json`.
|
|
27
|
+
2) Identificar tarefas `pending` cujo `depends_on` esteja resolvido.
|
|
28
|
+
3) Selecionar até `max_tasks_per_tick` tarefas.
|
|
29
|
+
4) Para cada tarefa:
|
|
30
|
+
- ativar persona do `role` (sem “shell solto”)
|
|
31
|
+
- executar a tarefa de forma segura
|
|
32
|
+
- salvar resultado em `output_file`
|
|
33
|
+
- atualizar status para `completed` (ou `failed`) com timestamp e notas
|
|
34
|
+
5) Registrar resumo em `history`.
|
|
35
|
+
|
|
36
|
+
## Consentimento reforçado
|
|
37
|
+
Se `output_file` já existir e a ação for sobrescrever, mostrar resumo/diff e pedir confirmação reforçada.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: openclaw-assist
|
|
3
|
+
description: Assistente geral do OpenClaw AI OS. Menu de ações (instalar, reparar, melhorar, dev mode) com plan/apply e auditoria.
|
|
4
|
+
triggers:
|
|
5
|
+
- assist
|
|
6
|
+
- assistente
|
|
7
|
+
- help
|
|
8
|
+
- reparar
|
|
9
|
+
- melhorar
|
|
10
|
+
- instalar
|
|
11
|
+
- dev
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Assistente Geral
|
|
15
|
+
|
|
16
|
+
Sempre:
|
|
17
|
+
1) openclaw-inspect (read-only)
|
|
18
|
+
2) Propor opções
|
|
19
|
+
3) Gerar plano
|
|
20
|
+
4) Pedir autorização
|
|
21
|
+
5) Aplicar e auditar
|
|
22
|
+
|
|
23
|
+
Opções sugeridas:
|
|
24
|
+
- Instalação no projeto (IDE)
|
|
25
|
+
- Reparar instalação existente
|
|
26
|
+
- Atualizar templates com merge
|
|
27
|
+
- Criar skill/agent/workflow (Dev Mode)
|
|
28
|
+
- Mission Control (multiagentes)
|
|
29
|
+
- Smart Router (economia)
|
|
30
|
+
- Context Flush (economia)
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: openclaw-dev
|
|
3
|
+
description: Modo Devin-like para criar features, skills, backend, frontend e UX/UI com consentimento e auditoria.
|
|
4
|
+
triggers:
|
|
5
|
+
- feature
|
|
6
|
+
- backend
|
|
7
|
+
- frontend
|
|
8
|
+
- ux
|
|
9
|
+
- ui
|
|
10
|
+
- endpoint
|
|
11
|
+
- api
|
|
12
|
+
- tela
|
|
13
|
+
- componente
|
|
14
|
+
- refatorar
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Dev Mode
|
|
18
|
+
|
|
19
|
+
Sempre:
|
|
20
|
+
1) inspect (read-only)
|
|
21
|
+
2) plano (arquivos, diffs, riscos)
|
|
22
|
+
3) consentimento explícito
|
|
23
|
+
4) aplicar + auditar
|
|
24
|
+
|
|
25
|
+
Preferência:
|
|
26
|
+
- criar commits/PRs e mostrar diffs antes de aplicar no workspace
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: openclaw-inspect
|
|
3
|
+
description: Inspeção read-only do projeto/ambiente/IDE/OpenClaw. Nunca altera nada.
|
|
4
|
+
triggers:
|
|
5
|
+
- inspecionar
|
|
6
|
+
- analisar
|
|
7
|
+
- diagnosticar
|
|
8
|
+
- contexto
|
|
9
|
+
- status
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Inspect (read-only)
|
|
13
|
+
|
|
14
|
+
Coletar:
|
|
15
|
+
- SO (win/mac/linux/wsl), docker/vps/local
|
|
16
|
+
- IDE (cursor/vscode/antigravity/jetbrains)
|
|
17
|
+
- existência de OpenClaw (openclaw.json, .agent, docker compose, systemd)
|
|
18
|
+
- skills disponíveis
|
|
19
|
+
- riscos e sugestões
|
|
20
|
+
|
|
21
|
+
Regra: **não criar nem editar arquivos**.
|
|
@@ -5,6 +5,7 @@ const path = require("path");
|
|
|
5
5
|
const os = require("os");
|
|
6
6
|
const dns = require("dns").promises;
|
|
7
7
|
const https = require("https");
|
|
8
|
+
const http = require("http");
|
|
8
9
|
const { execSync } = require("child_process");
|
|
9
10
|
|
|
10
11
|
/**
|
|
@@ -29,11 +30,12 @@ function fail(msg) { log(`❌ ${msg}`, colors.red); }
|
|
|
29
30
|
function info(msg) { log(`ℹ️ ${msg}`, colors.blue); }
|
|
30
31
|
|
|
31
32
|
/**
|
|
32
|
-
* Verifica conectividade HTTP
|
|
33
|
+
* Verifica conectividade HTTP/HTTPS
|
|
33
34
|
*/
|
|
34
35
|
function checkHttp(url) {
|
|
35
36
|
return new Promise((resolve) => {
|
|
36
|
-
const
|
|
37
|
+
const lib = url.startsWith("https") ? https : http;
|
|
38
|
+
const req = lib.get(url, { timeout: 5000 }, (res) => {
|
|
37
39
|
if (res.statusCode >= 200 && res.statusCode < 400) {
|
|
38
40
|
resolve({ ok: true, status: res.statusCode });
|
|
39
41
|
} else {
|
|
@@ -150,6 +152,18 @@ async function runDebug() {
|
|
|
150
152
|
warn("Não foi possível ler configurações do NPM.");
|
|
151
153
|
}
|
|
152
154
|
|
|
155
|
+
// 5. Control UI (OpenClaw Server)
|
|
156
|
+
info("\nChecando Control UI (OpenClaw Server)...");
|
|
157
|
+
const uiCheck = await checkHttp("http://127.0.0.1:18789");
|
|
158
|
+
if (uiCheck.ok) {
|
|
159
|
+
success("Control UI acessível: http://127.0.0.1:18789");
|
|
160
|
+
report.installation.ui = "ok";
|
|
161
|
+
} else {
|
|
162
|
+
warn(`Control UI inacessível (Status: ${uiCheck.status || uiCheck.error})`);
|
|
163
|
+
info(" -> Se o OpenClaw não estiver rodando, isso é normal.");
|
|
164
|
+
report.installation.ui = "offline";
|
|
165
|
+
}
|
|
166
|
+
|
|
153
167
|
log("\n🏁 Debug concluído.", colors.bold);
|
|
154
168
|
return report;
|
|
155
169
|
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: openclaw-router
|
|
3
|
+
description: Roteador central chat-first que escolhe a skill certa e força INSPECT → PLAN → CONSENT → APPLY → AUDIT.
|
|
4
|
+
triggers:
|
|
5
|
+
- instalar
|
|
6
|
+
- configurar
|
|
7
|
+
- criar
|
|
8
|
+
- corrigir
|
|
9
|
+
- melhorar
|
|
10
|
+
- refatorar
|
|
11
|
+
- debug
|
|
12
|
+
- tokens
|
|
13
|
+
- modelo
|
|
14
|
+
- equipe
|
|
15
|
+
- tarefas
|
|
16
|
+
- fila
|
|
17
|
+
- sprint
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Router Master
|
|
21
|
+
|
|
22
|
+
## Regra Suprema
|
|
23
|
+
READ-ONLY por padrão.
|
|
24
|
+
|
|
25
|
+
## Procedimento
|
|
26
|
+
1) Rodar **openclaw-inspect** (somente leitura)
|
|
27
|
+
2) Escolher skill pelo melhor match de triggers/description
|
|
28
|
+
3) Apresentar plano e pedir autorização
|
|
29
|
+
4) Executar somente após confirmação
|
|
30
|
+
5) Registrar auditoria
|
|
31
|
+
|
|
32
|
+
## Nunca
|
|
33
|
+
- alterar arquivos sem pedido explícito
|
|
34
|
+
- apagar/sobrescrever sem explicar e pedir confirmação reforçada
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: openclaw-security
|
|
3
|
+
description: Hardening do OpenClaw e do workspace. VPN-first, bind localhost, token obrigatório, bloqueios destrutivos.
|
|
4
|
+
triggers:
|
|
5
|
+
- segurança
|
|
6
|
+
- hardening
|
|
7
|
+
- firewall
|
|
8
|
+
- token
|
|
9
|
+
- bind
|
|
10
|
+
- wireguard
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Security Mode
|
|
14
|
+
|
|
15
|
+
Foco:
|
|
16
|
+
- validar bind localhost + token
|
|
17
|
+
- sugerir VPN (WireGuard) para acesso remoto
|
|
18
|
+
- checar portas e exposição
|
|
19
|
+
- reforçar hooks e regras
|
|
20
|
+
|
|
21
|
+
Sempre: plano → consentimento → aplicar → auditoria.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: site-tester
|
|
3
|
+
description: Testa páginas (performance, SEO, acessibilidade, regressão visual) com Lighthouse/LHCI + Playwright em sandbox (Docker).
|
|
4
|
+
triggers:
|
|
5
|
+
- testar site
|
|
6
|
+
- lighthouse
|
|
7
|
+
- pagespeed
|
|
8
|
+
- performance
|
|
9
|
+
- seo
|
|
10
|
+
- acessibilidade
|
|
11
|
+
- teste de performance
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Site Tester
|
|
15
|
+
|
|
16
|
+
## Objetivo
|
|
17
|
+
Auditar páginas web em termos de performance, SEO, acessibilidade e PWA usando Lighthouse, PageSpeed Insights API e Playwright em ambiente isolado (sandbox/Docker).
|
|
18
|
+
|
|
19
|
+
## Contexto necessário
|
|
20
|
+
- URLs alvo
|
|
21
|
+
- Ambiente (staging/prod)
|
|
22
|
+
- Se exige login (sim/não)
|
|
23
|
+
- Thresholds desejados (ex: performance > 90)
|
|
24
|
+
|
|
25
|
+
## Fluxo (inspect → plan → consent → apply → audit)
|
|
26
|
+
|
|
27
|
+
1. **INSPECT**: Validar URLs e verificar robots.txt/ToS do domínio
|
|
28
|
+
2. **PLAN**: Definir métricas, thresholds e escolher ferramentas:
|
|
29
|
+
- PageSpeed Insights API (dados de campo CrUX + laboratório Lighthouse)
|
|
30
|
+
- Lighthouse local (mais controle, permite autenticação)
|
|
31
|
+
- Playwright (regressão visual, interação, screenshots)
|
|
32
|
+
3. **CONSENT**: Confirmar carga e execução (impacto em tráfego)
|
|
33
|
+
4. **APPLY**: Executar auditorias; salvar relatórios em `.agent/state/site-tests/`
|
|
34
|
+
5. **AUDIT**: Registrar resultados e recomendações priorizadas
|
|
35
|
+
|
|
36
|
+
## Ferramentas suportadas
|
|
37
|
+
|
|
38
|
+
| Ferramenta | Uso | Requer setup |
|
|
39
|
+
|-----------|-----|-------------|
|
|
40
|
+
| PageSpeed Insights API | Dados CrUX + Lighthouse web | API Key |
|
|
41
|
+
| Lighthouse CLI | Auditoria completa local | Node.js |
|
|
42
|
+
| Lighthouse CI (LHCI) | CI/CD + servidor auto-hospedado | Docker/Node |
|
|
43
|
+
| Playwright | Screenshots, regressão visual, login flow | Docker recomendado |
|
|
44
|
+
|
|
45
|
+
## Requisitos de segurança
|
|
46
|
+
- ✅ Executar em sandbox (Docker) quando possível
|
|
47
|
+
- ✅ Se exige login: usuário autoriza método (cookie storage state ou manual)
|
|
48
|
+
- ❌ Nunca armazenar credenciais de login no state
|
|
49
|
+
- ❌ Nunca executar contra domínios sem autorização do dono
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: smart-router
|
|
3
|
+
description: Roteia solicitações para perfis de modelo (cheap/smart/coding) para economizar tokens. Não altera config sem consentimento.
|
|
4
|
+
triggers:
|
|
5
|
+
- economizar
|
|
6
|
+
- tokens
|
|
7
|
+
- modelo
|
|
8
|
+
- router
|
|
9
|
+
- roteador
|
|
10
|
+
- barato
|
|
11
|
+
- caro
|
|
12
|
+
- provedor
|
|
13
|
+
- gemini
|
|
14
|
+
- groq
|
|
15
|
+
- openai
|
|
16
|
+
- claude
|
|
17
|
+
- fallback
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Smart Model Router (Roteador Econômico)
|
|
21
|
+
|
|
22
|
+
## Objetivo
|
|
23
|
+
Escolher o perfil e provedor adequado para cada solicitação, priorizando **free-first** e subindo para paid somente com autorização.
|
|
24
|
+
|
|
25
|
+
## Perfis e classificação
|
|
26
|
+
|
|
27
|
+
| Perfil | Quando usar | Objetivo |
|
|
28
|
+
|--------|------------|---------|
|
|
29
|
+
| **cheap** | Tarefas simples, formatação, reescrita curta, extração, resumo | Throughput e custo mínimo |
|
|
30
|
+
| **smart** | Planejamento, raciocínio multi-etapas, decisões com tradeoffs, texto longo | Qualidade e robustez |
|
|
31
|
+
| **coding** | Geração/correção de código, debug, refactor, testes, patches | Precisão em engenharia |
|
|
32
|
+
|
|
33
|
+
### Sinais para classificação (sem usar LLM — economiza tokens)
|
|
34
|
+
- **coding**: bloco de código, nomes de arquivo, stack traces, "bug", "refatorar", "compile", "SQL", "regex", "diff", "teste"
|
|
35
|
+
- **smart**: "planejar", "analisar", "comparar", "decidir", "estratégia", múltiplas etapas
|
|
36
|
+
- **cheap**: tudo que não se encaixa nos acima
|
|
37
|
+
|
|
38
|
+
## Provedores e chains de fallback
|
|
39
|
+
|
|
40
|
+
### cheap (free-first, alto volume)
|
|
41
|
+
1. Gemini 2.5 Flash-Lite (free) → 2. Groq free → 3. OpenRouter free → 4. Cohere Trial → 5. OpenAI GPT-5 mini (pago, se permitido)
|
|
42
|
+
|
|
43
|
+
### smart (raciocínio)
|
|
44
|
+
1. Gemini 2.5 Pro (free) → 2. Claude Sonnet (pago, se permitido) → 3. OpenRouter ZDR → 4. OpenAI GPT-5.2 (pago)
|
|
45
|
+
|
|
46
|
+
### coding (engenharia)
|
|
47
|
+
1. Gemini 2.5 Pro (free, forte em coding) → 2. Claude Sonnet (pago) → 3. OpenAI GPT-5.2 (pago) → 4. Mistral Scale (pago)
|
|
48
|
+
|
|
49
|
+
## Tabela de provedores
|
|
50
|
+
|
|
51
|
+
| Provedor | Free tier | Rate limits | Privacidade (treino) | Tipo de API |
|
|
52
|
+
|---------|---------|------------|---------------------|------------|
|
|
53
|
+
| Gemini Developer API | Sim (vários modelos) | Por modelo/região | Free: **Sim** treina / Paid: **Não** | REST (x-goog-api-key) |
|
|
54
|
+
| Groq | Sim (sem cartão) | RPM/RPD/TPM/TPD por modelo | Não especificado | OpenAI-compatível |
|
|
55
|
+
| OpenRouter | 50 req/dia + 20 rpm | Explícitos no free | Não armazena (salvo opt-in) | OpenAI-compatível |
|
|
56
|
+
| Cohere | Trial: 1.000 calls/mês | 20 req/min (trial) | 30 dias + ZDR possível | REST + Compatibility API |
|
|
57
|
+
| HuggingFace | Credits (não especificado) | Por plano/provedor | Não armazena body de req | SDK HF |
|
|
58
|
+
| Mistral | Experiment (free, tel. verificado) | Conservadores (free) | Experiment treina (opt-out); Scale não | REST (Bearer) |
|
|
59
|
+
| OpenAI | Não especificado (PAYG) | Por plano | Não treina por padrão; ZDR possível | REST (Bearer) |
|
|
60
|
+
| Anthropic | Créditos iniciais (pequenos) | Por tier | 30 dias; ZDR possível | REST (Messages API) |
|
|
61
|
+
|
|
62
|
+
## Configuração de privacidade
|
|
63
|
+
|
|
64
|
+
- **standard**: qualquer provedor permitido (priorizando free)
|
|
65
|
+
- **strict**: somente provedores com ZDR ou que não treinam por padrão
|
|
66
|
+
|
|
67
|
+
## Técnicas de economia
|
|
68
|
+
|
|
69
|
+
### Context caching
|
|
70
|
+
Reutilizar contexto fixo (system prompt, policies). Provedores com desconto em cache: OpenAI, Anthropic, Gemini.
|
|
71
|
+
|
|
72
|
+
### Batch API
|
|
73
|
+
Para tarefas não-interativas (embeddings, lint em lote). OpenAI e Gemini oferecem 50% de desconto.
|
|
74
|
+
|
|
75
|
+
### Compaction/Sumarização
|
|
76
|
+
Quando o contexto exceder o teto do perfil, sumarizar histórico antes de continuar:
|
|
77
|
+
- cheap: max ~2k tokens de entrada
|
|
78
|
+
- smart: max ~12k tokens
|
|
79
|
+
- coding: max ~24k tokens
|
|
80
|
+
|
|
81
|
+
### Cache semântico
|
|
82
|
+
Hash do prompt normalizado + parâmetros → evita chamadas duplicadas.
|
|
83
|
+
|
|
84
|
+
## Prompts otimizados por perfil
|
|
85
|
+
|
|
86
|
+
### cheap
|
|
87
|
+
```
|
|
88
|
+
Tarefa: Responda em pt-BR com no máximo 6 linhas.
|
|
89
|
+
Formato: 3 bullets curtos + 1 linha "Próxima ação sugerida: ...".
|
|
90
|
+
Restrições: Não invente fatos; se faltar dado, pergunte 1 coisa só.
|
|
91
|
+
Pedido: {{USER_REQUEST}}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### smart
|
|
95
|
+
```
|
|
96
|
+
Você é um analista cuidadoso.
|
|
97
|
+
Objetivo: propor solução e explicar tradeoffs em pt-BR.
|
|
98
|
+
Saída: 1) Resumo (2-3 linhas) 2) Opções A/B com prós/contras 3) Recomendação final
|
|
99
|
+
Contexto: {{SUMMARY_CONTEXT}}
|
|
100
|
+
Pedido: {{USER_REQUEST}}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### coding
|
|
104
|
+
```
|
|
105
|
+
Você é um engenheiro de software.
|
|
106
|
+
Regra: não altere arquivos; gere plano e patch unificado.
|
|
107
|
+
Saída: Diagnóstico + Patch (unified diff) + Comandos de teste + Riscos
|
|
108
|
+
Código/erro: {{PASTE_ERROR_OR_CODE}}
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Regras de segurança
|
|
112
|
+
- ❌ Não alterar `openclaw.json` automaticamente
|
|
113
|
+
- ❌ Não gastar créditos pagos sem autorização explícita
|
|
114
|
+
- ✅ Em modo IDE, apenas recomendar perfil e provedor
|
|
115
|
+
- ✅ Tratar 429/timeout como evento normal → fallback
|
|
116
|
+
- ✅ Registrar provedor/modelo/tokens/custo em audit
|