O que Impacto do Plugin SDK faz?
Combine inventários atuais do ClawHub com uma varredura de fontes de cada plugin OpenClaw empacotado, incluindo plugins ausentes do ClawHub, para informar decisões de compatibilidade. O uso estático identifica dependências; não prova execução ou dependência de um comportamento específico. Mantenha as regras de aprovação e descontinuação em o guia de limites do SDK como autoritativas.
Investigar
-
Identifique cada superfície pública afetada a partir do código-fonte, incluindo exportações alternativas do SDK e caminhos em tempo de execução. Verifique a grafia em relação à definição e aos chamadores conhecidos; uma chave incorreta pode retornar um zero convincente. Rastreie também fachadas agrupadas, helpers do SDK e leitores de registro: um alias simples pode ter zero chamadas diretas de plugin enquanto implementa um método agrupado suportado.
-
Escaneie cada plugin empacotado em uma cópia limpa do OpenClaw usando a análise estática de fontes do Plugin Inspector. Reutilize um Inspector 0.4.3 ou mais novo instalado; caso contrário, instale-o em um diretório temporário separado, sem scripts de ciclo de vida:
inspector_dir=$(mktemp -d) npm install --prefix "$inspector_dir" --ignore-scripts @openclaw/[email protected] node {baseDir}/scripts/scan-bundled.mjs \ --inspector "$inspector_dir/node_modules/@openclaw/plugin-inspector" \ --out /tmp/openclaw-bundled-sdk-usage.jsonO scanner usa como padrão o checkout desta skill;
--root <checkout>seleciona outro. Ele descobreextensions/*/openclaw.plugin.json, nunca executa código de plugin, e registra o commit, impressão digital de entrada, versão do Inspector, cada plugin e análises incompletas. Uma varredura com falha ou tempo limite permanece como lacuna. Plugins sem pontos de entrada declarados também permanecem lacunas de cobertura, porque o Inspector pode perder pontos de entrada implícitos. Uma varredura de corpus interrompida não pode ser usada como um inventário concluído. Reutilize o relatório para múltiplas consultas enquanto sua fonte permanecer inalterada. Um commit alterado, lista de plugins ou fonte não commitada o invalida; reescaneie em vez de editar o recibo. -
Consulte cada chave canônica com ambas as fontes:
node {baseDir}/scripts/query.mjs 'api-member:api.registerTool' \ --bundled /tmp/openclaw-bundled-sdk-usage.jsonPara "atualizado nos últimos três meses", adicione
--months 3. Isso significa que o lançamento público elegível mais recente foi enviado dentro de três meses corridos de agora, medido em UTC (os finais de mês são limitados). Edições de listagem e reescaneamentos não contam como atualizações. A data de lançamento armazenada é seu horário de criação/envio; a aprovação pública pode ocorrer depois.--since 2026-07-16T12:00:00Zaceita um corte explícito. Relate o corte exato e inclusivo dereleaseWindow, não uma data adivinhada. Consumidores públicos e cobertura usam a mesma janela em cada página. A fonte empacotada não tem data de envio comparável: relate-a separadamente, sem filtro, mesmo para uma pergunta de lançamento recente. A contagem combinada é a união dessa janela de lançamento público e da fonte empacotada atual, não uma contagem de lançamentos recentes.O helper segue todas as páginas de uso e cobertura, incluindo páginas intermediárias vazias. Contagens e cobertura incluem cada resultado;
items,gapsewarningscontêm exemplos limitados com contagens omitidas emoutput.omitted. Referências mistas contam tanto nos totais de runtime quanto de tipo. Para uma investigação que precisa de cada consumidor ou lacuna, salve a saída--fullem um arquivo e leia em seções:node {baseDir}/scripts/query.mjs 'api-member:api.registerTool' \ --bundled /tmp/openclaw-bundled-sdk-usage.json --full > sdk-usage.json--helpdocumenta os limites de endpoint e travessia local. -
Inspecione as evidências correspondentes em relação à mudança proposta. Uma chamada de método pode não usar o comportamento que está sendo alterado. Consumidores apenas de tipo ainda importam para remoção de tipo/exportação. Consulte membros relacionados separadamente; uma importação de módulo não prova o uso de cada exportação. Referências repetidas em um plugin contam como um consumidor.
-
Para uma pergunta de contagem de uso, relate a chave, horário da consulta, janela de lançamento exata (se solicitada), contagens do ClawHub e empacotadas, sua contagem combinada, commit empacotado e ambas as lacunas de cobertura.
distinctPluginsecoveragede nível superior permanecem apenas para ClawHub;bundleddescreve resultados da fonte;combinedmescla identidades exatas de pacotes uma vez. Alguns plugins empacotados não têm nome de pacote: quando podem se sobrepor a correspondências públicas,combined.distinctPluginsé nulo edistinctPluginBoundsrelata o intervalo possível.observedPluginIdentitiesconta identidades da fonte antes dessa sobreposição incerta. Relate o intervalo, não seu limite superior como uma contagem exata. Nomes diferentes permanecem distintos; nunca adivinhe aliases a partir de nomes de exibição. Evidências empacotadas ausentes tornam o impacto combinado indisponível. Para uma mudança proposta no SDK, relate também as evidências correspondentes, chamadores indiretos e sua recomendação de compatibilidade. Conclua investigações de mudança com a decisão do mantenedor: preservar comportamento, descontinuar com migração ou prosseguir sob política existente. Nunca infira permissão a partir da contagem.
Chaves canônicas
| Superfície | Exemplo |
|---|---|
| Módulo do SDK | sdk-module:openclaw/plugin-sdk/core |
| Exportação nomeada do SDK | sdk-export:openclaw/plugin-sdk/core#OpenClawPluginApi |
| Método da API do plugin | api-member:api.registerTool |
| Membro runtime do host | runtime-member:runtime.channel.reply.dispatchReplyFromConfig |
| Hook nomeado | hook:hook.before_agent_start |
| Contrato de manifesto | manifest-contract:manifest.contracts.tools:example_tool |
Chaves descrevem identidades do SDK, não aliases locais. Membros de api.runtime normalizam para runtime.*. O inventário inclui referências suportadas e descontinuadas; deprecationCodes não vazio seleciona entradas associadas a avisos existentes. A inspeção por plugin está disponível em
https://clawhub.ai/api/v1/sdk-usage/plugin?package=<encoded-name>; siga seu nextCursor até nulo para obter o inventário completo.
Interpretar o resultado
| Resultado | Relatório |
|---|---|
| Consumidores observados | Relate contagens públicas, empacotadas e combinadas com seus escopos separados. Inspecione evidências antes de julgar uma alteração de comportamento. |
| Nenhum consumidor observado, cobertura completa | “Nenhuma referência estática detectada em N identidades de plugin público/empacotado.” Requer ambas as varreduras; exclui plugins não empacotados privados e dependências não empacotadas. Não é prova de que ninguém usa a API. |
| Análise parcial, com falha, ausente, incompatível ou não resolvida | Relate correspondências observadas, contagens de lacunas e lacunas representativas. Zero correspondências deixa o impacto desconhecido. |
| Corpus vazio | Nenhum plugin elegível foi observado; isso não fornece garantia do ecossistema. |
| Endpoint indisponível, resultado malformado ou travessia incompleta | O impacto é desconhecido. Preserve o erro e use evidências locais; nunca substitua por zero. |
A cobertura está vinculada às versões atuais do lançamento/artefato e análise. Relatórios elegíveis do ClawHub têm inputKind: "artifact"; relatórios empacotados usam "source". Uma referência de checkout de fonte não pode estabelecer o que um pacote publicado contém. Referências de tipo apenas de fonte ainda importam para remoção de tipo e exportação do SDK; preserve a fonte de cada correspondência. Um timestamp de varredura antigo por si só não torna um artefato imutável obsoleto. As evidências são amostradas; cada varredura relata seus limites de evidência/desconhecido. As páginas são leituras ao vivo, não um instantâneo: reexecute se lançamentos ou visibilidade mudarem durante a investigação. O helper sinaliza mudanças que observa, mas não pode estabelecer um instantâneo em toda a transação.
Não descarte um problema de segurança só porque nenhum consumidor foi observado. Descreva como as evidências de uso afetam o risco de compatibilidade; os proprietários de segurança e SDK ainda decidem a correção e qualquer exceção à janela de migração normal.