@fabioforest/openclaw 3.0.0 → 3.4.0

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 (35) hide show
  1. package/bin/openclaw.js +37 -8
  2. package/lib/cli/assist.js +84 -0
  3. package/lib/cli/doctor.js +37 -3
  4. package/lib/cli/ide.js +218 -0
  5. package/lib/cli/init.js +135 -79
  6. package/lib/cli/inspect.js +58 -0
  7. package/lib/cli/orchestrate.js +43 -15
  8. package/lib/cli/update.js +113 -47
  9. package/lib/context/collector.js +104 -0
  10. package/lib/context/index.js +75 -0
  11. package/lib/router/match.js +107 -0
  12. package/lib/setup/config_wizard.js +2 -0
  13. package/package.json +2 -2
  14. package/templates/.agent/agents/workflow-automator.md +31 -0
  15. package/templates/.agent/rules/CONSENT_FIRST.md +24 -0
  16. package/templates/.agent/rules/DEV_MODE.md +18 -0
  17. package/templates/.agent/rules/ROUTER_PROTOCOL.md +22 -0
  18. package/templates/.agent/rules/WEB_AUTOMATION.md +52 -0
  19. package/templates/.agent/skills/content-sourcer/SKILL.md +48 -0
  20. package/templates/.agent/skills/context-flush/SKILL.md +30 -0
  21. package/templates/.agent/skills/drive-organizer/SKILL.md +40 -0
  22. package/templates/.agent/skills/linkedin-optimizer/SKILL.md +48 -0
  23. package/templates/.agent/skills/mission-control/SKILL.md +37 -0
  24. package/templates/.agent/skills/openclaw-assist/SKILL.md +30 -0
  25. package/templates/.agent/skills/openclaw-dev/SKILL.md +26 -0
  26. package/templates/.agent/skills/openclaw-inspect/SKILL.md +21 -0
  27. package/templates/.agent/skills/openclaw-installation-debugger/scripts/debug.js +16 -2
  28. package/templates/.agent/skills/openclaw-router/SKILL.md +34 -0
  29. package/templates/.agent/skills/openclaw-security/SKILL.md +21 -0
  30. package/templates/.agent/skills/site-tester/SKILL.md +49 -0
  31. package/templates/.agent/skills/smart-router/SKILL.md +116 -0
  32. package/templates/.agent/skills/web-scraper/SKILL.md +51 -0
  33. package/templates/.agent/state/MEMORY.md +8 -0
  34. package/templates/.agent/state/mission_control.json +34 -0
  35. package/templates/.agent/workflows/ai-capture.md +39 -0
@@ -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 req = https.get(url, { timeout: 5000 }, (res) => {
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
@@ -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.