diff --git a/packages/frontend-defaults/src/createApp.test.tsx b/packages/frontend-defaults/src/createApp.test.tsx
index 7b5e345e12..c0928e7815 100644
--- a/packages/frontend-defaults/src/createApp.test.tsx
+++ b/packages/frontend-defaults/src/createApp.test.tsx
@@ -392,6 +392,7 @@ describe('createApp', () => {
+
]
diff --git a/plugins/app/report.api.md b/plugins/app/report.api.md
index ea34a1731f..c5ee77ef01 100644
--- a/plugins/app/report.api.md
+++ b/plugins/app/report.api.md
@@ -574,6 +574,37 @@ const appPlugin: OverridableFrontendPlugin<
params: ApiFactory,
) => ExtensionBlueprintParams;
}>;
+ 'api:app/plugin-wrapper': OverridableExtensionDefinition<{
+ config: {};
+ configInput: {};
+ output: ExtensionDataRef;
+ inputs: {
+ wrappers: ExtensionInput<
+ ConfigurableExtensionDataRef<
+ () => Promise<{
+ component: ComponentType<{
+ children: ReactNode;
+ }>;
+ }>,
+ 'core.plugin-wrapper.loader',
+ {}
+ >,
+ {
+ singleton: false;
+ optional: false;
+ }
+ >;
+ };
+ kind: 'api';
+ name: 'plugin-wrapper';
+ params: <
+ TApi,
+ TImpl extends TApi,
+ TDeps extends { [name in string]: unknown },
+ >(
+ params: ApiFactory,
+ ) => ExtensionBlueprintParams;
+ }>;
'api:app/scm-auth': OverridableExtensionDefinition<{
kind: 'api';
name: 'scm-auth';
diff --git a/plugins/app/src/plugin.ts b/plugins/app/src/plugin.ts
index c9deddb4f9..ec0c627f47 100644
--- a/plugins/app/src/plugin.ts
+++ b/plugins/app/src/plugin.ts
@@ -28,6 +28,7 @@ import {
SwappableComponentsApi,
IconsApi,
FeatureFlagsApi,
+ PluginWrapperApi,
TranslationsApi,
oauthRequestDialogAppRootElement,
alertDisplayAppRootElement,
@@ -58,6 +59,7 @@ export const appPlugin = createFrontendPlugin({
SwappableComponentsApi,
IconsApi,
FeatureFlagsApi,
+ PluginWrapperApi,
TranslationsApi,
DefaultSignInPage,
oauthRequestDialogAppRootElement,