From 24d16c39ade4eb704356d925bd2f1d8c467ad9a6 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sun, 29 Mar 2026 14:32:46 +0100 Subject: [PATCH] refactor(plugin-sdk): remove source alias residue --- scripts/lib/plugin-sdk-facades.mjs | 26 +- .../plugin-sdk-facade-type-map.generated.ts | 506 +++++++++--------- src/plugin-sdk/irc-surface.ts | 13 +- src/plugin-sdk/line-runtime.ts | 10 +- src/plugin-sdk/matrix-runtime-surface.ts | 10 +- .../package-contract-guardrails.test.ts | 9 +- tsconfig.json | 2 +- 7 files changed, 291 insertions(+), 285 deletions(-) diff --git a/scripts/lib/plugin-sdk-facades.mjs b/scripts/lib/plugin-sdk-facades.mjs index 55011b1a673..ad482d2a6ba 100644 --- a/scripts/lib/plugin-sdk-facades.mjs +++ b/scripts/lib/plugin-sdk-facades.mjs @@ -1,18 +1,16 @@ import fs from "node:fs"; import path from "node:path"; import ts from "typescript"; -import { BUNDLED_PLUGIN_PATH_PREFIX, bundledPluginFile } from "./bundled-plugin-paths.mjs"; +import { bundledPluginFile } from "./bundled-plugin-paths.mjs"; function pluginSource(dirName, artifactBasename = "api.js") { - return `openclaw/plugin-source/${dirName}/${artifactBasename}`; + return `@openclaw/${dirName}/${artifactBasename}`; } function runtimeApiSourcePath(dirName) { return bundledPluginFile(dirName, "runtime-api.ts"); } -const BUNDLED_PLUGIN_SOURCE_RELATIVE_PREFIX = `../../${BUNDLED_PLUGIN_PATH_PREFIX}`; - export const GENERATED_PLUGIN_SDK_FACADES = [ { subpath: "amazon-bedrock", @@ -1271,13 +1269,6 @@ export const GENERATED_PLUGIN_SDK_FACADE_TYPES_OUTPUT = "src/generated/plugin-sdk-facade-type-map.generated.ts"; function rewriteFacadeTypeImportSpecifier(sourcePath) { - if (sourcePath.startsWith("openclaw/plugin-source/")) { - const { dirName, artifactBasename } = normalizeFacadeSourceParts(sourcePath); - return `${BUNDLED_PLUGIN_SOURCE_RELATIVE_PREFIX}${dirName}/${artifactBasename}`; - } - if (sourcePath.startsWith(BUNDLED_PLUGIN_SOURCE_RELATIVE_PREFIX)) { - return sourcePath; - } return sourcePath; } @@ -1325,11 +1316,11 @@ function isArrayTypeLike(checker, type) { } function normalizeFacadeSourceParts(sourcePath) { - const pluginSourceMatch = /^openclaw\/plugin-source\/([^/]+)\/([^/]+)$/u.exec(sourcePath); - if (pluginSourceMatch) { + const packageSourceMatch = /^@openclaw\/([^/]+)\/([^/]+)$/u.exec(sourcePath); + if (packageSourceMatch) { return { - dirName: pluginSourceMatch[1], - artifactBasename: pluginSourceMatch[2], + dirName: packageSourceMatch[1], + artifactBasename: packageSourceMatch[2], }; } const match = /^\.\.\/\.\.\/extensions\/([^/]+)\/([^/]+)$/u.exec(sourcePath); @@ -1382,8 +1373,9 @@ function collectRuntimeApiPreExports(repoRoot, runtimeApiPath) { } function resolveFacadeSourceTypescriptPath(repoRoot, sourcePath) { - const absolutePath = sourcePath.startsWith("openclaw/plugin-source/") - ? path.resolve(repoRoot, "extensions", sourcePath.slice("openclaw/plugin-source/".length)) + const packageSourceMatch = /^@openclaw\/([^/]+)\/(.+)$/u.exec(sourcePath); + const absolutePath = packageSourceMatch + ? path.resolve(repoRoot, "extensions", packageSourceMatch[1], packageSourceMatch[2]) : path.resolve(repoRoot, "src/plugin-sdk", sourcePath); const candidates = [absolutePath.replace(/\.js$/, ".ts"), absolutePath.replace(/\.js$/, ".tsx")]; return candidates.find((candidate) => fs.existsSync(candidate)); diff --git a/src/generated/plugin-sdk-facade-type-map.generated.ts b/src/generated/plugin-sdk-facade-type-map.generated.ts index f3909087f39..b1592034a13 100644 --- a/src/generated/plugin-sdk-facade-type-map.generated.ts +++ b/src/generated/plugin-sdk-facade-type-map.generated.ts @@ -1,811 +1,811 @@ // Generated by scripts/generate-plugin-sdk-facades.mjs. Do not edit manually. export interface PluginSdkFacadeTypeMap { "amazon-bedrock": { - module: typeof import("../../extensions/amazon-bedrock/api.js"); + module: typeof import("@openclaw/amazon-bedrock/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/amazon-bedrock/api.js"); + module: typeof import("@openclaw/amazon-bedrock/api.js"); }; }; types: {}; }; "anthropic-vertex": { - module: typeof import("../../extensions/anthropic-vertex/api.js"); + module: typeof import("@openclaw/anthropic-vertex/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/anthropic-vertex/api.js"); + module: typeof import("@openclaw/anthropic-vertex/api.js"); }; }; types: {}; }; "discord-account": { - module: typeof import("../../extensions/discord/api.js"); + module: typeof import("@openclaw/discord/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/discord/api.js"); + module: typeof import("@openclaw/discord/api.js"); }; }; types: { - ResolvedDiscordAccount: import("../../extensions/discord/api.js").ResolvedDiscordAccount; + ResolvedDiscordAccount: import("@openclaw/discord/api.js").ResolvedDiscordAccount; }; }; "discord-runtime-surface": { - module: typeof import("../../extensions/discord/runtime-api.js"); + module: typeof import("@openclaw/discord/runtime-api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/discord/runtime-api.js"); + module: typeof import("@openclaw/discord/runtime-api.js"); }; }; types: {}; }; "discord-session-key": { - module: typeof import("../../extensions/discord/session-key-api.js"); + module: typeof import("@openclaw/discord/session-key-api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/discord/session-key-api.js"); + module: typeof import("@openclaw/discord/session-key-api.js"); }; }; types: {}; }; "discord-surface": { - module: typeof import("../../extensions/discord/api.js"); + module: typeof import("@openclaw/discord/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/discord/api.js"); + module: typeof import("@openclaw/discord/api.js"); }; }; types: { - DiscordComponentMessageSpec: import("../../extensions/discord/api.js").DiscordComponentMessageSpec; - DiscordProbe: import("../../extensions/discord/api.js").DiscordProbe; - DiscordSendComponents: import("../../extensions/discord/api.js").DiscordSendComponents; - DiscordSendEmbeds: import("../../extensions/discord/api.js").DiscordSendEmbeds; - DiscordSendResult: import("../../extensions/discord/api.js").DiscordSendResult; - DiscordTokenResolution: import("../../extensions/discord/api.js").DiscordTokenResolution; - InspectedDiscordAccount: import("../../extensions/discord/api.js").InspectedDiscordAccount; - ResolvedDiscordAccount: import("../../extensions/discord/api.js").ResolvedDiscordAccount; + DiscordComponentMessageSpec: import("@openclaw/discord/api.js").DiscordComponentMessageSpec; + DiscordProbe: import("@openclaw/discord/api.js").DiscordProbe; + DiscordSendComponents: import("@openclaw/discord/api.js").DiscordSendComponents; + DiscordSendEmbeds: import("@openclaw/discord/api.js").DiscordSendEmbeds; + DiscordSendResult: import("@openclaw/discord/api.js").DiscordSendResult; + DiscordTokenResolution: import("@openclaw/discord/api.js").DiscordTokenResolution; + InspectedDiscordAccount: import("@openclaw/discord/api.js").InspectedDiscordAccount; + ResolvedDiscordAccount: import("@openclaw/discord/api.js").ResolvedDiscordAccount; }; }; "discord-thread-bindings": { - module: typeof import("../../extensions/discord/runtime-api.js"); + module: typeof import("@openclaw/discord/runtime-api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/discord/runtime-api.js"); + module: typeof import("@openclaw/discord/runtime-api.js"); }; }; types: { - ThreadBindingManager: import("../../extensions/discord/runtime-api.js").ThreadBindingManager; - ThreadBindingRecord: import("../../extensions/discord/runtime-api.js").ThreadBindingRecord; - ThreadBindingTargetKind: import("../../extensions/discord/runtime-api.js").ThreadBindingTargetKind; + ThreadBindingManager: import("@openclaw/discord/runtime-api.js").ThreadBindingManager; + ThreadBindingRecord: import("@openclaw/discord/runtime-api.js").ThreadBindingRecord; + ThreadBindingTargetKind: import("@openclaw/discord/runtime-api.js").ThreadBindingTargetKind; }; }; "discord-timeouts": { - module: typeof import("../../extensions/discord/timeouts.js"); + module: typeof import("@openclaw/discord/timeouts.js"); sourceModules: { source1: { - module: typeof import("../../extensions/discord/timeouts.js"); + module: typeof import("@openclaw/discord/timeouts.js"); }; }; types: {}; }; "anthropic-cli": { - module: typeof import("../../extensions/anthropic/api.js"); + module: typeof import("@openclaw/anthropic/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/anthropic/api.js"); + module: typeof import("@openclaw/anthropic/api.js"); }; }; types: {}; }; "bluebubbles-policy": { - module: typeof import("../../extensions/bluebubbles/api.js"); + module: typeof import("@openclaw/bluebubbles/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/bluebubbles/api.js"); + module: typeof import("@openclaw/bluebubbles/api.js"); }; }; types: {}; }; browser: { - module: typeof import("../../extensions/browser/runtime-api.js"); + module: typeof import("@openclaw/browser/runtime-api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/browser/runtime-api.js"); + module: typeof import("@openclaw/browser/runtime-api.js"); }; }; types: {}; }; "browser-runtime": { - module: typeof import("../../extensions/browser/runtime-api.js"); + module: typeof import("@openclaw/browser/runtime-api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/browser/runtime-api.js"); + module: typeof import("@openclaw/browser/runtime-api.js"); }; }; types: { - BrowserBridge: import("../../extensions/browser/runtime-api.js").BrowserBridge; - BrowserCreateProfileResult: import("../../extensions/browser/runtime-api.js").BrowserCreateProfileResult; - BrowserDeleteProfileResult: import("../../extensions/browser/runtime-api.js").BrowserDeleteProfileResult; - BrowserExecutable: import("../../extensions/browser/runtime-api.js").BrowserExecutable; - BrowserFormField: import("../../extensions/browser/runtime-api.js").BrowserFormField; - BrowserResetProfileResult: import("../../extensions/browser/runtime-api.js").BrowserResetProfileResult; - BrowserRouteRegistrar: import("../../extensions/browser/runtime-api.js").BrowserRouteRegistrar; - BrowserServerState: import("../../extensions/browser/runtime-api.js").BrowserServerState; - BrowserStatus: import("../../extensions/browser/runtime-api.js").BrowserStatus; - BrowserTab: import("../../extensions/browser/runtime-api.js").BrowserTab; - BrowserTransport: import("../../extensions/browser/runtime-api.js").BrowserTransport; - OpenClawPluginApi: import("../../extensions/browser/runtime-api.js").OpenClawPluginApi; - OpenClawPluginToolContext: import("../../extensions/browser/runtime-api.js").OpenClawPluginToolContext; - OpenClawPluginToolFactory: import("../../extensions/browser/runtime-api.js").OpenClawPluginToolFactory; - ProfileStatus: import("../../extensions/browser/runtime-api.js").ProfileStatus; - ResolvedBrowserConfig: import("../../extensions/browser/runtime-api.js").ResolvedBrowserConfig; - ResolvedBrowserProfile: import("../../extensions/browser/runtime-api.js").ResolvedBrowserProfile; - SnapshotResult: import("../../extensions/browser/runtime-api.js").SnapshotResult; + BrowserBridge: import("@openclaw/browser/runtime-api.js").BrowserBridge; + BrowserCreateProfileResult: import("@openclaw/browser/runtime-api.js").BrowserCreateProfileResult; + BrowserDeleteProfileResult: import("@openclaw/browser/runtime-api.js").BrowserDeleteProfileResult; + BrowserExecutable: import("@openclaw/browser/runtime-api.js").BrowserExecutable; + BrowserFormField: import("@openclaw/browser/runtime-api.js").BrowserFormField; + BrowserResetProfileResult: import("@openclaw/browser/runtime-api.js").BrowserResetProfileResult; + BrowserRouteRegistrar: import("@openclaw/browser/runtime-api.js").BrowserRouteRegistrar; + BrowserServerState: import("@openclaw/browser/runtime-api.js").BrowserServerState; + BrowserStatus: import("@openclaw/browser/runtime-api.js").BrowserStatus; + BrowserTab: import("@openclaw/browser/runtime-api.js").BrowserTab; + BrowserTransport: import("@openclaw/browser/runtime-api.js").BrowserTransport; + OpenClawPluginApi: import("@openclaw/browser/runtime-api.js").OpenClawPluginApi; + OpenClawPluginToolContext: import("@openclaw/browser/runtime-api.js").OpenClawPluginToolContext; + OpenClawPluginToolFactory: import("@openclaw/browser/runtime-api.js").OpenClawPluginToolFactory; + ProfileStatus: import("@openclaw/browser/runtime-api.js").ProfileStatus; + ResolvedBrowserConfig: import("@openclaw/browser/runtime-api.js").ResolvedBrowserConfig; + ResolvedBrowserProfile: import("@openclaw/browser/runtime-api.js").ResolvedBrowserProfile; + SnapshotResult: import("@openclaw/browser/runtime-api.js").SnapshotResult; }; }; "cloudflare-ai-gateway": { - module: typeof import("../../extensions/cloudflare-ai-gateway/api.js"); + module: typeof import("@openclaw/cloudflare-ai-gateway/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/cloudflare-ai-gateway/api.js"); + module: typeof import("@openclaw/cloudflare-ai-gateway/api.js"); }; }; types: {}; }; byteplus: { - module: typeof import("../../extensions/byteplus/api.js"); + module: typeof import("@openclaw/byteplus/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/byteplus/api.js"); + module: typeof import("@openclaw/byteplus/api.js"); }; }; types: {}; }; chutes: { - module: typeof import("../../extensions/chutes/api.js"); + module: typeof import("@openclaw/chutes/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/chutes/api.js"); + module: typeof import("@openclaw/chutes/api.js"); }; }; types: {}; }; deepseek: { - module: typeof import("../../extensions/deepseek/api.js"); + module: typeof import("@openclaw/deepseek/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/deepseek/api.js"); + module: typeof import("@openclaw/deepseek/api.js"); }; }; types: {}; }; "feishu-conversation": { - module: typeof import("../../extensions/feishu/api.js"); + module: typeof import("@openclaw/feishu/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/feishu/api.js"); + module: typeof import("@openclaw/feishu/api.js"); }; }; types: {}; }; google: { - module: typeof import("../../extensions/google/api.js"); + module: typeof import("@openclaw/google/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/google/api.js"); + module: typeof import("@openclaw/google/api.js"); }; }; types: {}; }; "feishu-setup": { - module: typeof import("../../extensions/feishu/api.js"); + module: typeof import("@openclaw/feishu/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/feishu/api.js"); + module: typeof import("@openclaw/feishu/api.js"); }; }; types: {}; }; "github-copilot-login": { - module: typeof import("../../extensions/github-copilot/api.js"); + module: typeof import("@openclaw/github-copilot/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/github-copilot/api.js"); + module: typeof import("@openclaw/github-copilot/api.js"); }; }; types: {}; }; huggingface: { - module: typeof import("../../extensions/huggingface/api.js"); + module: typeof import("@openclaw/huggingface/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/huggingface/api.js"); + module: typeof import("@openclaw/huggingface/api.js"); }; }; types: {}; }; "imessage-targets": { - module: typeof import("../../extensions/imessage/api.js"); + module: typeof import("@openclaw/imessage/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/imessage/api.js"); + module: typeof import("@openclaw/imessage/api.js"); }; }; types: { - ParsedChatTarget: import("../../extensions/imessage/api.js").ParsedChatTarget; + ParsedChatTarget: import("@openclaw/imessage/api.js").ParsedChatTarget; }; }; "image-generation-runtime": { - module: typeof import("../../extensions/image-generation-core/runtime-api.js"); + module: typeof import("@openclaw/image-generation-core/runtime-api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/image-generation-core/runtime-api.js"); + module: typeof import("@openclaw/image-generation-core/runtime-api.js"); }; }; types: { - GenerateImageParams: import("../../extensions/image-generation-core/runtime-api.js").GenerateImageParams; - GenerateImageRuntimeResult: import("../../extensions/image-generation-core/runtime-api.js").GenerateImageRuntimeResult; + GenerateImageParams: import("@openclaw/image-generation-core/runtime-api.js").GenerateImageParams; + GenerateImageRuntimeResult: import("@openclaw/image-generation-core/runtime-api.js").GenerateImageRuntimeResult; }; }; "kimi-coding": { - module: typeof import("../../extensions/kimi-coding/api.js"); + module: typeof import("@openclaw/kimi-coding/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/kimi-coding/api.js"); + module: typeof import("@openclaw/kimi-coding/api.js"); }; }; types: {}; }; kilocode: { - module: typeof import("../../extensions/kilocode/api.js"); + module: typeof import("@openclaw/kilocode/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/kilocode/api.js"); + module: typeof import("@openclaw/kilocode/api.js"); }; }; types: {}; }; "imessage-policy": { - module: typeof import("../../extensions/imessage/api.js"); + module: typeof import("@openclaw/imessage/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/imessage/api.js"); + module: typeof import("@openclaw/imessage/api.js"); }; }; types: {}; }; "imessage-runtime": { - module: typeof import("../../extensions/imessage/runtime-api.js"); + module: typeof import("@openclaw/imessage/runtime-api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/imessage/runtime-api.js"); + module: typeof import("@openclaw/imessage/runtime-api.js"); }; }; types: { - IMessageProbe: import("../../extensions/imessage/runtime-api.js").IMessageProbe; + IMessageProbe: import("@openclaw/imessage/runtime-api.js").IMessageProbe; }; }; "irc-surface": { - module: typeof import("../../extensions/irc/api.js"); + module: typeof import("@openclaw/irc/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/irc/api.js"); + module: typeof import("@openclaw/irc/api.js"); }; }; types: {}; }; "media-understanding-runtime": { - module: typeof import("../../extensions/media-understanding-core/runtime-api.js"); + module: typeof import("@openclaw/media-understanding-core/runtime-api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/media-understanding-core/runtime-api.js"); + module: typeof import("@openclaw/media-understanding-core/runtime-api.js"); }; }; types: { - RunMediaUnderstandingFileParams: import("../../extensions/media-understanding-core/runtime-api.js").RunMediaUnderstandingFileParams; - RunMediaUnderstandingFileResult: import("../../extensions/media-understanding-core/runtime-api.js").RunMediaUnderstandingFileResult; + RunMediaUnderstandingFileParams: import("@openclaw/media-understanding-core/runtime-api.js").RunMediaUnderstandingFileParams; + RunMediaUnderstandingFileResult: import("@openclaw/media-understanding-core/runtime-api.js").RunMediaUnderstandingFileResult; }; }; "memory-core-engine-runtime": { - module: typeof import("../../extensions/memory-core/runtime-api.js"); + module: typeof import("@openclaw/memory-core/runtime-api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/memory-core/runtime-api.js"); + module: typeof import("@openclaw/memory-core/runtime-api.js"); }; }; types: { - BuiltinMemoryEmbeddingProviderDoctorMetadata: import("../../extensions/memory-core/runtime-api.js").BuiltinMemoryEmbeddingProviderDoctorMetadata; + BuiltinMemoryEmbeddingProviderDoctorMetadata: import("@openclaw/memory-core/runtime-api.js").BuiltinMemoryEmbeddingProviderDoctorMetadata; }; }; "mattermost-policy": { - module: typeof import("../../extensions/mattermost/api.js"); + module: typeof import("@openclaw/mattermost/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/mattermost/api.js"); + module: typeof import("@openclaw/mattermost/api.js"); }; }; types: {}; }; litellm: { - module: typeof import("../../extensions/litellm/api.js"); + module: typeof import("@openclaw/litellm/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/litellm/api.js"); + module: typeof import("@openclaw/litellm/api.js"); }; }; types: {}; }; "line-runtime": { - module: typeof import("../../extensions/line/runtime-api.js"); + module: typeof import("@openclaw/line/runtime-api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/line/runtime-api.js"); + module: typeof import("@openclaw/line/runtime-api.js"); }; }; types: { - Action: import("../../extensions/line/runtime-api.js").Action; - CardAction: import("../../extensions/line/runtime-api.js").CardAction; - CreateRichMenuParams: import("../../extensions/line/runtime-api.js").CreateRichMenuParams; - FlexBox: import("../../extensions/line/runtime-api.js").FlexBox; - FlexBubble: import("../../extensions/line/runtime-api.js").FlexBubble; - FlexButton: import("../../extensions/line/runtime-api.js").FlexButton; - FlexCarousel: import("../../extensions/line/runtime-api.js").FlexCarousel; - FlexComponent: import("../../extensions/line/runtime-api.js").FlexComponent; - FlexContainer: import("../../extensions/line/runtime-api.js").FlexContainer; - FlexImage: import("../../extensions/line/runtime-api.js").FlexImage; - FlexText: import("../../extensions/line/runtime-api.js").FlexText; - LineChannelData: import("../../extensions/line/runtime-api.js").LineChannelData; - LineConfig: import("../../extensions/line/runtime-api.js").LineConfig; - LineProbeResult: import("../../extensions/line/runtime-api.js").LineProbeResult; - ListItem: import("../../extensions/line/runtime-api.js").ListItem; - ResolvedLineAccount: import("../../extensions/line/runtime-api.js").ResolvedLineAccount; - RichMenuArea: import("../../extensions/line/runtime-api.js").RichMenuArea; - RichMenuAreaRequest: import("../../extensions/line/runtime-api.js").RichMenuAreaRequest; - RichMenuRequest: import("../../extensions/line/runtime-api.js").RichMenuRequest; - RichMenuResponse: import("../../extensions/line/runtime-api.js").RichMenuResponse; - RichMenuSize: import("../../extensions/line/runtime-api.js").RichMenuSize; + Action: import("@openclaw/line/runtime-api.js").Action; + CardAction: import("@openclaw/line/runtime-api.js").CardAction; + CreateRichMenuParams: import("@openclaw/line/runtime-api.js").CreateRichMenuParams; + FlexBox: import("@openclaw/line/runtime-api.js").FlexBox; + FlexBubble: import("@openclaw/line/runtime-api.js").FlexBubble; + FlexButton: import("@openclaw/line/runtime-api.js").FlexButton; + FlexCarousel: import("@openclaw/line/runtime-api.js").FlexCarousel; + FlexComponent: import("@openclaw/line/runtime-api.js").FlexComponent; + FlexContainer: import("@openclaw/line/runtime-api.js").FlexContainer; + FlexImage: import("@openclaw/line/runtime-api.js").FlexImage; + FlexText: import("@openclaw/line/runtime-api.js").FlexText; + LineChannelData: import("@openclaw/line/runtime-api.js").LineChannelData; + LineConfig: import("@openclaw/line/runtime-api.js").LineConfig; + LineProbeResult: import("@openclaw/line/runtime-api.js").LineProbeResult; + ListItem: import("@openclaw/line/runtime-api.js").ListItem; + ResolvedLineAccount: import("@openclaw/line/runtime-api.js").ResolvedLineAccount; + RichMenuArea: import("@openclaw/line/runtime-api.js").RichMenuArea; + RichMenuAreaRequest: import("@openclaw/line/runtime-api.js").RichMenuAreaRequest; + RichMenuRequest: import("@openclaw/line/runtime-api.js").RichMenuRequest; + RichMenuResponse: import("@openclaw/line/runtime-api.js").RichMenuResponse; + RichMenuSize: import("@openclaw/line/runtime-api.js").RichMenuSize; }; }; "line-surface": { - module: typeof import("../../extensions/line/runtime-api.js"); + module: typeof import("@openclaw/line/runtime-api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/line/runtime-api.js"); + module: typeof import("@openclaw/line/runtime-api.js"); }; }; types: { - CardAction: import("../../extensions/line/runtime-api.js").CardAction; - LineChannelData: import("../../extensions/line/runtime-api.js").LineChannelData; - LineConfig: import("../../extensions/line/runtime-api.js").LineConfig; - LineProbeResult: import("../../extensions/line/runtime-api.js").LineProbeResult; - ListItem: import("../../extensions/line/runtime-api.js").ListItem; - ResolvedLineAccount: import("../../extensions/line/runtime-api.js").ResolvedLineAccount; + CardAction: import("@openclaw/line/runtime-api.js").CardAction; + LineChannelData: import("@openclaw/line/runtime-api.js").LineChannelData; + LineConfig: import("@openclaw/line/runtime-api.js").LineConfig; + LineProbeResult: import("@openclaw/line/runtime-api.js").LineProbeResult; + ListItem: import("@openclaw/line/runtime-api.js").ListItem; + ResolvedLineAccount: import("@openclaw/line/runtime-api.js").ResolvedLineAccount; }; }; "matrix-helper": { - module: typeof import("../../extensions/matrix/api.js"); + module: typeof import("@openclaw/matrix/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/matrix/api.js"); + module: typeof import("@openclaw/matrix/api.js"); }; }; types: {}; }; "matrix-runtime-surface": { - module: typeof import("../../extensions/matrix/runtime-api.js"); + module: typeof import("@openclaw/matrix/runtime-api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/matrix/runtime-api.js"); + module: typeof import("@openclaw/matrix/runtime-api.js"); }; }; types: {}; }; "matrix-surface": { - module: typeof import("../../extensions/matrix/api.js"); + module: typeof import("@openclaw/matrix/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/matrix/api.js"); + module: typeof import("@openclaw/matrix/api.js"); }; }; types: {}; }; "matrix-thread-bindings": { - module: typeof import("../../extensions/matrix/api.js"); + module: typeof import("@openclaw/matrix/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/matrix/api.js"); + module: typeof import("@openclaw/matrix/api.js"); }; }; types: {}; }; openrouter: { - module: typeof import("../../extensions/openrouter/api.js"); + module: typeof import("@openclaw/openrouter/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/openrouter/api.js"); + module: typeof import("@openclaw/openrouter/api.js"); }; }; types: {}; }; minimax: { - module: typeof import("../../extensions/minimax/api.js"); + module: typeof import("@openclaw/minimax/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/minimax/api.js"); + module: typeof import("@openclaw/minimax/api.js"); }; }; types: {}; }; modelstudio: { - module: typeof import("../../extensions/modelstudio/api.js"); + module: typeof import("@openclaw/modelstudio/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/modelstudio/api.js"); + module: typeof import("@openclaw/modelstudio/api.js"); }; }; types: {}; }; "modelstudio-definitions": { - module: typeof import("../../extensions/modelstudio/api.js"); + module: typeof import("@openclaw/modelstudio/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/modelstudio/api.js"); + module: typeof import("@openclaw/modelstudio/api.js"); }; }; types: {}; }; moonshot: { - module: typeof import("../../extensions/moonshot/api.js"); + module: typeof import("@openclaw/moonshot/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/moonshot/api.js"); + module: typeof import("@openclaw/moonshot/api.js"); }; }; types: {}; }; mistral: { - module: typeof import("../../extensions/mistral/api.js"); + module: typeof import("@openclaw/mistral/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/mistral/api.js"); + module: typeof import("@openclaw/mistral/api.js"); }; }; types: {}; }; nvidia: { - module: typeof import("../../extensions/nvidia/api.js"); + module: typeof import("@openclaw/nvidia/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/nvidia/api.js"); + module: typeof import("@openclaw/nvidia/api.js"); }; }; types: {}; }; ollama: { - module: typeof import("../../extensions/ollama/runtime-api.js"); + module: typeof import("@openclaw/ollama/runtime-api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/ollama/runtime-api.js"); + module: typeof import("@openclaw/ollama/runtime-api.js"); }; }; types: { - OllamaEmbeddingClient: import("../../extensions/ollama/runtime-api.js").OllamaEmbeddingClient; - OllamaEmbeddingProvider: import("../../extensions/ollama/runtime-api.js").OllamaEmbeddingProvider; + OllamaEmbeddingClient: import("@openclaw/ollama/runtime-api.js").OllamaEmbeddingClient; + OllamaEmbeddingProvider: import("@openclaw/ollama/runtime-api.js").OllamaEmbeddingProvider; }; }; "ollama-surface": { - module: typeof import("../../extensions/ollama/api.js"); + module: typeof import("@openclaw/ollama/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/ollama/api.js"); + module: typeof import("@openclaw/ollama/api.js"); }; }; types: { - OllamaModelWithContext: import("../../extensions/ollama/api.js").OllamaModelWithContext; - OllamaTagModel: import("../../extensions/ollama/api.js").OllamaTagModel; - OllamaTagsResponse: import("../../extensions/ollama/api.js").OllamaTagsResponse; + OllamaModelWithContext: import("@openclaw/ollama/api.js").OllamaModelWithContext; + OllamaTagModel: import("@openclaw/ollama/api.js").OllamaTagModel; + OllamaTagsResponse: import("@openclaw/ollama/api.js").OllamaTagsResponse; }; }; openai: { - module: typeof import("../../extensions/openai/api.js"); + module: typeof import("@openclaw/openai/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/openai/api.js"); + module: typeof import("@openclaw/openai/api.js"); }; }; types: {}; }; opencode: { - module: typeof import("../../extensions/opencode/api.js"); + module: typeof import("@openclaw/opencode/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/opencode/api.js"); + module: typeof import("@openclaw/opencode/api.js"); }; }; types: {}; }; "opencode-go": { - module: typeof import("../../extensions/opencode-go/api.js"); + module: typeof import("@openclaw/opencode-go/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/opencode-go/api.js"); + module: typeof import("@openclaw/opencode-go/api.js"); }; }; types: {}; }; qianfan: { - module: typeof import("../../extensions/qianfan/api.js"); + module: typeof import("@openclaw/qianfan/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/qianfan/api.js"); + module: typeof import("@openclaw/qianfan/api.js"); }; }; types: {}; }; "signal-account": { - module: typeof import("../../extensions/signal/api.js"); + module: typeof import("@openclaw/signal/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/signal/api.js"); + module: typeof import("@openclaw/signal/api.js"); }; }; types: { - ResolvedSignalAccount: import("../../extensions/signal/api.js").ResolvedSignalAccount; + ResolvedSignalAccount: import("@openclaw/signal/api.js").ResolvedSignalAccount; }; }; "signal-surface": { - module: typeof import("../../extensions/signal/api.js"); + module: typeof import("@openclaw/signal/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/signal/api.js"); + module: typeof import("@openclaw/signal/api.js"); }; }; types: { - ResolvedSignalAccount: import("../../extensions/signal/api.js").ResolvedSignalAccount; - SignalProbe: import("../../extensions/signal/api.js").SignalProbe; - SignalSender: import("../../extensions/signal/api.js").SignalSender; + ResolvedSignalAccount: import("@openclaw/signal/api.js").ResolvedSignalAccount; + SignalProbe: import("@openclaw/signal/api.js").SignalProbe; + SignalSender: import("@openclaw/signal/api.js").SignalSender; }; }; "provider-reasoning": { - module: typeof import("../../extensions/ollama/api.js"); + module: typeof import("@openclaw/ollama/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/ollama/api.js"); + module: typeof import("@openclaw/ollama/api.js"); }; }; types: {}; }; "speech-runtime": { - module: typeof import("../../extensions/speech-core/runtime-api.js"); + module: typeof import("@openclaw/speech-core/runtime-api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/speech-core/runtime-api.js"); + module: typeof import("@openclaw/speech-core/runtime-api.js"); }; }; types: { - ResolvedTtsConfig: import("../../extensions/speech-core/runtime-api.js").ResolvedTtsConfig; - ResolvedTtsModelOverrides: import("../../extensions/speech-core/runtime-api.js").ResolvedTtsModelOverrides; - TtsDirectiveOverrides: import("../../extensions/speech-core/runtime-api.js").TtsDirectiveOverrides; - TtsDirectiveParseResult: import("../../extensions/speech-core/runtime-api.js").TtsDirectiveParseResult; - TtsResult: import("../../extensions/speech-core/runtime-api.js").TtsResult; - TtsSynthesisResult: import("../../extensions/speech-core/runtime-api.js").TtsSynthesisResult; - TtsTelephonyResult: import("../../extensions/speech-core/runtime-api.js").TtsTelephonyResult; + ResolvedTtsConfig: import("@openclaw/speech-core/runtime-api.js").ResolvedTtsConfig; + ResolvedTtsModelOverrides: import("@openclaw/speech-core/runtime-api.js").ResolvedTtsModelOverrides; + TtsDirectiveOverrides: import("@openclaw/speech-core/runtime-api.js").TtsDirectiveOverrides; + TtsDirectiveParseResult: import("@openclaw/speech-core/runtime-api.js").TtsDirectiveParseResult; + TtsResult: import("@openclaw/speech-core/runtime-api.js").TtsResult; + TtsSynthesisResult: import("@openclaw/speech-core/runtime-api.js").TtsSynthesisResult; + TtsTelephonyResult: import("@openclaw/speech-core/runtime-api.js").TtsTelephonyResult; }; }; sglang: { - module: typeof import("../../extensions/sglang/api.js"); + module: typeof import("@openclaw/sglang/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/sglang/api.js"); + module: typeof import("@openclaw/sglang/api.js"); }; }; types: {}; }; synthetic: { - module: typeof import("../../extensions/synthetic/api.js"); + module: typeof import("@openclaw/synthetic/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/synthetic/api.js"); + module: typeof import("@openclaw/synthetic/api.js"); }; }; types: {}; }; "slack-target-parser": { - module: typeof import("../../extensions/slack/api.js"); + module: typeof import("@openclaw/slack/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/slack/api.js"); + module: typeof import("@openclaw/slack/api.js"); }; }; types: {}; }; "slack-account": { - module: typeof import("../../extensions/slack/api.js"); + module: typeof import("@openclaw/slack/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/slack/api.js"); + module: typeof import("@openclaw/slack/api.js"); }; }; types: { - ResolvedSlackAccount: import("../../extensions/slack/api.js").ResolvedSlackAccount; + ResolvedSlackAccount: import("@openclaw/slack/api.js").ResolvedSlackAccount; }; }; "slack-runtime-surface": { - module: typeof import("../../extensions/slack/runtime-api.js"); + module: typeof import("@openclaw/slack/runtime-api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/slack/runtime-api.js"); + module: typeof import("@openclaw/slack/runtime-api.js"); }; }; types: { - SlackActionContext: import("../../extensions/slack/runtime-api.js").SlackActionContext; + SlackActionContext: import("@openclaw/slack/runtime-api.js").SlackActionContext; }; }; "slack-surface": { - module: typeof import("../../extensions/slack/api.js"); + module: typeof import("@openclaw/slack/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/slack/api.js"); + module: typeof import("@openclaw/slack/api.js"); }; }; types: { - InspectedSlackAccount: import("../../extensions/slack/api.js").InspectedSlackAccount; - ResolvedSlackAccount: import("../../extensions/slack/api.js").ResolvedSlackAccount; - SlackProbe: import("../../extensions/slack/api.js").SlackProbe; + InspectedSlackAccount: import("@openclaw/slack/api.js").InspectedSlackAccount; + ResolvedSlackAccount: import("@openclaw/slack/api.js").ResolvedSlackAccount; + SlackProbe: import("@openclaw/slack/api.js").SlackProbe; }; }; together: { - module: typeof import("../../extensions/together/api.js"); + module: typeof import("@openclaw/together/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/together/api.js"); + module: typeof import("@openclaw/together/api.js"); }; }; types: {}; }; venice: { - module: typeof import("../../extensions/venice/api.js"); + module: typeof import("@openclaw/venice/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/venice/api.js"); + module: typeof import("@openclaw/venice/api.js"); }; }; types: {}; }; "telegram-account": { - module: typeof import("../../extensions/telegram/api.js"); + module: typeof import("@openclaw/telegram/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/telegram/api.js"); + module: typeof import("@openclaw/telegram/api.js"); }; }; types: { - ResolvedTelegramAccount: import("../../extensions/telegram/api.js").ResolvedTelegramAccount; + ResolvedTelegramAccount: import("@openclaw/telegram/api.js").ResolvedTelegramAccount; }; }; "telegram-allow-from": { - module: typeof import("../../extensions/telegram/api.js"); + module: typeof import("@openclaw/telegram/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/telegram/api.js"); + module: typeof import("@openclaw/telegram/api.js"); }; }; types: {}; }; "telegram-runtime-surface": { - module: typeof import("../../extensions/telegram/runtime-api.js"); + module: typeof import("@openclaw/telegram/runtime-api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/telegram/runtime-api.js"); + module: typeof import("@openclaw/telegram/runtime-api.js"); }; }; types: { - TelegramApiOverride: import("../../extensions/telegram/runtime-api.js").TelegramApiOverride; - TelegramProbe: import("../../extensions/telegram/runtime-api.js").TelegramProbe; + TelegramApiOverride: import("@openclaw/telegram/runtime-api.js").TelegramApiOverride; + TelegramProbe: import("@openclaw/telegram/runtime-api.js").TelegramProbe; }; }; "telegram-surface": { - module: typeof import("../../extensions/telegram/api.js"); + module: typeof import("@openclaw/telegram/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/telegram/api.js"); + module: typeof import("@openclaw/telegram/api.js"); }; }; types: { - InspectedTelegramAccount: import("../../extensions/telegram/api.js").InspectedTelegramAccount; - ProviderInfo: import("../../extensions/telegram/api.js").ProviderInfo; - ResolvedTelegramAccount: import("../../extensions/telegram/api.js").ResolvedTelegramAccount; - StickerMetadata: import("../../extensions/telegram/api.js").StickerMetadata; - TelegramButtonStyle: import("../../extensions/telegram/api.js").TelegramButtonStyle; - TelegramInlineButtons: import("../../extensions/telegram/api.js").TelegramInlineButtons; - TelegramProbe: import("../../extensions/telegram/api.js").TelegramProbe; - TelegramTokenResolution: import("../../extensions/telegram/api.js").TelegramTokenResolution; + InspectedTelegramAccount: import("@openclaw/telegram/api.js").InspectedTelegramAccount; + ProviderInfo: import("@openclaw/telegram/api.js").ProviderInfo; + ResolvedTelegramAccount: import("@openclaw/telegram/api.js").ResolvedTelegramAccount; + StickerMetadata: import("@openclaw/telegram/api.js").StickerMetadata; + TelegramButtonStyle: import("@openclaw/telegram/api.js").TelegramButtonStyle; + TelegramInlineButtons: import("@openclaw/telegram/api.js").TelegramInlineButtons; + TelegramProbe: import("@openclaw/telegram/api.js").TelegramProbe; + TelegramTokenResolution: import("@openclaw/telegram/api.js").TelegramTokenResolution; }; }; "vercel-ai-gateway": { - module: typeof import("../../extensions/vercel-ai-gateway/api.js"); + module: typeof import("@openclaw/vercel-ai-gateway/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/vercel-ai-gateway/api.js"); + module: typeof import("@openclaw/vercel-ai-gateway/api.js"); }; }; types: {}; }; volcengine: { - module: typeof import("../../extensions/volcengine/api.js"); + module: typeof import("@openclaw/volcengine/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/volcengine/api.js"); + module: typeof import("@openclaw/volcengine/api.js"); }; }; types: {}; }; vllm: { - module: typeof import("../../extensions/vllm/api.js"); + module: typeof import("@openclaw/vllm/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/vllm/api.js"); + module: typeof import("@openclaw/vllm/api.js"); }; }; types: {}; }; xai: { - module: typeof import("../../extensions/xai/api.js"); + module: typeof import("@openclaw/xai/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/xai/api.js"); + module: typeof import("@openclaw/xai/api.js"); }; }; types: {}; }; xiaomi: { - module: typeof import("../../extensions/xiaomi/api.js"); + module: typeof import("@openclaw/xiaomi/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/xiaomi/api.js"); + module: typeof import("@openclaw/xiaomi/api.js"); }; }; types: {}; }; zai: { - module: typeof import("../../extensions/zai/api.js"); + module: typeof import("@openclaw/zai/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/zai/api.js"); + module: typeof import("@openclaw/zai/api.js"); }; }; types: {}; }; "whatsapp-targets": { - module: typeof import("../../extensions/whatsapp/api.js"); + module: typeof import("@openclaw/whatsapp/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/whatsapp/api.js"); + module: typeof import("@openclaw/whatsapp/api.js"); }; }; types: {}; }; "whatsapp-surface": { - module: typeof import("../../extensions/whatsapp/api.js"); + module: typeof import("@openclaw/whatsapp/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/whatsapp/api.js"); + module: typeof import("@openclaw/whatsapp/api.js"); }; source2: { - module: typeof import("../../extensions/whatsapp/constants.js"); + module: typeof import("@openclaw/whatsapp/constants.js"); }; }; types: { - WebChannelStatus: import("../../extensions/whatsapp/api.js").WebChannelStatus; - WebInboundMessage: import("../../extensions/whatsapp/api.js").WebInboundMessage; - WebListenerCloseReason: import("../../extensions/whatsapp/api.js").WebListenerCloseReason; - WebMonitorTuning: import("../../extensions/whatsapp/api.js").WebMonitorTuning; + WebChannelStatus: import("@openclaw/whatsapp/api.js").WebChannelStatus; + WebInboundMessage: import("@openclaw/whatsapp/api.js").WebInboundMessage; + WebListenerCloseReason: import("@openclaw/whatsapp/api.js").WebListenerCloseReason; + WebMonitorTuning: import("@openclaw/whatsapp/api.js").WebMonitorTuning; }; }; "zalo-setup": { - module: typeof import("../../extensions/zalo/api.js"); + module: typeof import("@openclaw/zalo/api.js"); sourceModules: { source1: { - module: typeof import("../../extensions/zalo/api.js"); + module: typeof import("@openclaw/zalo/api.js"); }; }; types: {}; diff --git a/src/plugin-sdk/irc-surface.ts b/src/plugin-sdk/irc-surface.ts index b7173c32128..67fefb57f4d 100644 --- a/src/plugin-sdk/irc-surface.ts +++ b/src/plugin-sdk/irc-surface.ts @@ -19,11 +19,12 @@ export const ircSetupAdapter: FacadeModule["ircSetupAdapter"] = createLazyFacade export const ircSetupWizard: FacadeModule["ircSetupWizard"] = createLazyFacadeObjectValue( () => loadFacadeModule()["ircSetupWizard"] as object, ) as FacadeModule["ircSetupWizard"]; -export const listIrcAccountIds: FacadeModule["listIrcAccountIds"] = ((...args) => - loadFacadeModule()["listIrcAccountIds"](...args)) as FacadeModule["listIrcAccountIds"]; -export const resolveDefaultIrcAccountId: FacadeModule["resolveDefaultIrcAccountId"] = ((...args) => - loadFacadeModule()["resolveDefaultIrcAccountId"]( - ...args, - )) as FacadeModule["resolveDefaultIrcAccountId"]; +export const listIrcAccountIds: FacadeModule["listIrcAccountIds"] = createLazyFacadeObjectValue( + () => loadFacadeModule()["listIrcAccountIds"] as object, +) as FacadeModule["listIrcAccountIds"]; +export const resolveDefaultIrcAccountId: FacadeModule["resolveDefaultIrcAccountId"] = + createLazyFacadeObjectValue( + () => loadFacadeModule()["resolveDefaultIrcAccountId"] as object, + ) as FacadeModule["resolveDefaultIrcAccountId"]; export const resolveIrcAccount: FacadeModule["resolveIrcAccount"] = ((...args) => loadFacadeModule()["resolveIrcAccount"](...args)) as FacadeModule["resolveIrcAccount"]; diff --git a/src/plugin-sdk/line-runtime.ts b/src/plugin-sdk/line-runtime.ts index 8fc50a213db..c000e51216b 100644 --- a/src/plugin-sdk/line-runtime.ts +++ b/src/plugin-sdk/line-runtime.ts @@ -2,7 +2,10 @@ import type { PluginSdkFacadeTypeMap } from "../generated/plugin-sdk-facade-type-map.generated.js"; type FacadeEntry = PluginSdkFacadeTypeMap["line-runtime"]; type FacadeModule = FacadeEntry["module"]; -import { loadBundledPluginPublicSurfaceModuleSync } from "./facade-runtime.js"; +import { + createLazyFacadeObjectValue, + loadBundledPluginPublicSurfaceModuleSync, +} from "./facade-runtime.js"; function loadFacadeModule(): FacadeModule { return loadBundledPluginPublicSurfaceModuleSync({ @@ -68,8 +71,9 @@ export const deleteRichMenuAlias: FacadeModule["deleteRichMenuAlias"] = ((...arg loadFacadeModule()["deleteRichMenuAlias"](...args)) as FacadeModule["deleteRichMenuAlias"]; export const downloadLineMedia: FacadeModule["downloadLineMedia"] = ((...args) => loadFacadeModule()["downloadLineMedia"](...args)) as FacadeModule["downloadLineMedia"]; -export const firstDefined: FacadeModule["firstDefined"] = ((...args) => - loadFacadeModule()["firstDefined"](...args)) as FacadeModule["firstDefined"]; +export const firstDefined: FacadeModule["firstDefined"] = createLazyFacadeObjectValue( + () => loadFacadeModule()["firstDefined"] as object, +) as FacadeModule["firstDefined"]; export const getDefaultRichMenuId: FacadeModule["getDefaultRichMenuId"] = ((...args) => loadFacadeModule()["getDefaultRichMenuId"](...args)) as FacadeModule["getDefaultRichMenuId"]; export const getRichMenu: FacadeModule["getRichMenu"] = ((...args) => diff --git a/src/plugin-sdk/matrix-runtime-surface.ts b/src/plugin-sdk/matrix-runtime-surface.ts index 86125c6a033..92e63e93846 100644 --- a/src/plugin-sdk/matrix-runtime-surface.ts +++ b/src/plugin-sdk/matrix-runtime-surface.ts @@ -2,7 +2,10 @@ import type { PluginSdkFacadeTypeMap } from "../generated/plugin-sdk-facade-type-map.generated.js"; type FacadeEntry = PluginSdkFacadeTypeMap["matrix-runtime-surface"]; type FacadeModule = FacadeEntry["module"]; -import { loadBundledPluginPublicSurfaceModuleSync } from "./facade-runtime.js"; +import { + createLazyFacadeObjectValue, + loadBundledPluginPublicSurfaceModuleSync, +} from "./facade-runtime.js"; function loadFacadeModule(): FacadeModule { return loadBundledPluginPublicSurfaceModuleSync({ @@ -16,5 +19,6 @@ export const resolveMatrixAccountStringValues: FacadeModule["resolveMatrixAccoun loadFacadeModule()["resolveMatrixAccountStringValues"]( ...args, )) as FacadeModule["resolveMatrixAccountStringValues"]; -export const setMatrixRuntime: FacadeModule["setMatrixRuntime"] = ((...args) => - loadFacadeModule()["setMatrixRuntime"](...args)) as FacadeModule["setMatrixRuntime"]; +export const setMatrixRuntime: FacadeModule["setMatrixRuntime"] = createLazyFacadeObjectValue( + () => loadFacadeModule()["setMatrixRuntime"] as object, +) as FacadeModule["setMatrixRuntime"]; diff --git a/src/plugin-sdk/package-contract-guardrails.test.ts b/src/plugin-sdk/package-contract-guardrails.test.ts index d4d0f6cc568..660f033dd1d 100644 --- a/src/plugin-sdk/package-contract-guardrails.test.ts +++ b/src/plugin-sdk/package-contract-guardrails.test.ts @@ -63,6 +63,10 @@ function readGeneratedFacadeTypeMap(): string { ); } +function buildLegacyPluginSourceAlias(): string { + return ["openclaw", ["plugin", "source"].join("-")].join("/") + "/"; +} + describe("plugin-sdk package contract guardrails", () => { it("keeps package.json exports aligned with built plugin-sdk entrypoints", () => { expect(collectPluginSdkPackageExports()).toEqual([...pluginSdkEntrypoints].toSorted()); @@ -99,7 +103,8 @@ describe("plugin-sdk package contract guardrails", () => { expect(optionalDependencies["@matrix-org/matrix-sdk-crypto-nodejs"]).toBe("^0.4.0"); }); - it("keeps generated facade types on package-valid module specifiers", () => { - expect(readGeneratedFacadeTypeMap()).not.toContain("openclaw/plugin-source/"); + it("keeps generated facade types on package-style module specifiers", () => { + expect(readGeneratedFacadeTypeMap()).not.toContain("../../extensions/"); + expect(readGeneratedFacadeTypeMap()).not.toContain(buildLegacyPluginSourceAlias()); }); }); diff --git a/tsconfig.json b/tsconfig.json index ba6e6e186be..a3faa9dbfa2 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -22,7 +22,7 @@ "openclaw/plugin-sdk": ["./src/plugin-sdk/index.ts"], "openclaw/plugin-sdk/*": ["./src/plugin-sdk/*.ts"], "openclaw/plugin-sdk/account-id": ["./src/plugin-sdk/account-id.ts"], - "openclaw/plugin-source/*": ["./extensions/*"] + "@openclaw/*": ["./extensions/*"] } }, "include": ["src/**/*", "ui/**/*", "extensions/**/*", "packages/**/*"],