mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-12 07:20:45 +00:00
Plugin SDK: add full bundled subpath wiring
This commit is contained in:
@@ -2,15 +2,12 @@ import fs from "node:fs";
|
||||
import path from "node:path";
|
||||
import { discoverOpenClawPlugins } from "../src/plugins/discovery.js";
|
||||
|
||||
const ROOT_IMPORT_PATTERNS = [
|
||||
/\b(?:import|export)\b[\s\S]*?\bfrom\s+["']openclaw\/plugin-sdk["']/,
|
||||
/\bimport\s+["']openclaw\/plugin-sdk["']/,
|
||||
/\bimport\s*\(\s*["']openclaw\/plugin-sdk["']\s*\)/,
|
||||
/\brequire\s*\(\s*["']openclaw\/plugin-sdk["']\s*\)/,
|
||||
];
|
||||
// Match exact monolithic-root specifier in any code path:
|
||||
// imports/exports, require/dynamic import, and test mocks (vi.mock/jest.mock).
|
||||
const ROOT_IMPORT_PATTERN = /["']openclaw\/plugin-sdk["']/;
|
||||
|
||||
function hasMonolithicRootImport(content: string): boolean {
|
||||
return ROOT_IMPORT_PATTERNS.some((pattern) => pattern.test(content));
|
||||
return ROOT_IMPORT_PATTERN.test(content);
|
||||
}
|
||||
|
||||
function isSourceFile(filePath: string): boolean {
|
||||
|
||||
@@ -51,7 +51,40 @@ const requiredSubpathEntries = [
|
||||
"imessage",
|
||||
"whatsapp",
|
||||
"line",
|
||||
"msteams",
|
||||
"acpx",
|
||||
"bluebubbles",
|
||||
"copilot-proxy",
|
||||
"device-pair",
|
||||
"diagnostics-otel",
|
||||
"diffs",
|
||||
"feishu",
|
||||
"google-gemini-cli-auth",
|
||||
"googlechat",
|
||||
"irc",
|
||||
"llm-task",
|
||||
"lobster",
|
||||
"matrix",
|
||||
"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"];
|
||||
|
||||
@@ -33,6 +33,74 @@ const requiredPathGroups = [
|
||||
"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/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/"];
|
||||
|
||||
@@ -17,7 +17,40 @@ const entrypoints = [
|
||||
"imessage",
|
||||
"whatsapp",
|
||||
"line",
|
||||
"msteams",
|
||||
"acpx",
|
||||
"bluebubbles",
|
||||
"copilot-proxy",
|
||||
"device-pair",
|
||||
"diagnostics-otel",
|
||||
"diffs",
|
||||
"feishu",
|
||||
"google-gemini-cli-auth",
|
||||
"googlechat",
|
||||
"irc",
|
||||
"llm-task",
|
||||
"lobster",
|
||||
"matrix",
|
||||
"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`);
|
||||
|
||||
Reference in New Issue
Block a user