Plugin SDK: trim legacy helper exports

This commit is contained in:
Vincent Koc 2026-03-17 23:31:28 -07:00
parent d1fe30b35f
commit d341d68180
16 changed files with 39 additions and 71 deletions

View File

@ -1 +1 @@
export * from "openclaw/plugin-sdk/copilot-proxy";
export * from "../../src/plugin-sdk/copilot-proxy.js";

View File

@ -1 +1 @@
export * from "openclaw/plugin-sdk/device-pair";
export * from "../../src/plugin-sdk/device-pair.js";

View File

@ -1 +1 @@
export * from "openclaw/plugin-sdk/diagnostics-otel";
export * from "../../src/plugin-sdk/diagnostics-otel.js";

View File

@ -1 +1 @@
export * from "openclaw/plugin-sdk/diffs";
export * from "../../src/plugin-sdk/diffs.js";

View File

@ -1 +1 @@
export * from "openclaw/plugin-sdk/llm-task";
export * from "../../src/plugin-sdk/llm-task.js";

View File

@ -1 +1 @@
export * from "openclaw/plugin-sdk/memory-lancedb";
export * from "../../src/plugin-sdk/memory-lancedb.js";

View File

@ -1 +1 @@
export * from "openclaw/plugin-sdk/open-prose";
export * from "../../src/plugin-sdk/open-prose.js";

View File

@ -1,14 +1,14 @@
import fs from "node:fs/promises";
import os from "node:os";
import path from "node:path";
import { describe, expect, it, vi } from "vitest";
import { createTestPluginApi } from "../../test/helpers/extensions/plugin-api.js";
import registerPhoneControl from "./index.js";
import type {
OpenClawPluginApi,
OpenClawPluginCommandDefinition,
PluginCommandContext,
} from "openclaw/plugin-sdk/phone-control";
import { describe, expect, it, vi } from "vitest";
import { createTestPluginApi } from "../../test/helpers/extensions/plugin-api.js";
import registerPhoneControl from "./index.js";
} from "./runtime-api.js";
function createApi(params: {
stateDir: string;

View File

@ -1 +1 @@
export * from "openclaw/plugin-sdk/phone-control";
export * from "../../src/plugin-sdk/phone-control.js";

View File

@ -1 +1 @@
export * from "openclaw/plugin-sdk/talk-voice";
export * from "../../src/plugin-sdk/talk-voice.js";

View File

@ -1 +1 @@
export * from "openclaw/plugin-sdk/thread-ownership";
export * from "../../src/plugin-sdk/thread-ownership.js";

View File

@ -1 +1 @@
export * from "openclaw/plugin-sdk/voice-call";
export * from "../../src/plugin-sdk/voice-call.js";

View File

@ -230,22 +230,6 @@
"types": "./dist/plugin-sdk/bluebubbles.d.ts",
"default": "./dist/plugin-sdk/bluebubbles.js"
},
"./plugin-sdk/copilot-proxy": {
"types": "./dist/plugin-sdk/copilot-proxy.d.ts",
"default": "./dist/plugin-sdk/copilot-proxy.js"
},
"./plugin-sdk/device-pair": {
"types": "./dist/plugin-sdk/device-pair.d.ts",
"default": "./dist/plugin-sdk/device-pair.js"
},
"./plugin-sdk/diagnostics-otel": {
"types": "./dist/plugin-sdk/diagnostics-otel.d.ts",
"default": "./dist/plugin-sdk/diagnostics-otel.js"
},
"./plugin-sdk/diffs": {
"types": "./dist/plugin-sdk/diffs.d.ts",
"default": "./dist/plugin-sdk/diffs.js"
},
"./plugin-sdk/feishu": {
"types": "./dist/plugin-sdk/feishu.d.ts",
"default": "./dist/plugin-sdk/feishu.js"
@ -258,10 +242,6 @@
"types": "./dist/plugin-sdk/irc.d.ts",
"default": "./dist/plugin-sdk/irc.js"
},
"./plugin-sdk/llm-task": {
"types": "./dist/plugin-sdk/llm-task.d.ts",
"default": "./dist/plugin-sdk/llm-task.js"
},
"./plugin-sdk/lobster": {
"types": "./dist/plugin-sdk/lobster.d.ts",
"default": "./dist/plugin-sdk/lobster.js"
@ -282,10 +262,6 @@
"types": "./dist/plugin-sdk/memory-core.d.ts",
"default": "./dist/plugin-sdk/memory-core.js"
},
"./plugin-sdk/memory-lancedb": {
"types": "./dist/plugin-sdk/memory-lancedb.d.ts",
"default": "./dist/plugin-sdk/memory-lancedb.js"
},
"./plugin-sdk/minimax-portal-auth": {
"types": "./dist/plugin-sdk/minimax-portal-auth.d.ts",
"default": "./dist/plugin-sdk/minimax-portal-auth.js"
@ -298,14 +274,6 @@
"types": "./dist/plugin-sdk/nostr.d.ts",
"default": "./dist/plugin-sdk/nostr.js"
},
"./plugin-sdk/open-prose": {
"types": "./dist/plugin-sdk/open-prose.d.ts",
"default": "./dist/plugin-sdk/open-prose.js"
},
"./plugin-sdk/phone-control": {
"types": "./dist/plugin-sdk/phone-control.d.ts",
"default": "./dist/plugin-sdk/phone-control.js"
},
"./plugin-sdk/qwen-portal-auth": {
"types": "./dist/plugin-sdk/qwen-portal-auth.d.ts",
"default": "./dist/plugin-sdk/qwen-portal-auth.js"
@ -314,10 +282,6 @@
"types": "./dist/plugin-sdk/synology-chat.d.ts",
"default": "./dist/plugin-sdk/synology-chat.js"
},
"./plugin-sdk/talk-voice": {
"types": "./dist/plugin-sdk/talk-voice.d.ts",
"default": "./dist/plugin-sdk/talk-voice.js"
},
"./plugin-sdk/testing": {
"types": "./dist/plugin-sdk/testing.d.ts",
"default": "./dist/plugin-sdk/testing.js"
@ -326,10 +290,6 @@
"types": "./dist/plugin-sdk/test-utils.d.ts",
"default": "./dist/plugin-sdk/test-utils.js"
},
"./plugin-sdk/thread-ownership": {
"types": "./dist/plugin-sdk/thread-ownership.d.ts",
"default": "./dist/plugin-sdk/thread-ownership.js"
},
"./plugin-sdk/tlon": {
"types": "./dist/plugin-sdk/tlon.d.ts",
"default": "./dist/plugin-sdk/tlon.js"
@ -338,10 +298,6 @@
"types": "./dist/plugin-sdk/twitch.d.ts",
"default": "./dist/plugin-sdk/twitch.js"
},
"./plugin-sdk/voice-call": {
"types": "./dist/plugin-sdk/voice-call.d.ts",
"default": "./dist/plugin-sdk/voice-call.js"
},
"./plugin-sdk/zalo": {
"types": "./dist/plugin-sdk/zalo.d.ts",
"default": "./dist/plugin-sdk/zalo.js"

View File

@ -47,34 +47,23 @@
"msteams",
"acpx",
"bluebubbles",
"copilot-proxy",
"device-pair",
"diagnostics-otel",
"diffs",
"feishu",
"googlechat",
"irc",
"llm-task",
"lobster",
"lazy-runtime",
"matrix",
"mattermost",
"memory-core",
"memory-lancedb",
"minimax-portal-auth",
"nextcloud-talk",
"nostr",
"open-prose",
"phone-control",
"qwen-portal-auth",
"synology-chat",
"talk-voice",
"testing",
"test-utils",
"thread-ownership",
"tlon",
"twitch",
"voice-call",
"zalo",
"zalouser",
"account-helpers",

View File

@ -42,6 +42,20 @@ const bundledExtensionSubpathLoaders = pluginSdkSubpaths.map((id: string) => ({
load: () => importPluginSdkSubpath(`openclaw/plugin-sdk/${id}`),
}));
const trimmedLegacyExtensionSubpaths = [
"copilot-proxy",
"device-pair",
"diagnostics-otel",
"diffs",
"llm-task",
"memory-lancedb",
"open-prose",
"phone-control",
"talk-voice",
"thread-ownership",
"voice-call",
] as const;
const asExports = (mod: object) => mod as Record<string, unknown>;
const ircSdk = await import("openclaw/plugin-sdk/irc");
const feishuSdk = await import("openclaw/plugin-sdk/feishu");
@ -312,6 +326,12 @@ describe("plugin-sdk subpath exports", () => {
}
});
it("does not advertise trimmed legacy extension helper seams", () => {
for (const id of trimmedLegacyExtensionSubpaths) {
expect(pluginSdkSubpaths).not.toContain(id);
}
});
it("keeps the newly added bundled plugin-sdk contracts available", async () => {
expect(typeof bluebubblesSdk.parseFiniteNumber).toBe("function");
expect(typeof matrixSdk.matrixSetupWizard).toBe("object");

View File

@ -33,4 +33,7 @@ export type { OpenClawPluginApi } from "../plugins/types.js";
export type { RuntimeEnv } from "../runtime.js";
export { formatDocsLink } from "../terminal/links.js";
export type { WizardPrompter } from "../wizard/prompts.js";
export { twitchSetupAdapter, twitchSetupWizard } from "../../extensions/twitch/api.js";
export {
twitchSetupAdapter,
twitchSetupWizard,
} from "../../extensions/twitch/src/setup-surface.js";