mirror of https://github.com/openclaw/openclaw.git
fix: correct callable plugin sdk facades
This commit is contained in:
parent
a4f45c55b2
commit
913e7d5eba
|
|
@ -1225,6 +1225,7 @@ const MODULE_RESOLUTION_OPTIONS = {
|
|||
target: ts.ScriptTarget.ESNext,
|
||||
};
|
||||
const MODULE_RESOLUTION_HOST = ts.createCompilerHost(MODULE_RESOLUTION_OPTIONS, true);
|
||||
const moduleResolutionContextCache = new Map();
|
||||
const sourceExportKindsCache = new Map();
|
||||
|
||||
function listFacadeEntrySourcePaths(entry) {
|
||||
|
|
@ -1324,6 +1325,48 @@ function resolveFacadeSourceTypescriptPath(repoRoot, sourcePath) {
|
|||
return candidates.find((candidate) => fs.existsSync(candidate));
|
||||
}
|
||||
|
||||
function resolveFacadeModuleResolutionContext(repoRoot) {
|
||||
const cacheKey = repoRoot || "__default__";
|
||||
const cached = moduleResolutionContextCache.get(cacheKey);
|
||||
if (cached) {
|
||||
return cached;
|
||||
}
|
||||
|
||||
let context = {
|
||||
options: MODULE_RESOLUTION_OPTIONS,
|
||||
host: MODULE_RESOLUTION_HOST,
|
||||
};
|
||||
|
||||
if (repoRoot) {
|
||||
const fileExists = (filePath) => ts.sys.fileExists(filePath);
|
||||
const readFile = (filePath) => ts.sys.readFile(filePath);
|
||||
const configPath = ts.findConfigFile(repoRoot, fileExists, "tsconfig.json");
|
||||
if (configPath) {
|
||||
const configFile = ts.readConfigFile(configPath, readFile);
|
||||
if (!configFile.error) {
|
||||
const parsedConfig = ts.parseJsonConfigFileContent(
|
||||
configFile.config,
|
||||
ts.sys,
|
||||
path.dirname(configPath),
|
||||
MODULE_RESOLUTION_OPTIONS,
|
||||
configPath,
|
||||
);
|
||||
const options = {
|
||||
...MODULE_RESOLUTION_OPTIONS,
|
||||
...parsedConfig.options,
|
||||
};
|
||||
context = {
|
||||
options,
|
||||
host: ts.createCompilerHost(options, true),
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
moduleResolutionContextCache.set(cacheKey, context);
|
||||
return context;
|
||||
}
|
||||
|
||||
function resolveFacadeSourceExportKinds(repoRoot, sourcePath) {
|
||||
const cacheKey = `${repoRoot}::${sourcePath}`;
|
||||
const cached = sourceExportKindsCache.get(cacheKey);
|
||||
|
|
@ -1338,10 +1381,11 @@ function resolveFacadeSourceExportKinds(repoRoot, sourcePath) {
|
|||
return empty;
|
||||
}
|
||||
|
||||
const moduleResolutionContext = resolveFacadeModuleResolutionContext(repoRoot);
|
||||
const program = ts.createProgram(
|
||||
[sourceTsPath],
|
||||
MODULE_RESOLUTION_OPTIONS,
|
||||
MODULE_RESOLUTION_HOST,
|
||||
moduleResolutionContext.options,
|
||||
moduleResolutionContext.host,
|
||||
);
|
||||
const sourceFile = program.getSourceFile(sourceTsPath);
|
||||
if (!sourceFile) {
|
||||
|
|
|
|||
|
|
@ -101,9 +101,8 @@ export const createBrowserRuntimeState: FacadeModule["createBrowserRuntimeState"
|
|||
)) as FacadeModule["createBrowserRuntimeState"];
|
||||
export const createBrowserTool: FacadeModule["createBrowserTool"] = ((...args) =>
|
||||
loadFacadeModule()["createBrowserTool"](...args)) as FacadeModule["createBrowserTool"];
|
||||
export const definePluginEntry: FacadeModule["definePluginEntry"] = createLazyFacadeObjectValue(
|
||||
() => loadFacadeModule()["definePluginEntry"] as object,
|
||||
) as FacadeModule["definePluginEntry"];
|
||||
export const definePluginEntry: FacadeModule["definePluginEntry"] = ((...args) =>
|
||||
loadFacadeModule()["definePluginEntry"](...args)) as FacadeModule["definePluginEntry"];
|
||||
export const ensureBrowserControlAuth: FacadeModule["ensureBrowserControlAuth"] = ((...args) =>
|
||||
loadFacadeModule()["ensureBrowserControlAuth"](
|
||||
...args,
|
||||
|
|
|
|||
|
|
@ -19,12 +19,11 @@ export const ircSetupAdapter: FacadeModule["ircSetupAdapter"] = createLazyFacade
|
|||
export const ircSetupWizard: FacadeModule["ircSetupWizard"] = createLazyFacadeObjectValue(
|
||||
() => loadFacadeModule()["ircSetupWizard"] as object,
|
||||
) as FacadeModule["ircSetupWizard"];
|
||||
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 listIrcAccountIds: FacadeModule["listIrcAccountIds"] = ((...args) =>
|
||||
loadFacadeModule()["listIrcAccountIds"](...args)) as FacadeModule["listIrcAccountIds"];
|
||||
export const resolveDefaultIrcAccountId: FacadeModule["resolveDefaultIrcAccountId"] = ((...args) =>
|
||||
loadFacadeModule()["resolveDefaultIrcAccountId"](
|
||||
...args,
|
||||
)) as FacadeModule["resolveDefaultIrcAccountId"];
|
||||
export const resolveIrcAccount: FacadeModule["resolveIrcAccount"] = ((...args) =>
|
||||
loadFacadeModule()["resolveIrcAccount"](...args)) as FacadeModule["resolveIrcAccount"];
|
||||
|
|
|
|||
|
|
@ -19,20 +19,20 @@ export const listEnabledSignalAccounts: FacadeModule["listEnabledSignalAccounts"
|
|||
loadFacadeModule()["listEnabledSignalAccounts"](
|
||||
...args,
|
||||
)) as FacadeModule["listEnabledSignalAccounts"];
|
||||
export const listSignalAccountIds: FacadeModule["listSignalAccountIds"] =
|
||||
createLazyFacadeObjectValue(
|
||||
() => loadFacadeModule()["listSignalAccountIds"] as object,
|
||||
) as FacadeModule["listSignalAccountIds"];
|
||||
export const listSignalAccountIds: FacadeModule["listSignalAccountIds"] = ((...args) =>
|
||||
loadFacadeModule()["listSignalAccountIds"](...args)) as FacadeModule["listSignalAccountIds"];
|
||||
export const monitorSignalProvider: FacadeModule["monitorSignalProvider"] = ((...args) =>
|
||||
loadFacadeModule()["monitorSignalProvider"](...args)) as FacadeModule["monitorSignalProvider"];
|
||||
export const probeSignal: FacadeModule["probeSignal"] = ((...args) =>
|
||||
loadFacadeModule()["probeSignal"](...args)) as FacadeModule["probeSignal"];
|
||||
export const removeReactionSignal: FacadeModule["removeReactionSignal"] = ((...args) =>
|
||||
loadFacadeModule()["removeReactionSignal"](...args)) as FacadeModule["removeReactionSignal"];
|
||||
export const resolveDefaultSignalAccountId: FacadeModule["resolveDefaultSignalAccountId"] =
|
||||
createLazyFacadeObjectValue(
|
||||
() => loadFacadeModule()["resolveDefaultSignalAccountId"] as object,
|
||||
) as FacadeModule["resolveDefaultSignalAccountId"];
|
||||
export const resolveDefaultSignalAccountId: FacadeModule["resolveDefaultSignalAccountId"] = ((
|
||||
...args
|
||||
) =>
|
||||
loadFacadeModule()["resolveDefaultSignalAccountId"](
|
||||
...args,
|
||||
)) as FacadeModule["resolveDefaultSignalAccountId"];
|
||||
export const resolveSignalReactionLevel: FacadeModule["resolveSignalReactionLevel"] = ((...args) =>
|
||||
loadFacadeModule()["resolveSignalReactionLevel"](
|
||||
...args,
|
||||
|
|
|
|||
|
|
@ -2,10 +2,7 @@
|
|||
import type { PluginSdkFacadeTypeMap } from "../generated/plugin-sdk-facade-type-map.generated.js";
|
||||
type FacadeEntry = PluginSdkFacadeTypeMap["telegram-surface"];
|
||||
type FacadeModule = FacadeEntry["module"];
|
||||
import {
|
||||
createLazyFacadeObjectValue,
|
||||
loadBundledPluginPublicSurfaceModuleSync,
|
||||
} from "./facade-runtime.js";
|
||||
import { loadBundledPluginPublicSurfaceModuleSync } from "./facade-runtime.js";
|
||||
|
||||
function loadFacadeModule(): FacadeModule {
|
||||
return loadBundledPluginPublicSurfaceModuleSync<FacadeModule>({
|
||||
|
|
@ -63,13 +60,15 @@ export const isTelegramExecApprovalTargetRecipient: FacadeModule["isTelegramExec
|
|||
export const listTelegramAccountIds: FacadeModule["listTelegramAccountIds"] = ((...args) =>
|
||||
loadFacadeModule()["listTelegramAccountIds"](...args)) as FacadeModule["listTelegramAccountIds"];
|
||||
export const listTelegramDirectoryGroupsFromConfig: FacadeModule["listTelegramDirectoryGroupsFromConfig"] =
|
||||
createLazyFacadeObjectValue(
|
||||
() => loadFacadeModule()["listTelegramDirectoryGroupsFromConfig"] as object,
|
||||
) as FacadeModule["listTelegramDirectoryGroupsFromConfig"];
|
||||
((...args) =>
|
||||
loadFacadeModule()["listTelegramDirectoryGroupsFromConfig"](
|
||||
...args,
|
||||
)) as FacadeModule["listTelegramDirectoryGroupsFromConfig"];
|
||||
export const listTelegramDirectoryPeersFromConfig: FacadeModule["listTelegramDirectoryPeersFromConfig"] =
|
||||
createLazyFacadeObjectValue(
|
||||
() => loadFacadeModule()["listTelegramDirectoryPeersFromConfig"] as object,
|
||||
) as FacadeModule["listTelegramDirectoryPeersFromConfig"];
|
||||
((...args) =>
|
||||
loadFacadeModule()["listTelegramDirectoryPeersFromConfig"](
|
||||
...args,
|
||||
)) as FacadeModule["listTelegramDirectoryPeersFromConfig"];
|
||||
export const looksLikeTelegramTargetId: FacadeModule["looksLikeTelegramTargetId"] = ((...args) =>
|
||||
loadFacadeModule()["looksLikeTelegramTargetId"](
|
||||
...args,
|
||||
|
|
|
|||
Loading…
Reference in New Issue