From a20f97f7288f7c592eee7dfc18c28dfe170266a7 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Mon, 27 Apr 2026 20:34:25 +0100 Subject: [PATCH] refactor: narrow extension runtime api barrels --- extensions/browser/runtime-api.ts | 81 ++++++++++++++++- extensions/line/runtime-api.ts | 91 +++++++++++++++---- extensions/matrix/runtime-api.ts | 33 +++++-- .../src/approval-handler.runtime.test.ts | 12 +++ extensions/mattermost/src/runtime-api.ts | 70 +++++++++++++- extensions/qa-channel/runtime-api.ts | 22 ++++- extensions/qa-lab/runtime-api.ts | 41 ++++++++- extensions/signal/runtime-api.ts | 48 +++++++++- extensions/zalo/runtime-api.ts | 79 +++++++++++++++- extensions/zalo/src/runtime-api.ts | 78 +++++++++++++++- extensions/zalouser/runtime-api.ts | 14 ++- .../plugin-sdk-runtime-api-guardrails.test.ts | 10 +- 12 files changed, 533 insertions(+), 46 deletions(-) diff --git a/extensions/browser/runtime-api.ts b/extensions/browser/runtime-api.ts index c1194df28b9..6a8ae2fa13f 100644 --- a/extensions/browser/runtime-api.ts +++ b/extensions/browser/runtime-api.ts @@ -1,5 +1,84 @@ export { createBrowserTool } from "./src/browser-tool.js"; -export * from "./src/browser-runtime.js"; +export { + applyBrowserProxyPaths, + browserAct, + browserArmDialog, + browserArmFileChooser, + type BrowserBridge, + browserCloseTab, + browserConsoleMessages, + browserCreateProfile, + type BrowserCreateProfileResult, + browserDeleteProfile, + type BrowserDeleteProfileResult, + browserDoctor, + type BrowserDoctorCheck, + type BrowserDoctorReport, + type BrowserExecutable, + browserFocusTab, + type BrowserFormField, + browserNavigate, + browserOpenTab, + browserPdfSave, + browserProfiles, + browserResetProfile, + type BrowserResetProfileResult, + type BrowserRouteRegistrar, + browserScreenshotAction, + type BrowserServerState, + browserSnapshot, + browserStart, + browserStatus, + type BrowserStatus, + browserStop, + type BrowserTab, + browserTabAction, + browserTabs, + type BrowserTransport, + closeTrackedBrowserTabsForSessions, + createBrowserControlContext, + createBrowserRouteContext, + createBrowserRouteDispatcher, + createBrowserRuntimeState, + DEFAULT_AI_SNAPSHOT_MAX_CHARS, + DEFAULT_BROWSER_EVALUATE_ENABLED, + DEFAULT_OPENCLAW_BROWSER_COLOR, + DEFAULT_OPENCLAW_BROWSER_PROFILE_NAME, + DEFAULT_UPLOAD_DIR, + ensureBrowserControlAuth, + getBrowserControlState, + getBrowserProfileCapabilities, + installBrowserAuthMiddleware, + installBrowserCommonMiddleware, + isPersistentBrowserProfileMutation, + movePathToTrash, + normalizeBrowserFormField, + normalizeBrowserFormFieldValue, + normalizeBrowserRequestPath, + parseBrowserMajorVersion, + persistBrowserProxyFiles, + type ProfileStatus, + readBrowserVersion, + redactCdpUrl, + registerBrowserRoutes, + resolveBrowserConfig, + resolveBrowserControlAuth, + type ResolvedBrowserConfig, + type ResolvedBrowserProfile, + resolveExistingPathsWithinRoot, + resolveGoogleChromeExecutableForPlatform, + resolveProfile, + resolveRequestedBrowserProfile, + runBrowserProxyCommand, + type SnapshotResult, + startBrowserBridgeServer, + startBrowserControlServiceFromConfig, + stopBrowserBridgeServer, + stopBrowserControlService, + stopBrowserRuntime, + trackSessionBrowserTab, + untrackSessionBrowserTab, +} from "./src/browser-runtime.js"; export { registerBrowserCli } from "./src/cli/browser-cli.js"; export { createBrowserPluginService } from "./src/plugin-service.js"; export { handleBrowserGatewayRequest } from "./src/gateway/browser-request.js"; diff --git a/extensions/line/runtime-api.ts b/extensions/line/runtime-api.ts index 7bd5ff9394b..b40883ecbc0 100644 --- a/extensions/line/runtime-api.ts +++ b/extensions/line/runtime-api.ts @@ -48,28 +48,87 @@ export { } from "./src/send.js"; export { monitorLineProvider } from "./src/monitor.js"; export { hasLineDirectives, parseLineDirectives } from "./src/reply-payload-transform.js"; - -export * from "./src/accounts.js"; -export * from "./src/bot-access.js"; -export * from "./src/channel-access-token.js"; -export * from "./src/config-schema.js"; -export * from "./src/download.js"; -export * from "./src/group-keys.js"; -export * from "./src/markdown-to-line.js"; -export * from "./src/probe.js"; -export * from "./src/reply-payload-transform.js"; -export * from "./src/send.js"; -export * from "./src/signature.js"; -export * from "./src/template-messages.js"; +export { + listLineAccountIds, + normalizeAccountId, + resolveDefaultLineAccountId, + resolveLineAccount, +} from "./src/accounts.js"; +export { type NormalizedAllowFrom } from "./src/bot-access.js"; +export { resolveLineChannelAccessToken } from "./src/channel-access-token.js"; +export { + LineChannelConfigSchema, + LineConfigSchema, + type LineConfigSchemaType, +} from "./src/config-schema.js"; +export { + resolveExactLineGroupConfigKey, + resolveLineGroupConfigEntry, + resolveLineGroupLookupIds, + resolveLineGroupsConfig, +} from "./src/group-keys.js"; +export { + type CodeBlock, + convertCodeBlockToFlexBubble, + convertLinksToFlexBubble, + convertTableToFlexBubble, + extractCodeBlocks, + extractLinks, + extractMarkdownTables, + hasMarkdownToConvert, + type MarkdownLink, + type MarkdownTable, + type ProcessedLineMessage, + processLineMessage, + stripMarkdown, +} from "./src/markdown-to-line.js"; +export { + createAudioMessage, + createFlexMessage, + createImageMessage, + createLocationMessage, + createTextMessageWithQuickReplies, + createVideoMessage, + getUserDisplayName, + getUserProfile, + pushImageMessage, + replyMessageLine, + showLoadingAnimation, +} from "./src/send.js"; +export { validateLineSignature } from "./src/signature.js"; +export { + type ButtonsTemplate, + type CarouselColumn, + type CarouselTemplate, + type ConfirmTemplate, + createButtonMenu, + createButtonTemplate, + createCarouselColumn, + createConfirmTemplate, + createImageCarousel, + createImageCarouselColumn, + createLinkMenu, + createProductCarousel, + createTemplateCarousel, + createYesNoConfirm, + type ImageCarouselColumn, + type ImageCarouselTemplate, + type TemplateMessage, +} from "./src/template-messages.js"; export type { LineChannelData, LineConfig, LineProbeResult, ResolvedLineAccount, } from "./src/types.js"; -export * from "./src/webhook-node.js"; -export * from "./src/webhook.js"; -export * from "./src/webhook-utils.js"; +export { createLineNodeWebhookHandler, readLineWebhookRequestBody } from "./src/webhook-node.js"; +export { + createLineWebhookMiddleware, + type LineWebhookOptions, + startLineWebhook, + type StartLineWebhookOptions, +} from "./src/webhook.js"; +export { parseLineWebhookBody } from "./src/webhook-utils.js"; export { datetimePickerAction, messageAction, postbackAction, uriAction } from "./src/actions.js"; export type { Action } from "./src/actions.js"; export { diff --git a/extensions/matrix/runtime-api.ts b/extensions/matrix/runtime-api.ts index 4ff094f29ed..74bfcc64c26 100644 --- a/extensions/matrix/runtime-api.ts +++ b/extensions/matrix/runtime-api.ts @@ -1,14 +1,33 @@ -// Keep the external runtime API light so Jiti callers can resolve Matrix config -// helpers without traversing the full plugin-sdk/runtime graph or bootstrapping -// matrix-js-sdk during plain runtime-api import. -export * from "./src/auth-precedence.js"; +export { + type MatrixResolvedStringField, + type MatrixResolvedStringValues, + resolveMatrixAccountStringValues, +} from "./src/auth-precedence.js"; export { requiresExplicitMatrixDefaultAccount, resolveMatrixDefaultOrOnlyAccountId, } from "./src/account-selection.js"; -export * from "./src/account-selection.js"; -export * from "./src/env-vars.js"; -export * from "./src/storage-paths.js"; +export { + findMatrixAccountEntry, + resolveConfiguredMatrixAccountIds, + resolveMatrixChannelConfig, +} from "./src/account-selection.js"; +export { + getMatrixScopedEnvVarNames, + listMatrixEnvAccountIds, + resolveMatrixEnvAccountToken, +} from "./src/env-vars.js"; +export { + hashMatrixAccessToken, + resolveMatrixAccountStorageRoot, + resolveMatrixCredentialsDir, + resolveMatrixCredentialsFilename, + resolveMatrixCredentialsPath, + resolveMatrixHomeserverKey, + resolveMatrixLegacyFlatStoragePaths, + resolveMatrixLegacyFlatStoreRoot, + sanitizeMatrixPathSegment, +} from "./src/storage-paths.js"; export { ensureMatrixSdkInstalled, isMatrixSdkAvailable } from "./src/matrix/deps.js"; export { assertHttpUrlTargetsPrivateNetwork, diff --git a/extensions/matrix/src/approval-handler.runtime.test.ts b/extensions/matrix/src/approval-handler.runtime.test.ts index 8ef5a537664..f0a2c16b07e 100644 --- a/extensions/matrix/src/approval-handler.runtime.test.ts +++ b/extensions/matrix/src/approval-handler.runtime.test.ts @@ -70,10 +70,16 @@ describe("matrixApprovalNativeRuntime", () => { }, request: {} as never, approvalKind: "exec", + plannedTarget: { + surface: "approver-dm", + target: { to: "room:!room:example.org" }, + reason: "preferred", + } as never, preparedTarget: { to: "room:!room:example.org", roomId: "!room:example.org", }, + view: {} as never, pendingPayload, }); @@ -216,10 +222,16 @@ describe("matrixApprovalNativeRuntime", () => { }, request: {} as never, approvalKind: "exec", + plannedTarget: { + surface: "approver-dm", + target: { to: "room:!room:example.org" }, + reason: "preferred", + } as never, preparedTarget: { to: "room:!room:example.org", roomId: "!room:example.org", }, + view: {} as never, pendingPayload, }); diff --git a/extensions/mattermost/src/runtime-api.ts b/extensions/mattermost/src/runtime-api.ts index ece735819df..816324d16cb 100644 --- a/extensions/mattermost/src/runtime-api.ts +++ b/extensions/mattermost/src/runtime-api.ts @@ -1 +1,69 @@ -export * from "../runtime-api.js"; +export { + applyAccountNameToChannelSection, + applySetupAccountConfigPatch, + type BaseProbeResult, + type BlockStreamingCoalesceConfig, + buildAgentMediaPayload, + buildChannelConfigSchema, + buildComputedAccountStatusSnapshot, + buildModelsProviderData, + buildPendingHistoryContextFromMap, + type ChannelAccountSnapshot, + type ChannelDirectoryEntry, + type ChannelGroupContext, + type ChannelMessageActionName, + type ChannelPlugin, + type ChatType, + chunkTextForOutbound, + clearHistoryEntriesIfEnabled, + createAccountStatusSink, + createChannelPairingController, + createChannelReplyPipeline, + createDedupeCache, + DEFAULT_ACCOUNT_ID, + DEFAULT_GROUP_HISTORY_LIMIT, + DM_GROUP_ACCESS_REASON, + type DmPolicy, + evaluateSenderGroupAccessForPolicy, + formatInboundFromLabel, + getAgentScopedMediaLocalRoots, + GROUP_POLICY_BLOCKED_LABEL, + type GroupPolicy, + type HistoryEntry, + isDangerousNameMatchingEnabled, + isRequestBodyLimitError, + isTrustedProxyAddress, + listSkillCommandsForAgents, + loadOutboundMediaFromUrl, + loadSessionStore, + logInboundDrop, + logTypingFailure, + migrateBaseNameToDefaultAccount, + type ModelsProviderData, + normalizeAccountId, + normalizeProviderId, + type OpenClawConfig, + type OpenClawPluginApi, + parseStrictPositiveInteger, + type PluginRuntime, + rawDataToString, + readRequestBodyWithLimit, + readStoreAllowFromForDmPolicy, + recordPendingHistoryEntryIfEnabled, + registerPluginHttpRoute, + type ReplyPayload, + resolveAllowlistMatchSimple, + resolveAllowlistProviderRuntimeGroupPolicy, + resolveChannelMediaMaxBytes, + resolveClientIp, + resolveControlCommandGate, + resolveDefaultGroupPolicy, + resolveDmGroupAccessWithLists, + resolveEffectiveAllowFromLists, + resolveStoredModelOverride, + resolveStorePath, + resolveThreadSessionKeys, + type RuntimeEnv, + setMattermostRuntime, + warnMissingProviderGroupPolicyFallbackOnce, +} from "../runtime-api.js"; diff --git a/extensions/qa-channel/runtime-api.ts b/extensions/qa-channel/runtime-api.ts index 84cbd4e09d3..370636999e2 100644 --- a/extensions/qa-channel/runtime-api.ts +++ b/extensions/qa-channel/runtime-api.ts @@ -1,3 +1,21 @@ -export * from "./src/runtime-api.js"; +export { + buildChannelConfigSchema, + buildChannelOutboundSessionRoute, + type ChannelGatewayContext, + type ChannelMessageActionAdapter, + type ChannelMessageActionName, + type ChannelPlugin, + createChatChannelPlugin, + createComputedAccountStatusAdapter, + createDefaultChannelRuntimeState, + createPluginRuntimeStore, + defineChannelPluginEntry, + dispatchInboundReplyWithBase, + getChatChannelMeta, + jsonResult, + type OpenClawConfig, + type PluginRuntime, + readStringParam, + type RuntimeEnv, +} from "./src/runtime-api.js"; export { getQaChannelRuntime, setQaChannelRuntime } from "./src/runtime.js"; -export * from "./src/runtime.js"; diff --git a/extensions/qa-lab/runtime-api.ts b/extensions/qa-lab/runtime-api.ts index 0d61dc0b7b9..098c3c56340 100644 --- a/extensions/qa-lab/runtime-api.ts +++ b/extensions/qa-lab/runtime-api.ts @@ -1,2 +1,41 @@ -export * from "./src/runtime-api.js"; +export { + buildQaTarget, + callGatewayFromCli, + Command, + createQaBusThread, + defaultQaRuntimeModelForMode, + definePluginEntry, + deleteQaBusMessage, + editQaBusMessage, + getQaBusState, + injectQaBusInboundMessage, + normalizeQaTarget, + type OpenClawConfig, + parseQaTarget, + type PluginRuntime, + pollQaBus, + type QaBusAttachment, + type QaBusConversation, + type QaBusCreateThreadInput, + type QaBusDeleteMessageInput, + type QaBusEditMessageInput, + type QaBusEvent, + type QaBusInboundMessageInput, + type QaBusMessage, + type QaBusOutboundMessageInput, + type QaBusPollInput, + type QaBusPollResult, + type QaBusReactToMessageInput, + type QaBusReadMessageInput, + type QaBusSearchMessagesInput, + type QaBusStateSnapshot, + type QaBusThread, + type QaBusWaitForInput, + qaChannelPlugin, + reactToQaBusMessage, + readQaBusMessage, + searchQaBusMessages, + sendQaBusMessage, + setQaChannelRuntime, +} from "./src/runtime-api.js"; export { startQaLiveLaneGateway } from "./src/live-transports/shared/live-gateway.runtime.js"; diff --git a/extensions/signal/runtime-api.ts b/extensions/signal/runtime-api.ts index e0552014446..368f3537966 100644 --- a/extensions/signal/runtime-api.ts +++ b/extensions/signal/runtime-api.ts @@ -1,2 +1,48 @@ -export * from "./src/runtime-api.js"; +export { + applyAccountNameToChannelSection, + buildBaseAccountStatusSnapshot, + buildBaseChannelStatusSummary, + buildChannelConfigSchema, + type ChannelMessageActionAdapter, + type ChannelPlugin, + chunkText, + collectStatusIssuesFromLastError, + createDefaultChannelRuntimeState, + DEFAULT_ACCOUNT_ID, + deleteAccountFromConfigSection, + detectBinary, + emptyPluginConfigSchema, + formatCliCommand, + formatDocsLink, + formatPairingApproveHint, + getChatChannelMeta, + installSignalCli, + listEnabledSignalAccounts, + listSignalAccountIds, + looksLikeSignalTargetId, + migrateBaseNameToDefaultAccount, + monitorSignalProvider, + normalizeAccountId, + normalizeE164, + normalizeSignalMessagingTarget, + type OpenClawConfig, + type OpenClawPluginApi, + PAIRING_APPROVED_MESSAGE, + type PluginRuntime, + probeSignal, + removeReactionSignal, + resolveAllowlistProviderRuntimeGroupPolicy, + resolveChannelMediaMaxBytes, + resolveDefaultGroupPolicy, + resolveDefaultSignalAccountId, + type ResolvedSignalAccount, + resolveSignalAccount, + resolveSignalReactionLevel, + sendMessageSignal, + sendReactionSignal, + setAccountEnabledInConfigSection, + type SignalAccountConfig, + SignalConfigSchema, + signalMessageActions, +} from "./src/runtime-api.js"; export { setSignalRuntime } from "./src/runtime.js"; diff --git a/extensions/zalo/runtime-api.ts b/extensions/zalo/runtime-api.ts index 5eebd3b2a0f..b49e978fd6c 100644 --- a/extensions/zalo/runtime-api.ts +++ b/extensions/zalo/runtime-api.ts @@ -1,4 +1,75 @@ -// Private runtime barrel for the bundled Zalo extension. -// Keep this barrel thin and free of channel plugin exports so direct runtime -// imports do not re-enter the full channel/setup surface. -export * from "./src/runtime-api.js"; +export { + addWildcardAllowFrom, + applyAccountNameToChannelSection, + applyBasicWebhookRequestGuards, + applySetupAccountConfigPatch, + type BaseProbeResult, + type BaseTokenResolution, + buildBaseAccountStatusSnapshot, + buildChannelConfigSchema, + buildSecretInputSchema, + buildSingleChannelSecretPromptState, + buildTokenChannelStatusSummary, + type ChannelAccountSnapshot, + type ChannelMessageActionAdapter, + type ChannelMessageActionName, + type ChannelPlugin, + type ChannelStatusIssue, + chunkTextForOutbound, + createChannelPairingController, + createChannelReplyPipeline, + createDedupeCache, + createFixedWindowRateLimiter, + createWebhookAnomalyTracker, + DEFAULT_ACCOUNT_ID, + deliverTextOrMediaReply, + evaluateSenderGroupAccess, + formatAllowFromLowercase, + formatPairingApproveHint, + type GroupPolicy, + hasConfiguredSecretInput, + isNormalizedSenderAllowed, + isNumericTargetId, + jsonResult, + logTypingFailure, + type MarkdownTableMode, + mergeAllowFromEntries, + migrateBaseNameToDefaultAccount, + normalizeAccountId, + normalizeResolvedSecretInputString, + normalizeSecretInputString, + type OpenClawConfig, + type OutboundReplyPayload, + PAIRING_APPROVED_MESSAGE, + type PluginRuntime, + promptSingleChannelSecretInput, + readJsonWebhookBodyOrReject, + readStringParam, + registerPluginHttpRoute, + type RegisterWebhookPluginRouteOptions, + registerWebhookTarget, + type RegisterWebhookTargetOptions, + registerWebhookTargetWithPluginRoute, + type ReplyPayload, + resolveClientIp, + resolveDefaultGroupPolicy, + resolveDirectDmAuthorizationOutcome, + resolveInboundRouteEnvelopeBuilderWithRuntime, + resolveOpenProviderRuntimeGroupPolicy, + resolveSenderCommandAuthorizationWithRuntime, + resolveWebhookPath, + resolveWebhookTargetWithAuthOrRejectSync, + runSingleChannelSecretStep, + type RuntimeEnv, + type SecretInput, + type SenderGroupAccessDecision, + sendPayloadWithChunkedTextAndMedia, + setTopLevelChannelDmPolicyWithAllowFrom, + setZaloRuntime, + waitForAbortSignal, + warnMissingProviderGroupPolicyFallbackOnce, + WEBHOOK_ANOMALY_COUNTER_DEFAULTS, + WEBHOOK_RATE_LIMIT_DEFAULTS, + withResolvedWebhookRequestPipeline, + type WizardPrompter, +} from "./src/runtime-api.js"; diff --git a/extensions/zalo/src/runtime-api.ts b/extensions/zalo/src/runtime-api.ts index 3513e9690ec..b28d9ec2d93 100644 --- a/extensions/zalo/src/runtime-api.ts +++ b/extensions/zalo/src/runtime-api.ts @@ -1,5 +1,75 @@ -// Internal runtime barrel. Keep this independent from the public top-level -// runtime barrel so local imports do not loop back through the plugin export -// surface during entry loading. -export * from "./runtime-support.js"; +export { + addWildcardAllowFrom, + applyAccountNameToChannelSection, + applyBasicWebhookRequestGuards, + applySetupAccountConfigPatch, + type BaseProbeResult, + type BaseTokenResolution, + buildBaseAccountStatusSnapshot, + buildChannelConfigSchema, + buildSecretInputSchema, + buildSingleChannelSecretPromptState, + buildTokenChannelStatusSummary, + type ChannelAccountSnapshot, + type ChannelMessageActionAdapter, + type ChannelMessageActionName, + type ChannelPlugin, + type ChannelStatusIssue, + chunkTextForOutbound, + createChannelPairingController, + createChannelReplyPipeline, + createDedupeCache, + createFixedWindowRateLimiter, + createWebhookAnomalyTracker, + DEFAULT_ACCOUNT_ID, + deliverTextOrMediaReply, + evaluateSenderGroupAccess, + formatAllowFromLowercase, + formatPairingApproveHint, + type GroupPolicy, + hasConfiguredSecretInput, + isNormalizedSenderAllowed, + isNumericTargetId, + jsonResult, + logTypingFailure, + type MarkdownTableMode, + mergeAllowFromEntries, + migrateBaseNameToDefaultAccount, + normalizeAccountId, + normalizeResolvedSecretInputString, + normalizeSecretInputString, + type OpenClawConfig, + type OutboundReplyPayload, + PAIRING_APPROVED_MESSAGE, + type PluginRuntime, + promptSingleChannelSecretInput, + readJsonWebhookBodyOrReject, + readStringParam, + registerPluginHttpRoute, + type RegisterWebhookPluginRouteOptions, + registerWebhookTarget, + type RegisterWebhookTargetOptions, + registerWebhookTargetWithPluginRoute, + type ReplyPayload, + resolveClientIp, + resolveDefaultGroupPolicy, + resolveDirectDmAuthorizationOutcome, + resolveInboundRouteEnvelopeBuilderWithRuntime, + resolveOpenProviderRuntimeGroupPolicy, + resolveSenderCommandAuthorizationWithRuntime, + resolveWebhookPath, + resolveWebhookTargetWithAuthOrRejectSync, + runSingleChannelSecretStep, + type RuntimeEnv, + type SecretInput, + type SenderGroupAccessDecision, + sendPayloadWithChunkedTextAndMedia, + setTopLevelChannelDmPolicyWithAllowFrom, + waitForAbortSignal, + warnMissingProviderGroupPolicyFallbackOnce, + WEBHOOK_ANOMALY_COUNTER_DEFAULTS, + WEBHOOK_RATE_LIMIT_DEFAULTS, + withResolvedWebhookRequestPipeline, + type WizardPrompter, +} from "./runtime-support.js"; export { setZaloRuntime } from "./runtime.js"; diff --git a/extensions/zalouser/runtime-api.ts b/extensions/zalouser/runtime-api.ts index 715c86a5887..e1de9b6d4a4 100644 --- a/extensions/zalouser/runtime-api.ts +++ b/extensions/zalouser/runtime-api.ts @@ -1,7 +1,13 @@ -// Private runtime barrel for the bundled Zalo Personal extension. -// Keep this barrel thin and aligned with the local extension surface. - -export * from "./api.js"; +export { + collectZalouserSecurityAuditFindings, + createZalouserSetupWizardProxy, + createZalouserTool, + isZalouserMutableGroupEntry, + zalouserPlugin, + zalouserSetupAdapter, + zalouserSetupPlugin, + zalouserSetupWizard, +} from "./api.js"; export { setZalouserRuntime } from "./src/runtime.js"; export type { ReplyPayload } from "openclaw/plugin-sdk/reply-runtime"; export type { diff --git a/src/plugins/contracts/plugin-sdk-runtime-api-guardrails.test.ts b/src/plugins/contracts/plugin-sdk-runtime-api-guardrails.test.ts index 582d975baae..cbe932b4d0e 100644 --- a/src/plugins/contracts/plugin-sdk-runtime-api-guardrails.test.ts +++ b/src/plugins/contracts/plugin-sdk-runtime-api-guardrails.test.ts @@ -117,11 +117,11 @@ const RUNTIME_API_EXPORT_GUARDS: Record = { 'export { setIrcRuntime } from "./src/runtime.js";', ], [bundledPluginFile({ rootDir: ROOT_DIR, pluginId: "matrix", relativePath: "runtime-api.ts" })]: [ - 'export * from "./src/auth-precedence.js";', + 'export { type MatrixResolvedStringField, type MatrixResolvedStringValues, resolveMatrixAccountStringValues } from "./src/auth-precedence.js";', 'export { requiresExplicitMatrixDefaultAccount, resolveMatrixDefaultOrOnlyAccountId } from "./src/account-selection.js";', - 'export * from "./src/account-selection.js";', - 'export * from "./src/env-vars.js";', - 'export * from "./src/storage-paths.js";', + 'export { findMatrixAccountEntry, resolveConfiguredMatrixAccountIds, resolveMatrixChannelConfig } from "./src/account-selection.js";', + 'export { getMatrixScopedEnvVarNames, listMatrixEnvAccountIds, resolveMatrixEnvAccountToken } from "./src/env-vars.js";', + 'export { hashMatrixAccessToken, resolveMatrixAccountStorageRoot, resolveMatrixCredentialsDir, resolveMatrixCredentialsFilename, resolveMatrixCredentialsPath, resolveMatrixHomeserverKey, resolveMatrixLegacyFlatStoragePaths, resolveMatrixLegacyFlatStoreRoot, sanitizeMatrixPathSegment } from "./src/storage-paths.js";', 'export { ensureMatrixSdkInstalled, isMatrixSdkAvailable } from "./src/matrix/deps.js";', 'export { assertHttpUrlTargetsPrivateNetwork, closeDispatcher, createPinnedDispatcher, resolvePinnedHostnameWithPolicy, ssrfPolicyFromDangerouslyAllowPrivateNetwork, ssrfPolicyFromAllowPrivateNetwork, type LookupFn, type SsrFPolicy } from "openclaw/plugin-sdk/ssrf-runtime";', 'export { setMatrixThreadBindingIdleTimeoutBySessionKey, setMatrixThreadBindingMaxAgeBySessionKey } from "./src/matrix/thread-bindings-shared.js";', @@ -162,7 +162,7 @@ const RUNTIME_API_EXPORT_GUARDS: Record = { 'export type { PluginRuntime } from "openclaw/plugin-sdk/runtime-store";', ], [bundledPluginFile({ rootDir: ROOT_DIR, pluginId: "signal", relativePath: "runtime-api.ts" })]: [ - 'export * from "./src/runtime-api.js";', + 'export { applyAccountNameToChannelSection, buildBaseAccountStatusSnapshot, buildBaseChannelStatusSummary, buildChannelConfigSchema, type ChannelMessageActionAdapter, type ChannelPlugin, chunkText, collectStatusIssuesFromLastError, createDefaultChannelRuntimeState, DEFAULT_ACCOUNT_ID, deleteAccountFromConfigSection, detectBinary, emptyPluginConfigSchema, formatCliCommand, formatDocsLink, formatPairingApproveHint, getChatChannelMeta, installSignalCli, listEnabledSignalAccounts, listSignalAccountIds, looksLikeSignalTargetId, migrateBaseNameToDefaultAccount, monitorSignalProvider, normalizeAccountId, normalizeE164, normalizeSignalMessagingTarget, type OpenClawConfig, type OpenClawPluginApi, PAIRING_APPROVED_MESSAGE, type PluginRuntime, probeSignal, removeReactionSignal, resolveAllowlistProviderRuntimeGroupPolicy, resolveChannelMediaMaxBytes, resolveDefaultGroupPolicy, resolveDefaultSignalAccountId, type ResolvedSignalAccount, resolveSignalAccount, resolveSignalReactionLevel, sendMessageSignal, sendReactionSignal, setAccountEnabledInConfigSection, type SignalAccountConfig, SignalConfigSchema, signalMessageActions } from "./src/runtime-api.js";', 'export { setSignalRuntime } from "./src/runtime.js";', ], [bundledPluginFile({ rootDir: ROOT_DIR, pluginId: "slack", relativePath: "runtime-api.ts" })]: [