Saltar al contenido principal

Migración del Plugin SDK

OpenClaw ha pasado de una capa amplia de compatibilidad retroactiva a una arquitectura moderna de plugins con importaciones enfocadas y documentadas. Si tu plugin se creó antes de la nueva arquitectura, esta guía te ayuda a migrarlo.

Qué está cambiando

El antiguo sistema de plugins proporcionaba dos superficies muy abiertas que permitían a los plugins importar todo lo que necesitaran desde un único punto de entrada:
  • openclaw/plugin-sdk/compat — una única importación que reexportaba decenas de utilidades. Se introdujo para mantener funcionando los plugins antiguos basados en hooks mientras se construía la nueva arquitectura de plugins.
  • openclaw/extension-api — un puente que daba a los plugins acceso directo a utilidades del lado del host, como el ejecutor integrado del agente.
Ambas superficies ahora están obsoletas. Siguen funcionando en tiempo de ejecución, pero los plugins nuevos no deben usarlas, y los plugins existentes deben migrar antes de que la siguiente versión principal las elimine.
La capa de compatibilidad retroactiva se eliminará en una futura versión principal. Los plugins que sigan importando desde estas superficies dejarán de funcionar cuando eso ocurra.

Por qué cambió esto

El enfoque anterior causaba problemas:
  • Inicio lento — importar una utilidad cargaba decenas de módulos no relacionados
  • Dependencias circulares — las reexportaciones amplias facilitaban la creación de ciclos de importación
  • Superficie de API poco clara — no había forma de saber qué exportaciones eran estables y cuáles eran internas
El moderno plugin SDK corrige esto: cada ruta de importación (openclaw/plugin-sdk/\<subpath\>) es un módulo pequeño, autocontenido, con un propósito claro y un contrato documentado. Las costuras heredadas de conveniencia para proveedores en canales integrados también han desaparecido. Las importaciones como openclaw/plugin-sdk/slack, openclaw/plugin-sdk/discord, openclaw/plugin-sdk/signal, openclaw/plugin-sdk/whatsapp, las costuras de utilidades con marca de canal y openclaw/plugin-sdk/telegram-core eran atajos privados del monorepo, no contratos estables de plugin. Usa en su lugar subrutas genéricas y estrechas del SDK. Dentro del espacio de trabajo de plugins integrados, mantén las utilidades propias del proveedor en el propio api.ts o runtime-api.ts de ese plugin. Ejemplos actuales de proveedores integrados:
  • Anthropic mantiene las utilidades específicas de streams de Claude en su propia costura api.ts / contract-api.ts
  • OpenAI mantiene los builders del proveedor, utilidades del modelo predeterminado y builders del proveedor realtime en su propio api.ts
  • OpenRouter mantiene el builder del proveedor y las utilidades de onboarding/configuración en su propio api.ts

Cómo migrar

1

Auditar el comportamiento de respaldo del wrapper de Windows

Si tu plugin usa openclaw/plugin-sdk/windows-spawn, los wrappers de Windows .cmd/.bat no resueltos ahora fallan en modo cerrado a menos que pases explícitamente allowShellFallback: true.
// Before
const program = applyWindowsSpawnProgramPolicy({ candidate });

// After
const program = applyWindowsSpawnProgramPolicy({
  candidate,
  // Only set this for trusted compatibility callers that intentionally
  // accept shell-mediated fallback.
  allowShellFallback: true,
});
Si tu llamador no depende intencionadamente del respaldo mediante shell, no configures allowShellFallback y maneja en su lugar el error lanzado.
2

Encontrar importaciones obsoletas

Busca en tu plugin importaciones desde cualquiera de las dos superficies obsoletas:
grep -r "plugin-sdk/compat" my-plugin/
grep -r "openclaw/extension-api" my-plugin/
3

Reemplazar por importaciones enfocadas

Cada exportación de la superficie antigua se asigna a una ruta de importación moderna específica:
// Before (deprecated backwards-compatibility layer)
import {
  createChannelReplyPipeline,
  createPluginRuntimeStore,
  resolveControlCommandGate,
} from "openclaw/plugin-sdk/compat";

// After (modern focused imports)
import { createChannelReplyPipeline } from "openclaw/plugin-sdk/channel-reply-pipeline";
import { createPluginRuntimeStore } from "openclaw/plugin-sdk/runtime-store";
import { resolveControlCommandGate } from "openclaw/plugin-sdk/command-auth";
Para utilidades del lado del host, usa el runtime inyectado del plugin en lugar de importar directamente:
// Before (deprecated extension-api bridge)
import { runEmbeddedPiAgent } from "openclaw/extension-api";
const result = await runEmbeddedPiAgent({ sessionId, prompt });

// After (injected runtime)
const result = await api.runtime.agent.runEmbeddedPiAgent({ sessionId, prompt });
El mismo patrón se aplica a otras utilidades heredadas del puente:
Old importModern equivalent
resolveAgentDirapi.runtime.agent.resolveAgentDir
resolveAgentWorkspaceDirapi.runtime.agent.resolveAgentWorkspaceDir
resolveAgentIdentityapi.runtime.agent.resolveAgentIdentity
resolveThinkingDefaultapi.runtime.agent.resolveThinkingDefault
resolveAgentTimeoutMsapi.runtime.agent.resolveAgentTimeoutMs
ensureAgentWorkspaceapi.runtime.agent.ensureAgentWorkspace
session store helpersapi.runtime.agent.session.*
4

Compilar y probar

pnpm build
pnpm test -- my-plugin/

Referencia de rutas de importación

Import pathPurposeKey exports
plugin-sdk/plugin-entryUtilidad canónica de entrada de plugindefinePluginEntry
plugin-sdk/coreReexportación paraguas heredada para definiciones/builders de entradas de canaldefineChannelPluginEntry, createChatChannelPlugin
plugin-sdk/config-schemaExportación del esquema de configuración raízOpenClawSchema
plugin-sdk/provider-entryUtilidad de entrada de proveedor únicodefineSingleProviderPluginEntry
plugin-sdk/channel-coreDefiniciones y builders enfocados de entradas de canaldefineChannelPluginEntry, defineSetupPluginEntry, createChatChannelPlugin, createChannelPluginBase
plugin-sdk/setupUtilidades compartidas del asistente de configuraciónPrompts de allowlist, builders de estado de configuración
plugin-sdk/setup-runtimeUtilidades del runtime en tiempo de configuraciónAdaptadores de patch de configuración seguros para importación, utilidades de notas de lookup, promptResolvedAllowFrom, splitSetupEntries, proxies de configuración delegados
plugin-sdk/setup-adapter-runtimeUtilidades del adaptador de configuracióncreateEnvPatchedAccountSetupAdapter
plugin-sdk/setup-toolsUtilidades de herramientas de configuraciónformatCliCommand, detectBinary, extractArchive, resolveBrewExecutable, formatDocsLink, CONFIG_DIR
plugin-sdk/account-coreUtilidades para múltiples cuentasUtilidades de lista de cuentas/configuración/puertas de acción
plugin-sdk/account-idUtilidades de ID de cuentaDEFAULT_ACCOUNT_ID, normalización de ID de cuenta
plugin-sdk/account-resolutionUtilidades de búsqueda de cuentasUtilidades de búsqueda de cuentas + respaldo predeterminado
plugin-sdk/account-helpersUtilidades estrechas de cuentaUtilidades de lista de cuentas/acciones de cuenta
plugin-sdk/channel-setupAdaptadores del asistente de configuracióncreateOptionalChannelSetupSurface, createOptionalChannelSetupAdapter, createOptionalChannelSetupWizard, además de DEFAULT_ACCOUNT_ID, createTopLevelChannelDmPolicy, setSetupChannelEnabled, splitSetupEntries
plugin-sdk/channel-pairingPrimitivas de pairing de MDcreateChannelPairingController
plugin-sdk/channel-reply-pipelineCableado de prefijo de respuesta + escrituracreateChannelReplyPipeline
plugin-sdk/channel-config-helpersFábricas de adaptadores de configuracióncreateHybridChannelConfigAdapter
plugin-sdk/channel-config-schemaBuilders de esquema de configuraciónTipos de esquema de configuración de canal
plugin-sdk/telegram-command-configUtilidades de configuración de comandos de TelegramNormalización de nombres de comandos, recorte de descripciones, validación de duplicados/conflictos
plugin-sdk/channel-policyResolución de políticas de grupo/MDresolveChannelGroupRequireMention
plugin-sdk/channel-lifecycleSeguimiento de estado de cuentascreateAccountStatusSink
plugin-sdk/inbound-envelopeUtilidades de envoltura entranteUtilidades compartidas de rutas + builders de envelope
plugin-sdk/inbound-reply-dispatchUtilidades de respuestas entrantesUtilidades compartidas de registro y despacho
plugin-sdk/messaging-targetsAnálisis de destinos de mensajeríaUtilidades de análisis/coincidencia de destinos
plugin-sdk/outbound-mediaUtilidades de medios salientesCarga compartida de medios salientes
plugin-sdk/outbound-runtimeUtilidades del runtime salienteUtilidades de identidad saliente/delegado de envío
plugin-sdk/thread-bindings-runtimeUtilidades de enlaces de hilosCiclo de vida de enlaces de hilos y utilidades del adaptador
plugin-sdk/agent-media-payloadUtilidades heredadas de carga de mediosBuilder de carga de medios del agente para diseños heredados de campos
plugin-sdk/channel-runtimeShim de compatibilidad obsoletoSolo utilidades heredadas del runtime de canal
plugin-sdk/channel-send-resultTipos de resultado de envíoTipos de resultado de respuesta
plugin-sdk/runtime-storeAlmacenamiento persistente de pluginscreatePluginRuntimeStore
plugin-sdk/runtimeUtilidades amplias del runtimeUtilidades de runtime/logging/backup/instalación de plugins
plugin-sdk/runtime-envUtilidades estrechas de entorno del runtimeLogger/entorno del runtime, utilidades de timeout, retry y backoff
plugin-sdk/plugin-runtimeUtilidades compartidas del runtime de pluginsUtilidades compartidas de comandos/hooks/http/interactivo de plugins
plugin-sdk/hook-runtimeUtilidades del pipeline de hooksUtilidades compartidas de webhook/hooks internos
plugin-sdk/lazy-runtimeUtilidades de runtime diferidocreateLazyRuntimeModule, createLazyRuntimeMethod, createLazyRuntimeMethodBinder, createLazyRuntimeNamedExport, createLazyRuntimeSurface
plugin-sdk/process-runtimeUtilidades de procesosUtilidades compartidas de exec
plugin-sdk/cli-runtimeUtilidades del runtime de CLIFormateo de comandos, esperas, utilidades de versión
plugin-sdk/gateway-runtimeUtilidades de gatewayCliente de gateway y utilidades de patch de estado de canal
plugin-sdk/config-runtimeUtilidades de configuraciónUtilidades de carga/escritura de configuración
plugin-sdk/telegram-command-configUtilidades de comandos de TelegramUtilidades estables de respaldo para validación de comandos de Telegram cuando la superficie contractual integrada de Telegram no está disponible
plugin-sdk/approval-runtimeUtilidades de prompts de aprobaciónPayload de aprobación exec/plugin, utilidades de capacidad/perfil de aprobación, utilidades nativas de enrutamiento/runtime de aprobación
plugin-sdk/approval-auth-runtimeUtilidades de autenticación de aprobaciónResolución de aprobadores, autenticación de acciones en el mismo chat
plugin-sdk/approval-client-runtimeUtilidades de cliente de aprobaciónUtilidades nativas de perfil/filtro de aprobación de exec
plugin-sdk/approval-delivery-runtimeUtilidades de entrega de aprobaciónAdaptadores nativos de capacidad/entrega de aprobación
plugin-sdk/approval-native-runtimeUtilidades de destino de aprobaciónUtilidades nativas de destino de aprobación/enlace de cuenta
plugin-sdk/approval-reply-runtimeUtilidades de respuesta de aprobaciónUtilidades de payload de respuesta de aprobación exec/plugin
plugin-sdk/security-runtimeUtilidades de seguridadUtilidades compartidas de confianza, DM gating, contenido externo y recopilación de secretos
plugin-sdk/ssrf-policyUtilidades de política SSRFUtilidades de allowlist de hosts y política de red privada
plugin-sdk/ssrf-runtimeUtilidades SSRF del runtimeDispatcher fijado, fetch protegido, utilidades de política SSRF
plugin-sdk/collection-runtimeUtilidades de caché acotadapruneMapToMaxSize
plugin-sdk/diagnostic-runtimeUtilidades de compuertas de diagnósticoisDiagnosticFlagEnabled, isDiagnosticsEnabled
plugin-sdk/error-runtimeUtilidades de formateo de erroresformatUncaughtError, isApprovalNotFoundError, utilidades de grafo de errores
plugin-sdk/fetch-runtimeUtilidades de fetch/proxy encapsuladasresolveFetch, utilidades de proxy
plugin-sdk/host-runtimeUtilidades de normalización de hostnormalizeHostname, normalizeScpRemoteHost
plugin-sdk/retry-runtimeUtilidades de retryRetryConfig, retryAsync, ejecutores de políticas
plugin-sdk/allow-fromFormateo de allowlistformatAllowFromLowercase
plugin-sdk/allowlist-resolutionMapeo de entradas de allowlistmapAllowlistResolutionInputs
plugin-sdk/command-authCompuertas de comandos y utilidades de superficie de comandosresolveControlCommandGate, utilidades de autorización de remitentes, utilidades de registro de comandos
plugin-sdk/secret-inputAnálisis de entradas secretasUtilidades de entrada secreta
plugin-sdk/webhook-ingressUtilidades de solicitudes webhookUtilidades de destino webhook
plugin-sdk/webhook-request-guardsUtilidades de guardas de cuerpo webhookUtilidades de lectura/límite del cuerpo de la solicitud
plugin-sdk/reply-runtimeRuntime compartido de respuestaDespacho entrante, heartbeat, planificador de respuestas, chunking
plugin-sdk/reply-dispatch-runtimeUtilidades estrechas de despacho de respuestaUtilidades de finalización + despacho del proveedor
plugin-sdk/reply-historyUtilidades del historial de respuestasbuildHistoryContext, buildPendingHistoryContextFromMap, recordPendingHistoryEntry, clearHistoryEntriesIfEnabled
plugin-sdk/reply-referencePlanificación de referencias de respuestacreateReplyReferencePlanner
plugin-sdk/reply-chunkingUtilidades de fragmentación de respuestasUtilidades de fragmentación de texto/markdown
plugin-sdk/session-store-runtimeUtilidades del almacén de sesionesUtilidades de ruta del almacén + updated-at
plugin-sdk/state-pathsUtilidades de rutas de estadoUtilidades de directorio de estado y OAuth
plugin-sdk/routingUtilidades de enrutamiento/clave de sesiónresolveAgentRoute, buildAgentSessionKey, resolveDefaultAgentBoundAccountId, utilidades de normalización de claves de sesión
plugin-sdk/status-helpersUtilidades de estado de canalBuilders de resumen/instantánea de estado de canal/cuenta, valores predeterminados del estado del runtime, utilidades de metadatos de incidencias
plugin-sdk/target-resolver-runtimeUtilidades de resolución de destinoUtilidades compartidas de resolución de destino
plugin-sdk/string-normalization-runtimeUtilidades de normalización de cadenasUtilidades de normalización de slug/cadenas
plugin-sdk/request-urlUtilidades de URL de solicitudExtraer URL de cadena de entradas tipo request
plugin-sdk/run-commandUtilidades de comando temporizadoEjecutor de comandos temporizado con stdout/stderr normalizados
plugin-sdk/param-readersLectores de parámetrosLectores comunes de parámetros de herramientas/CLI
plugin-sdk/tool-sendExtracción de envíos de herramientasExtraer campos canónicos de destino de envío de args de herramientas
plugin-sdk/temp-pathUtilidades de rutas temporalesUtilidades compartidas de rutas temporales de descarga
plugin-sdk/logging-coreUtilidades de loggingLogger de subsistema y utilidades de redacción
plugin-sdk/markdown-table-runtimeUtilidades de tablas MarkdownUtilidades de modo de tablas Markdown
plugin-sdk/reply-payloadTipos de respuesta de mensajesTipos de payload de respuesta
plugin-sdk/provider-setupUtilidades de configuración curadas para proveedores locales/autohospedadosUtilidades de descubrimiento/configuración de proveedores autohospedados
plugin-sdk/self-hosted-provider-setupUtilidades enfocadas de configuración de proveedores autohospedados compatibles con OpenAILas mismas utilidades de descubrimiento/configuración de proveedores autohospedados
plugin-sdk/provider-auth-runtimeUtilidades de autenticación de proveedores en runtimeUtilidades de resolución de clave API en runtime
plugin-sdk/provider-auth-api-keyUtilidades de configuración de clave API de proveedoresUtilidades de onboarding/escritura de perfiles de clave API
plugin-sdk/provider-auth-resultUtilidades de resultados de autenticación de proveedorBuilder estándar de resultados de autenticación OAuth
plugin-sdk/provider-auth-loginUtilidades de inicio de sesión interactivo de proveedoresUtilidades compartidas de inicio de sesión interactivo
plugin-sdk/provider-env-varsUtilidades de variables de entorno de proveedorUtilidades de lookup de variables de entorno de autenticación de proveedor
plugin-sdk/provider-model-sharedUtilidades compartidas de modelo/replay de proveedorProviderReplayFamily, buildProviderReplayFamilyHooks, normalizeModelCompat, builders compartidos de políticas de replay, utilidades de endpoint de proveedor y utilidades de normalización de ID de modelo
plugin-sdk/provider-catalog-sharedUtilidades compartidas del catálogo de proveedoresfindCatalogTemplate, buildSingleProviderApiKeyCatalog, supportsNativeStreamingUsageCompat, applyProviderNativeStreamingUsageCompat
plugin-sdk/provider-onboardParches de onboarding de proveedorUtilidades de configuración de onboarding
plugin-sdk/provider-httpUtilidades HTTP de proveedorUtilidades genéricas de HTTP/capacidades de endpoint del proveedor
plugin-sdk/provider-web-fetchUtilidades web-fetch de proveedorUtilidades de registro/caché de proveedor web-fetch
plugin-sdk/provider-web-searchUtilidades web-search de proveedorUtilidades de registro/caché/configuración de proveedor web-search
plugin-sdk/provider-toolsUtilidades de compatibilidad de herramientas/esquemas de proveedorProviderToolCompatFamily, buildProviderToolCompatFamilyHooks, limpieza de esquemas Gemini + diagnósticos, y utilidades de compatibilidad xAI como resolveXaiModelCompatPatch / applyXaiModelCompat
plugin-sdk/provider-usageUtilidades de uso de proveedoresfetchClaudeUsage, fetchGeminiUsage, fetchGithubCopilotUsage y otras utilidades de uso de proveedores
plugin-sdk/provider-streamUtilidades de envoltura de streams de proveedorProviderStreamFamily, buildProviderStreamFamilyHooks, composeProviderStreamWrappers, tipos de envolturas de stream y utilidades compartidas de envolturas para Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot
plugin-sdk/keyed-async-queueCola asíncrona ordenadaKeyedAsyncQueue
plugin-sdk/media-runtimeUtilidades compartidas de mediosUtilidades de fetch/transform/store de medios más builders de payload de medios
plugin-sdk/media-understandingUtilidades de entendimiento de mediosTipos de proveedores de entendimiento de medios más exportaciones de utilidades de imagen/audio de cara al proveedor
plugin-sdk/text-runtimeUtilidades compartidas de textoEliminación de texto visible para el asistente, renderizado/chunking/tablas Markdown, utilidades de redacción, utilidades de etiquetas de directivas, utilidades de texto seguro y otras utilidades relacionadas de texto/logging
plugin-sdk/text-chunkingUtilidades de fragmentación de textoUtilidad de fragmentación de texto saliente
plugin-sdk/speechUtilidades de vozTipos de proveedores de voz más exportaciones de utilidades de directivas, registro y validación de cara al proveedor
plugin-sdk/speech-coreNúcleo compartido de vozTipos de proveedores de voz, registro, directivas, normalización
plugin-sdk/realtime-transcriptionUtilidades de transcripción en tiempo realTipos de proveedores y utilidades de registro
plugin-sdk/realtime-voiceUtilidades de voz en tiempo realTipos de proveedores y utilidades de registro
plugin-sdk/image-generation-coreNúcleo compartido de generación de imágenesTipos, failover, autenticación y utilidades de registro para generación de imágenes
plugin-sdk/video-generationUtilidades de generación de vídeoTipos de proveedor/solicitud/resultado de generación de vídeo
plugin-sdk/video-generation-coreNúcleo compartido de generación de vídeoTipos de generación de vídeo, utilidades de failover, lookup de proveedor y análisis de refs de modelo
plugin-sdk/interactive-runtimeUtilidades de respuesta interactivaNormalización/reducción de payload de respuesta interactiva
plugin-sdk/channel-config-primitivesPrimitivas de configuración de canalPrimitivas estrechas de esquema de configuración de canal
plugin-sdk/channel-config-writesUtilidades de escritura de configuración de canalUtilidades de autorización de escritura de configuración de canal
plugin-sdk/channel-plugin-commonPreludio compartido de canalExportaciones compartidas de preludio de plugin de canal
plugin-sdk/channel-statusUtilidades de estado de canalUtilidades compartidas de instantánea/resumen de estado de canal
plugin-sdk/allowlist-config-editUtilidades de configuración de allowlistUtilidades de edición/lectura de configuración de allowlist
plugin-sdk/group-accessUtilidades de acceso a gruposUtilidades compartidas de decisiones de acceso a grupos
plugin-sdk/direct-dmUtilidades de MD directosUtilidades compartidas de autenticación/protección de MD directos
plugin-sdk/extension-sharedUtilidades compartidas de extensiónPrimitivas de utilidades pasivas de canal/estado
plugin-sdk/webhook-targetsUtilidades de destinos webhookRegistro de destinos webhook y utilidades de instalación de rutas
plugin-sdk/webhook-pathUtilidades de rutas webhookUtilidades de normalización de rutas webhook
plugin-sdk/web-mediaUtilidades compartidas de medios webUtilidades de carga de medios remotos/locales
plugin-sdk/zodReexportación de zodzod reexportado para consumidores del plugin SDK
plugin-sdk/memory-coreUtilidades integradas de memory-coreSuperficie de utilidades de gestor/configuración/archivo/CLI de memoria
plugin-sdk/memory-core-engine-runtimeFachada del runtime del motor de memoriaFachada del runtime de índice/búsqueda de memoria
plugin-sdk/memory-core-host-engine-foundationMotor foundation del host de memoriaExportaciones del motor foundation del host de memoria
plugin-sdk/memory-core-host-engine-embeddingsMotor de embeddings del host de memoriaExportaciones del motor de embeddings del host de memoria
plugin-sdk/memory-core-host-engine-qmdMotor QMD del host de memoriaExportaciones del motor QMD del host de memoria
plugin-sdk/memory-core-host-engine-storageMotor de almacenamiento del host de memoriaExportaciones del motor de almacenamiento del host de memoria
plugin-sdk/memory-core-host-multimodalUtilidades multimodales del host de memoriaUtilidades multimodales del host de memoria
plugin-sdk/memory-core-host-queryUtilidades de consulta del host de memoriaUtilidades de consulta del host de memoria
plugin-sdk/memory-core-host-secretUtilidades de secretos del host de memoriaUtilidades de secretos del host de memoria
plugin-sdk/memory-core-host-statusUtilidades de estado del host de memoriaUtilidades de estado del host de memoria
plugin-sdk/memory-core-host-runtime-cliRuntime CLI del host de memoriaUtilidades del runtime CLI del host de memoria
plugin-sdk/memory-core-host-runtime-coreRuntime central del host de memoriaUtilidades del runtime central del host de memoria
plugin-sdk/memory-core-host-runtime-filesUtilidades de archivos/runtime del host de memoriaUtilidades de archivos/runtime del host de memoria
plugin-sdk/memory-lancedbUtilidades integradas de memory-lancedbSuperficie de utilidades de memory-lancedb
plugin-sdk/testingUtilidades de pruebaUtilidades de prueba y mocks
Esta tabla es intencionalmente el subconjunto común de migración, no la superficie completa del SDK. La lista completa de más de 200 entrypoints está en scripts/lib/plugin-sdk-entrypoints.json. Esa lista aún incluye algunas costuras de utilidades de plugins integrados como plugin-sdk/feishu, plugin-sdk/feishu-setup, plugin-sdk/zalo, plugin-sdk/zalo-setup y plugin-sdk/matrix*. Siguen exportadas para mantenimiento de plugins integrados y compatibilidad, pero se omiten intencionalmente de la tabla común de migración y no son el destino recomendado para código nuevo de plugins. La misma regla se aplica a otras familias de utilidades integradas como:
  • utilidades de soporte del browser: plugin-sdk/browser-config-support, plugin-sdk/browser-support
  • Matrix: plugin-sdk/matrix*
  • LINE: plugin-sdk/line*
  • IRC: plugin-sdk/irc*
  • superficies de utilidades/plugins integrados como plugin-sdk/googlechat, plugin-sdk/zalouser, plugin-sdk/bluebubbles*, plugin-sdk/mattermost*, plugin-sdk/msteams, plugin-sdk/nextcloud-talk, plugin-sdk/nostr, plugin-sdk/tlon, plugin-sdk/twitch, plugin-sdk/github-copilot-login, plugin-sdk/github-copilot-token, plugin-sdk/diagnostics-otel, plugin-sdk/diffs, plugin-sdk/llm-task, plugin-sdk/thread-ownership y plugin-sdk/voice-call
plugin-sdk/github-copilot-token actualmente expone la estrecha superficie de utilidades de token DEFAULT_COPILOT_API_BASE_URL, deriveCopilotApiBaseUrlFromToken y resolveCopilotApiToken. Usa la importación más estrecha que coincida con la tarea. Si no encuentras una exportación, consulta el código fuente en src/plugin-sdk/ o pregunta en Discord.

Cronograma de eliminación

WhenWhat happens
AhoraLas superficies obsoletas emiten advertencias en tiempo de ejecución
Próxima versión principalLas superficies obsoletas se eliminarán; los plugins que sigan usándolas dejarán de funcionar
Todos los plugins del núcleo ya se han migrado. Los plugins externos deben migrar antes de la próxima versión principal.

Suprimir temporalmente las advertencias

Configura estas variables de entorno mientras trabajas en la migración:
OPENCLAW_SUPPRESS_PLUGIN_SDK_COMPAT_WARNING=1 openclaw gateway run
OPENCLAW_SUPPRESS_EXTENSION_API_WARNING=1 openclaw gateway run
Esto es una vía de escape temporal, no una solución permanente.

Relacionado