build: align plugin sdk boundary exports

This commit is contained in:
Peter Steinberger
2026-04-07 11:39:44 +01:00
parent 0ca8eb40c1
commit 8be79a09b8
3 changed files with 29 additions and 23 deletions

View File

@@ -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"

View File

@@ -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",
);

View File

@@ -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");