diff --git a/scripts/check-extension-plugin-sdk-boundary.mjs b/scripts/check-extension-plugin-sdk-boundary.mjs index 91ed44230fc..2d7cf440c24 100644 --- a/scripts/check-extension-plugin-sdk-boundary.mjs +++ b/scripts/check-extension-plugin-sdk-boundary.mjs @@ -110,6 +110,10 @@ function resolveExtensionRoot(filePath) { return `${segments[0]}/${segments[1]}`; } +function isRuntimeApiFile(filePath) { + return normalizePath(filePath).endsWith("/runtime-api.ts"); +} + function classifyReason(mode, kind, resolvedPath, specifier) { const verb = kind === "export" @@ -172,6 +176,11 @@ function collectFromSourceFile(mode, sourceFile, filePath) { if (!specifier.startsWith(".") || !resolvedPath || !extensionRoot) { return; } + if (isRuntimeApiFile(filePath) && resolvedPath.startsWith("src/plugin-sdk/")) { + // Bundled extensions use private runtime barrels to bridge into focused plugin-sdk + // facades without widening the public npm export surface for those channels. + return; + } if (resolvedPath === extensionRoot || resolvedPath.startsWith(`${extensionRoot}/`)) { return; }