mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-27 17:11:46 +00:00
Matrix-js: adopt scoped plugin-sdk subpath on plugin branch
This commit is contained in:
@@ -41,6 +41,55 @@ const exportedNames = exportMatch[1]
|
||||
|
||||
const exportSet = new Set(exportedNames);
|
||||
|
||||
const requiredSubpathEntries = [
|
||||
"core",
|
||||
"compat",
|
||||
"telegram",
|
||||
"discord",
|
||||
"slack",
|
||||
"signal",
|
||||
"imessage",
|
||||
"whatsapp",
|
||||
"line",
|
||||
"msteams",
|
||||
"acpx",
|
||||
"bluebubbles",
|
||||
"copilot-proxy",
|
||||
"device-pair",
|
||||
"diagnostics-otel",
|
||||
"diffs",
|
||||
"feishu",
|
||||
"google-gemini-cli-auth",
|
||||
"googlechat",
|
||||
"irc",
|
||||
"llm-task",
|
||||
"lobster",
|
||||
"matrix",
|
||||
"matrix-js",
|
||||
"mattermost",
|
||||
"memory-core",
|
||||
"memory-lancedb",
|
||||
"minimax-portal-auth",
|
||||
"nextcloud-talk",
|
||||
"nostr",
|
||||
"open-prose",
|
||||
"phone-control",
|
||||
"qwen-portal-auth",
|
||||
"synology-chat",
|
||||
"talk-voice",
|
||||
"test-utils",
|
||||
"thread-ownership",
|
||||
"tlon",
|
||||
"twitch",
|
||||
"voice-call",
|
||||
"zalo",
|
||||
"zalouser",
|
||||
"account-id",
|
||||
"keyed-async-queue",
|
||||
];
|
||||
|
||||
const requiredRuntimeShimEntries = ["root-alias.cjs"];
|
||||
|
||||
// Critical functions that channel extension plugins import from openclaw/plugin-sdk.
|
||||
// If any of these are missing, plugins will fail at runtime with:
|
||||
// TypeError: (0 , _pluginSdk.<name>) is not a function
|
||||
@@ -76,10 +125,33 @@ for (const name of requiredExports) {
|
||||
}
|
||||
}
|
||||
|
||||
for (const entry of requiredSubpathEntries) {
|
||||
const jsPath = resolve(__dirname, "..", "dist", "plugin-sdk", `${entry}.js`);
|
||||
const dtsPath = resolve(__dirname, "..", "dist", "plugin-sdk", `${entry}.d.ts`);
|
||||
if (!existsSync(jsPath)) {
|
||||
console.error(`MISSING SUBPATH JS: dist/plugin-sdk/${entry}.js`);
|
||||
missing += 1;
|
||||
}
|
||||
if (!existsSync(dtsPath)) {
|
||||
console.error(`MISSING SUBPATH DTS: dist/plugin-sdk/${entry}.d.ts`);
|
||||
missing += 1;
|
||||
}
|
||||
}
|
||||
|
||||
for (const entry of requiredRuntimeShimEntries) {
|
||||
const shimPath = resolve(__dirname, "..", "dist", "plugin-sdk", entry);
|
||||
if (!existsSync(shimPath)) {
|
||||
console.error(`MISSING RUNTIME SHIM: dist/plugin-sdk/${entry}`);
|
||||
missing += 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (missing > 0) {
|
||||
console.error(`\nERROR: ${missing} required export(s) missing from dist/plugin-sdk/index.js.`);
|
||||
console.error(
|
||||
`\nERROR: ${missing} required plugin-sdk artifact(s) missing (named exports or subpath files).`,
|
||||
);
|
||||
console.error("This will break channel extension plugins at runtime.");
|
||||
console.error("Check src/plugin-sdk/index.ts and rebuild.");
|
||||
console.error("Check src/plugin-sdk/index.ts, subpath entries, and rebuild.");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
|
||||
@@ -14,6 +14,95 @@ const requiredPathGroups = [
|
||||
["dist/entry.js", "dist/entry.mjs"],
|
||||
"dist/plugin-sdk/index.js",
|
||||
"dist/plugin-sdk/index.d.ts",
|
||||
"dist/plugin-sdk/core.js",
|
||||
"dist/plugin-sdk/core.d.ts",
|
||||
"dist/plugin-sdk/root-alias.cjs",
|
||||
"dist/plugin-sdk/compat.js",
|
||||
"dist/plugin-sdk/compat.d.ts",
|
||||
"dist/plugin-sdk/telegram.js",
|
||||
"dist/plugin-sdk/telegram.d.ts",
|
||||
"dist/plugin-sdk/discord.js",
|
||||
"dist/plugin-sdk/discord.d.ts",
|
||||
"dist/plugin-sdk/slack.js",
|
||||
"dist/plugin-sdk/slack.d.ts",
|
||||
"dist/plugin-sdk/signal.js",
|
||||
"dist/plugin-sdk/signal.d.ts",
|
||||
"dist/plugin-sdk/imessage.js",
|
||||
"dist/plugin-sdk/imessage.d.ts",
|
||||
"dist/plugin-sdk/whatsapp.js",
|
||||
"dist/plugin-sdk/whatsapp.d.ts",
|
||||
"dist/plugin-sdk/line.js",
|
||||
"dist/plugin-sdk/line.d.ts",
|
||||
"dist/plugin-sdk/msteams.js",
|
||||
"dist/plugin-sdk/msteams.d.ts",
|
||||
"dist/plugin-sdk/acpx.js",
|
||||
"dist/plugin-sdk/acpx.d.ts",
|
||||
"dist/plugin-sdk/bluebubbles.js",
|
||||
"dist/plugin-sdk/bluebubbles.d.ts",
|
||||
"dist/plugin-sdk/copilot-proxy.js",
|
||||
"dist/plugin-sdk/copilot-proxy.d.ts",
|
||||
"dist/plugin-sdk/device-pair.js",
|
||||
"dist/plugin-sdk/device-pair.d.ts",
|
||||
"dist/plugin-sdk/diagnostics-otel.js",
|
||||
"dist/plugin-sdk/diagnostics-otel.d.ts",
|
||||
"dist/plugin-sdk/diffs.js",
|
||||
"dist/plugin-sdk/diffs.d.ts",
|
||||
"dist/plugin-sdk/feishu.js",
|
||||
"dist/plugin-sdk/feishu.d.ts",
|
||||
"dist/plugin-sdk/google-gemini-cli-auth.js",
|
||||
"dist/plugin-sdk/google-gemini-cli-auth.d.ts",
|
||||
"dist/plugin-sdk/googlechat.js",
|
||||
"dist/plugin-sdk/googlechat.d.ts",
|
||||
"dist/plugin-sdk/irc.js",
|
||||
"dist/plugin-sdk/irc.d.ts",
|
||||
"dist/plugin-sdk/llm-task.js",
|
||||
"dist/plugin-sdk/llm-task.d.ts",
|
||||
"dist/plugin-sdk/lobster.js",
|
||||
"dist/plugin-sdk/lobster.d.ts",
|
||||
"dist/plugin-sdk/matrix.js",
|
||||
"dist/plugin-sdk/matrix.d.ts",
|
||||
"dist/plugin-sdk/matrix-js.js",
|
||||
"dist/plugin-sdk/matrix-js.d.ts",
|
||||
"dist/plugin-sdk/mattermost.js",
|
||||
"dist/plugin-sdk/mattermost.d.ts",
|
||||
"dist/plugin-sdk/memory-core.js",
|
||||
"dist/plugin-sdk/memory-core.d.ts",
|
||||
"dist/plugin-sdk/memory-lancedb.js",
|
||||
"dist/plugin-sdk/memory-lancedb.d.ts",
|
||||
"dist/plugin-sdk/minimax-portal-auth.js",
|
||||
"dist/plugin-sdk/minimax-portal-auth.d.ts",
|
||||
"dist/plugin-sdk/nextcloud-talk.js",
|
||||
"dist/plugin-sdk/nextcloud-talk.d.ts",
|
||||
"dist/plugin-sdk/nostr.js",
|
||||
"dist/plugin-sdk/nostr.d.ts",
|
||||
"dist/plugin-sdk/open-prose.js",
|
||||
"dist/plugin-sdk/open-prose.d.ts",
|
||||
"dist/plugin-sdk/phone-control.js",
|
||||
"dist/plugin-sdk/phone-control.d.ts",
|
||||
"dist/plugin-sdk/qwen-portal-auth.js",
|
||||
"dist/plugin-sdk/qwen-portal-auth.d.ts",
|
||||
"dist/plugin-sdk/synology-chat.js",
|
||||
"dist/plugin-sdk/synology-chat.d.ts",
|
||||
"dist/plugin-sdk/talk-voice.js",
|
||||
"dist/plugin-sdk/talk-voice.d.ts",
|
||||
"dist/plugin-sdk/test-utils.js",
|
||||
"dist/plugin-sdk/test-utils.d.ts",
|
||||
"dist/plugin-sdk/thread-ownership.js",
|
||||
"dist/plugin-sdk/thread-ownership.d.ts",
|
||||
"dist/plugin-sdk/tlon.js",
|
||||
"dist/plugin-sdk/tlon.d.ts",
|
||||
"dist/plugin-sdk/twitch.js",
|
||||
"dist/plugin-sdk/twitch.d.ts",
|
||||
"dist/plugin-sdk/voice-call.js",
|
||||
"dist/plugin-sdk/voice-call.d.ts",
|
||||
"dist/plugin-sdk/zalo.js",
|
||||
"dist/plugin-sdk/zalo.d.ts",
|
||||
"dist/plugin-sdk/zalouser.js",
|
||||
"dist/plugin-sdk/zalouser.d.ts",
|
||||
"dist/plugin-sdk/account-id.js",
|
||||
"dist/plugin-sdk/account-id.d.ts",
|
||||
"dist/plugin-sdk/keyed-async-queue.js",
|
||||
"dist/plugin-sdk/keyed-async-queue.d.ts",
|
||||
"dist/build-info.json",
|
||||
];
|
||||
const forbiddenPrefixes = ["dist/OpenClaw.app/"];
|
||||
|
||||
@@ -6,7 +6,53 @@ import path from "node:path";
|
||||
//
|
||||
// Our package export map points subpath `types` at `dist/plugin-sdk/<entry>.d.ts`, so we
|
||||
// generate stable entry d.ts files that re-export the real declarations.
|
||||
const entrypoints = ["index", "account-id"] as const;
|
||||
const entrypoints = [
|
||||
"index",
|
||||
"core",
|
||||
"compat",
|
||||
"telegram",
|
||||
"discord",
|
||||
"slack",
|
||||
"signal",
|
||||
"imessage",
|
||||
"whatsapp",
|
||||
"line",
|
||||
"msteams",
|
||||
"acpx",
|
||||
"bluebubbles",
|
||||
"copilot-proxy",
|
||||
"device-pair",
|
||||
"diagnostics-otel",
|
||||
"diffs",
|
||||
"feishu",
|
||||
"google-gemini-cli-auth",
|
||||
"googlechat",
|
||||
"irc",
|
||||
"llm-task",
|
||||
"lobster",
|
||||
"matrix",
|
||||
"matrix-js",
|
||||
"mattermost",
|
||||
"memory-core",
|
||||
"memory-lancedb",
|
||||
"minimax-portal-auth",
|
||||
"nextcloud-talk",
|
||||
"nostr",
|
||||
"open-prose",
|
||||
"phone-control",
|
||||
"qwen-portal-auth",
|
||||
"synology-chat",
|
||||
"talk-voice",
|
||||
"test-utils",
|
||||
"thread-ownership",
|
||||
"tlon",
|
||||
"twitch",
|
||||
"voice-call",
|
||||
"zalo",
|
||||
"zalouser",
|
||||
"account-id",
|
||||
"keyed-async-queue",
|
||||
] as const;
|
||||
for (const entry of entrypoints) {
|
||||
const out = path.join(process.cwd(), `dist/plugin-sdk/${entry}.d.ts`);
|
||||
fs.mkdirSync(path.dirname(out), { recursive: true });
|
||||
|
||||
Reference in New Issue
Block a user