From 8be79a09b89eafc115ebc16f98540a2c64e6b935 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Tue, 7 Apr 2026 11:39:44 +0100 Subject: [PATCH] build: align plugin sdk boundary exports --- packages/plugin-sdk/package.json | 4 ++ ...tension-package-project-boundaries.test.ts | 3 ++ .../contracts/plugin-sdk-subpaths.test.ts | 45 +++++++++---------- 3 files changed, 29 insertions(+), 23 deletions(-) diff --git a/packages/plugin-sdk/package.json b/packages/plugin-sdk/package.json index eb17c0bc898..30a77886296 100644 --- a/packages/plugin-sdk/package.json +++ b/packages/plugin-sdk/package.json @@ -108,6 +108,10 @@ "types": "./dist/src/plugin-sdk/provider-web-search.d.ts", "default": "./src/provider-web-search.ts" }, + "./provider-web-search-contract": { + "types": "./dist/src/plugin-sdk/provider-web-search-contract.d.ts", + "default": "./src/provider-web-search-contract.ts" + }, "./runtime-doctor": { "types": "./dist/src/plugin-sdk/runtime-doctor.d.ts", "default": "./src/runtime-doctor.ts" diff --git a/src/plugins/contracts/extension-package-project-boundaries.test.ts b/src/plugins/contracts/extension-package-project-boundaries.test.ts index 9af25afd432..8f8eb8feeab 100644 --- a/src/plugins/contracts/extension-package-project-boundaries.test.ts +++ b/src/plugins/contracts/extension-package-project-boundaries.test.ts @@ -150,6 +150,9 @@ describe("opt-in extension package boundaries", () => { expect(packageJson.exports?.["./provider-usage"]?.types).toBe( "./dist/src/plugin-sdk/provider-usage.d.ts", ); + expect(packageJson.exports?.["./provider-web-search-contract"]?.types).toBe( + "./dist/src/plugin-sdk/provider-web-search-contract.d.ts", + ); expect(packageJson.exports?.["./runtime-doctor"]?.types).toBe( "./dist/src/plugin-sdk/runtime-doctor.d.ts", ); diff --git a/src/plugins/contracts/plugin-sdk-subpaths.test.ts b/src/plugins/contracts/plugin-sdk-subpaths.test.ts index 039bf385cce..b4eb9ac98a7 100644 --- a/src/plugins/contracts/plugin-sdk-subpaths.test.ts +++ b/src/plugins/contracts/plugin-sdk-subpaths.test.ts @@ -859,29 +859,28 @@ describe("plugin-sdk subpath exports", () => { }); it("keeps runtime entry subpaths importable", async () => { - const [ - coreSdk, - channelActionsSdk, - globalSingletonSdk, - textRuntimeSdk, - pluginEntrySdk, - channelLifecycleSdk, - channelPairingSdk, - channelReplyPipelineSdk, - ...representativeModules - ] = await Promise.all([ - importResolvedPluginSdkSubpath("openclaw/plugin-sdk/core"), - importResolvedPluginSdkSubpath("openclaw/plugin-sdk/channel-actions"), - importResolvedPluginSdkSubpath("openclaw/plugin-sdk/global-singleton"), - importResolvedPluginSdkSubpath("openclaw/plugin-sdk/text-runtime"), - importResolvedPluginSdkSubpath("openclaw/plugin-sdk/plugin-entry"), - importResolvedPluginSdkSubpath("openclaw/plugin-sdk/channel-lifecycle"), - importResolvedPluginSdkSubpath("openclaw/plugin-sdk/channel-pairing"), - importResolvedPluginSdkSubpath("openclaw/plugin-sdk/channel-reply-pipeline"), - ...representativeRuntimeSmokeSubpaths.map((id) => - importResolvedPluginSdkSubpath(`openclaw/plugin-sdk/${id}`), - ), - ]); + const coreSdk = await importResolvedPluginSdkSubpath("openclaw/plugin-sdk/core"); + const channelActionsSdk = await importResolvedPluginSdkSubpath( + "openclaw/plugin-sdk/channel-actions", + ); + const globalSingletonSdk = await importResolvedPluginSdkSubpath( + "openclaw/plugin-sdk/global-singleton", + ); + const textRuntimeSdk = await importResolvedPluginSdkSubpath("openclaw/plugin-sdk/text-runtime"); + const pluginEntrySdk = await importResolvedPluginSdkSubpath("openclaw/plugin-sdk/plugin-entry"); + const channelLifecycleSdk = await importResolvedPluginSdkSubpath( + "openclaw/plugin-sdk/channel-lifecycle", + ); + const channelPairingSdk = await importResolvedPluginSdkSubpath( + "openclaw/plugin-sdk/channel-pairing", + ); + const channelReplyPipelineSdk = await importResolvedPluginSdkSubpath( + "openclaw/plugin-sdk/channel-reply-pipeline", + ); + const representativeModules = []; + for (const id of representativeRuntimeSmokeSubpaths) { + representativeModules.push(await importResolvedPluginSdkSubpath(`openclaw/plugin-sdk/${id}`)); + } expect(coreSdk.definePluginEntry).toBe(pluginEntrySdk.definePluginEntry); expect(typeof coreSdk.optionalStringEnum).toBe("function");