Plugin SDK: restore lobster and voice-call exports

This commit is contained in:
Vincent Koc 2026-03-18 00:09:20 -07:00
parent 21c2ba480a
commit e17d10f7cd
6 changed files with 29 additions and 7 deletions

View File

@ -1148,12 +1148,14 @@ authoring plugins:
intentionally exposes extension-facing helpers:
`openclaw/plugin-sdk/acpx`, `openclaw/plugin-sdk/bluebubbles`,
`openclaw/plugin-sdk/feishu`, `openclaw/plugin-sdk/googlechat`,
`openclaw/plugin-sdk/irc`, `openclaw/plugin-sdk/matrix`,
`openclaw/plugin-sdk/irc`, `openclaw/plugin-sdk/lobster`,
`openclaw/plugin-sdk/matrix`,
`openclaw/plugin-sdk/mattermost`, `openclaw/plugin-sdk/memory-core`,
`openclaw/plugin-sdk/minimax-portal-auth`,
`openclaw/plugin-sdk/nextcloud-talk`, `openclaw/plugin-sdk/nostr`,
`openclaw/plugin-sdk/synology-chat`, `openclaw/plugin-sdk/test-utils`,
`openclaw/plugin-sdk/tlon`, `openclaw/plugin-sdk/twitch`,
`openclaw/plugin-sdk/voice-call`,
`openclaw/plugin-sdk/zalo`, and `openclaw/plugin-sdk/zalouser`.
## Channel target resolution

View File

@ -242,6 +242,10 @@
"types": "./dist/plugin-sdk/irc.d.ts",
"default": "./dist/plugin-sdk/irc.js"
},
"./plugin-sdk/lobster": {
"types": "./dist/plugin-sdk/lobster.d.ts",
"default": "./dist/plugin-sdk/lobster.js"
},
"./plugin-sdk/lazy-runtime": {
"types": "./dist/plugin-sdk/lazy-runtime.d.ts",
"default": "./dist/plugin-sdk/lazy-runtime.js"
@ -290,6 +294,10 @@
"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

@ -50,6 +50,7 @@
"feishu",
"googlechat",
"irc",
"lobster",
"lazy-runtime",
"matrix",
"mattermost",
@ -62,6 +63,7 @@
"test-utils",
"tlon",
"twitch",
"voice-call",
"zalo",
"zalouser",
"account-helpers",

View File

@ -1,5 +1,5 @@
// Narrow plugin-sdk surface for the bundled lobster plugin.
// Keep this list additive and scoped to symbols used under extensions/lobster.
// Public Lobster plugin helpers.
// Keep this surface narrow and limited to the Lobster workflow/tool contract.
export { definePluginEntry } from "./core.js";
export {

View File

@ -23,6 +23,7 @@ import * as signalSdk from "openclaw/plugin-sdk/signal";
import * as slackSdk from "openclaw/plugin-sdk/slack";
import * as telegramSdk from "openclaw/plugin-sdk/telegram";
import * as testingSdk from "openclaw/plugin-sdk/testing";
import * as voiceCallSdk from "openclaw/plugin-sdk/voice-call";
import * as whatsappSdk from "openclaw/plugin-sdk/whatsapp";
import { describe, expect, expectTypeOf, it } from "vitest";
import type { ChannelMessageActionContext } from "../channels/plugins/types.js";
@ -48,14 +49,12 @@ const trimmedLegacyExtensionSubpaths = [
"diagnostics-otel",
"diffs",
"llm-task",
"lobster",
"memory-lancedb",
"open-prose",
"phone-control",
"qwen-portal-auth",
"talk-voice",
"thread-ownership",
"voice-call",
] as const;
const asExports = (mod: object) => mod as Record<string, unknown>;
@ -73,6 +72,7 @@ const mattermostSdk = await import("openclaw/plugin-sdk/mattermost");
const nextcloudTalkSdk = await import("openclaw/plugin-sdk/nextcloud-talk");
const twitchSdk = await import("openclaw/plugin-sdk/twitch");
const accountHelpersSdk = await import("openclaw/plugin-sdk/account-helpers");
const lobsterSdk = await import("openclaw/plugin-sdk/lobster");
describe("plugin-sdk subpath exports", () => {
it("exports compat helpers", () => {
@ -320,6 +320,16 @@ describe("plugin-sdk subpath exports", () => {
expect(typeof acpxSdk.omitEnvKeysCaseInsensitive).toBe("function");
});
it("exports Lobster helpers", async () => {
expect(typeof lobsterSdk.definePluginEntry).toBe("function");
expect(typeof lobsterSdk.materializeWindowsSpawnProgram).toBe("function");
});
it("exports Voice Call helpers", () => {
expect(typeof voiceCallSdk.definePluginEntry).toBe("function");
expect(typeof voiceCallSdk.resolveOpenAITtsInstructions).toBe("function");
});
it("resolves bundled extension subpaths", async () => {
for (const { id, load } of bundledExtensionSubpathLoaders) {
const mod = await load();

View File

@ -1,5 +1,5 @@
// Narrow plugin-sdk surface for the bundled voice-call plugin.
// Keep this list additive and scoped to symbols used under extensions/voice-call.
// Public Voice Call plugin helpers.
// Keep this surface narrow and limited to the voice-call feature contract.
export { definePluginEntry } from "./core.js";
export {