¿Qué hace Impacto del SDK de plugins?
Combina los inventarios actuales de ClawHub con un escaneo de código fuente de cada plugin empaquetado de OpenClaw, incluyendo plugins ausentes de ClawHub, para informar decisiones de compatibilidad. El uso estático identifica dependencias; no demuestra ejecución o dependencia de un comportamiento particular. Mantén las reglas de aprobación y desaprobación en la guía de límites del SDK como autoridad.
Investigar
-
Identifica cada superficie pública afectada desde el código fuente, incluyendo exportaciones alternativas del SDK y rutas de ejecución. Verifica la ortografía contra la definición y los llamadores conocidos; una clave incorrecta puede devolver un cero convincente. También rastrea fachadas agrupadas, ayudas del SDK, y lectores de registro: un alias plano puede tener cero llamadas directas de plugins mientras implementa un método agrupado soportado.
-
Escanea cada plugin empaquetado en una copia limpia de OpenClaw usando el análisis de código fuente estático de Plugin Inspector. Reutiliza un Inspector 0.4.3 o más reciente instalado; de lo contrario, instálalo en un directorio temporal separado, sin 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.jsonEl escáner usa por defecto el checkout de esta habilidad;
--root <checkout>selecciona otro. Descubreextensions/*/openclaw.plugin.json, nunca ejecuta código de plugins, y registra el commit, la huella de entrada, la versión del Inspector, cada plugin, y análisis incompletos. Un escaneo fallido o con tiempo de espera agotado sigue siendo una brecha. Los plugins sin puntos de entrada declarados también son brechas de cobertura, porque Inspector puede perder puntos de entrada implícitos. Un escaneo interrumpido del corpus no puede usarse como inventario terminado. Reutiliza el informe para múltiples consultas mientras su fuente permanezca sin cambios. Un commit cambiado, un roster de plugins modificado, o código fuente sin commit lo invalida; vuelve a escanear en lugar de editar el recibo. -
Consulta cada clave canónica con ambas fuentes:
node {baseDir}/scripts/query.mjs 'api-member:api.registerTool' \ --bundled /tmp/openclaw-bundled-sdk-usage.jsonPara "actualizado en los últimos tres meses", añade
--months 3. Esto significa que la última versión pública elegible fue subida dentro de los tres meses calendario desde ahora, medido en UTC (los fines de mes se recortan). Las ediciones de listados y los nuevos escaneos no cuentan como actualizaciones. La fecha de publicación almacenada es su hora de creación/subida; la aprobación pública puede ocurrir después.--since 2026-07-16T12:00:00Zacepta un corte explícito. Reporta el corte inclusivo exacto dereleaseWindow, no una fecha adivinada. Los consumidores públicos y la cobertura usan la misma ventana en cada página. El código fuente empaquetado no tiene fecha de subida comparable: repórtalo por separado, sin filtrar, incluso para una pregunta sobre versiones recientes. El conteo combinado es la unión de esa ventana de publicación pública y el código fuente empaquetado actual, no un conteo de versiones recientes.El ayudante sigue todas las páginas de uso y cobertura, incluyendo páginas intermedias vacías. Los conteos y la cobertura incluyen cada resultado;
items,gapsywarningscontienen ejemplos acotados con conteos omitidos enoutput.omitted. Las referencias mixtas cuentan tanto en totales de tiempo de ejecución como de tipo. Para una investigación que necesite cada consumidor o brecha, guarda la salida--fullen un archivo y léelo en secciones:node {baseDir}/scripts/query.mjs 'api-member:api.registerTool' \ --bundled /tmp/openclaw-bundled-sdk-usage.json --full > sdk-usage.json--helpdocumenta el endpoint local y los límites de recorrido. -
Inspecciona la evidencia coincidente contra el cambio propuesto. Una llamada a método puede no usar el comportamiento que se está cambiando. Los consumidores solo de tipo aún importan para la eliminación de tipos/exportaciones. Consulta miembros relacionados por separado; una importación de módulo no demuestra uso de cada exportación. Las referencias repetidas en un plugin cuentan como un consumidor.
-
Para una pregunta de conteo de uso, reporta la clave, la hora de consulta, la ventana exacta de publicación (si se solicitó), los conteos de ClawHub y empaquetados, su conteo combinado, el commit empaquetado, y ambas brechas de cobertura. Los
distinctPluginsycoveragede nivel superior siguen siendo solo de ClawHub;bundleddescribe los resultados de código fuente;combinedfusiona identidades exactas de paquetes una vez. Algunos plugins empaquetados no tienen nombre de paquete: cuando podrían superponerse con coincidencias públicas,combined.distinctPluginses nulo ydistinctPluginBoundsreporta el rango posible.observedPluginIdentitiescuenta identidades de código fuente antes de esa superposición incierta. Reporta el rango, no su límite superior como un conteo exacto. Nombres diferentes siguen siendo distintos; nunca adivines alias a partir de nombres mostrados. La evidencia empaquetada faltante hace que el impacto combinado no esté disponible. Para un cambio propuesto en el SDK, también reporta la evidencia coincidente, los llamadores indirectos, y tu recomendación de compatibilidad. Termina las investigaciones de cambios con la decisión del mantenedor: preservar comportamiento, desaprobar con migración, o proceder bajo política existente. Nunca infieras permiso a partir del conteo.
Claves canónicas
| Superficie | Ejemplo |
|---|---|
| Módulo del SDK | sdk-module:openclaw/plugin-sdk/core |
| Exportación nombrada del SDK | sdk-export:openclaw/plugin-sdk/core#OpenClawPluginApi |
| Método de API de plugin | api-member:api.registerTool |
| Miembro de runtime host | runtime-member:runtime.channel.reply.dispatchReplyFromConfig |
| Hook nombrado | hook:hook.before_agent_start |
| Contrato de manifiesto | manifest-contract:manifest.contracts.tools:example_tool |
Las claves describen identidades del SDK, no alias locales. Los miembros de api.runtime se normalizan a runtime.*. El inventario incluye referencias soportadas y desaprobadas; deprecationCodes no vacío selecciona entradas asociadas con advertencias existentes. La inspección por plugin está disponible en https://clawhub.ai/api/v1/sdk-usage/plugin?package=<encoded-name>; sigue su nextCursor hasta null para obtener el inventario completo.
Interpretar el resultado
| Resultado | Informe |
|---|---|
| Consumidores observados | Reporta conteos públicos, empaquetados y combinados con sus alcances separados. Inspecciona la evidencia antes de juzgar un cambio de comportamiento. |
| Sin consumidores observados, cobertura completa | "No se detectaron referencias estáticas en N identidades de plugins públicos/empaquetados." Requiere ambos escaneos; excluye plugins privados no empaquetados y dependencias no empaquetadas. No es prueba de que nadie use la API. |
| Análisis parcial, fallido, faltante, incompatible o no resuelto | Indica coincidencias observadas, conteos de brechas y brechas representativas. Cero coincidencias deja el impacto desconocido. |
| Corpus vacío | No se observaron plugins elegibles; esto no proporciona seguridad sobre el ecosistema. |
| Endpoint no disponible, resultado malformado o recorrido incompleto | El impacto es desconocido. Preserva el error y usa evidencia local; nunca sustituyas con cero. |
La cobertura está vinculada a la versión actual de publicación/artefacto y las versiones de análisis. Los informes elegibles de ClawHub tienen inputKind: "artifact"; los informes empaquetados usan "source". Una referencia de código fuente no puede establecer lo que contiene un paquete publicado. Las referencias de tipo solo de código fuente aún importan para la eliminación de tipos y exportaciones del SDK; preserva la fuente de cada coincidencia. Una marca de tiempo de escaneo antigua por sí sola no hace que un artefacto inmutable esté desactualizado. La evidencia es muestreada; cada escaneo reporta sus límites de evidencia/desconocido. Las páginas son lecturas en vivo, no una instantánea: vuelve a ejecutar si las publicaciones o la visibilidad cambian durante la investigación. El ayudante marca los cambios que observa pero no puede establecer una instantánea transaccional completa.
No descartes un problema de seguridad solo porque no se observaron consumidores. Describe cómo la evidencia de uso afecta el riesgo de compatibilidad; los propietarios de seguridad y SDK aún deciden la corrección y cualquier excepción a la ventana de migración normal.