refactor: pin remaining extension api surfaces

This commit is contained in:
Peter Steinberger
2026-04-27 21:02:20 +01:00
parent 221bfc8929
commit e9b1fbb8c4
28 changed files with 541 additions and 90 deletions

View File

@@ -1,2 +1,2 @@
f826635804fdc28fb6e1725f1c9d7e6aa8486a9085262496445885ad246860f8 plugin-sdk-api-baseline.json
0467fa5b0ce4060d7e45d5cb76c50136a0923ce19fda3550317d7734124f8af8 plugin-sdk-api-baseline.jsonl
eab8d67d3601d697253d2cc265ea3b18c719a0fa8ca6e983bf1edcd38b9382e7 plugin-sdk-api-baseline.json
8c7e737467cb84d3a1c80c677cb94b26fe4d5739d154245c48d744aef80f53f8 plugin-sdk-api-baseline.jsonl

View File

@@ -257,7 +257,7 @@ For the plugin authoring guide, see [Plugin SDK overview](/plugins/sdk-overview)
| `plugin-sdk/webhook-path` | Webhook path normalization helpers |
| `plugin-sdk/web-media` | Shared remote/local media loading helpers |
| `plugin-sdk/zod` | Re-exported `zod` for plugin SDK consumers |
| `plugin-sdk/testing` | `installCommonResolveTargetErrorCases`, `shouldAckReaction` |
| `plugin-sdk/testing` | Public extension test helpers including `installCommonResolveTargetErrorCases`, `shouldAckReaction`, `writeSkill`, `createTestRegistry`, and live generation env loading |
</Accordion>
<Accordion title="Memory subpaths">

View File

@@ -1,7 +1,15 @@
export { bluebubblesPlugin } from "./src/channel.js";
export { bluebubblesSetupPlugin } from "./src/channel.setup.js";
export * from "./src/conversation-id.js";
export * from "./src/conversation-bindings.js";
export {
matchBlueBubblesAcpConversation,
normalizeBlueBubblesAcpConversationId,
resolveBlueBubblesConversationIdFromTarget,
resolveBlueBubblesInboundConversationId,
} from "./src/conversation-id.js";
export {
__testing,
createBlueBubblesConversationBindingManager,
} from "./src/conversation-bindings.js";
export { collectBlueBubblesStatusIssues } from "./src/status-issues.js";
export {
resolveBlueBubblesGroupRequireMention,

View File

@@ -1,7 +1,9 @@
import {
parsePluginBindingApprovalCustomId,
resolvePinnedMainDmOwnerFromAllowlist,
} from "openclaw/plugin-sdk/conversation-runtime";
import { isSingleUseReplyToMode } from "openclaw/plugin-sdk/reply-reference";
import { vi, type Mock } from "vitest";
import { parsePluginBindingApprovalCustomId } from "../../../../src/plugins/conversation-binding.js";
import { resolvePinnedMainDmOwnerFromAllowlist } from "../../../../src/security/dm-policy-shared.js";
type UnknownMock = Mock<(...args: unknown[]) => unknown>;
type AsyncUnknownMock = Mock<(...args: unknown[]) => Promise<unknown>>;

View File

@@ -10,10 +10,21 @@ export {
handleFeishuSubagentEnded,
handleFeishuSubagentSpawning,
} from "./src/subagent-hooks.js";
export * from "./src/conversation-id.js";
export * from "./src/setup-core.js";
export * from "./src/setup-surface.js";
export * from "./src/thread-bindings.js";
export {
buildFeishuConversationId,
buildFeishuModelOverrideParentCandidates,
type FeishuGroupSessionScope,
parseFeishuConversationId,
parseFeishuDirectConversationId,
parseFeishuTargetId,
} from "./src/conversation-id.js";
export { feishuSetupAdapter, setFeishuNamedAccountEnabled } from "./src/setup-core.js";
export { feishuSetupWizard, runFeishuLogin } from "./src/setup-surface.js";
export {
__testing,
createFeishuThreadBindingManager,
getFeishuThreadBindingManager,
} from "./src/thread-bindings.js";
export { __testing as feishuThreadBindingTesting } from "./src/thread-bindings.js";
export { createClackPrompter } from "openclaw/plugin-sdk/setup-runtime";

View File

@@ -1,3 +1,3 @@
export { googlechatPlugin } from "./src/channel.js";
export * from "./src/setup-core.js";
export * from "./src/setup-surface.js";
export { googlechatSetupAdapter } from "./src/setup-core.js";
export { googlechatSetupWizard } from "./src/setup-surface.js";

View File

@@ -1,11 +1,57 @@
export { imessagePlugin } from "./src/channel.js";
export { imessageSetupPlugin } from "./src/channel.setup.js";
export * from "./src/accounts.js";
export * from "./src/conversation-bindings.js";
export * from "./src/conversation-id.js";
export * from "./src/group-policy.js";
export {
listEnabledIMessageAccounts,
listIMessageAccountIds,
resolveDefaultIMessageAccountId,
type ResolvedIMessageAccount,
resolveIMessageAccount,
} from "./src/accounts.js";
export {
__testing,
createIMessageConversationBindingManager,
} from "./src/conversation-bindings.js";
export {
matchIMessageAcpConversation,
normalizeIMessageAcpConversationId,
resolveIMessageConversationIdFromTarget,
resolveIMessageInboundConversationId,
} from "./src/conversation-id.js";
export {
resolveIMessageGroupRequireMention,
resolveIMessageGroupToolPolicy,
} from "./src/group-policy.js";
export { looksLikeIMessageTargetId, normalizeIMessageMessagingTarget } from "./src/normalize.js";
export { IMESSAGE_LEGACY_OUTBOUND_SEND_DEP_KEYS } from "./src/outbound-send-deps.js";
export * from "./src/probe.js";
export * from "./src/target-parsing-helpers.js";
export * from "./src/targets.js";
export {
DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS,
type IMessageProbe,
type IMessageProbeOptions,
probeIMessage,
} from "./src/probe.js";
export {
type ChatSenderAllowParams,
type ChatTargetPrefixesParams,
createAllowedChatSenderMatcher,
parseChatAllowTargetPrefixes,
parseChatTargetPrefixesOrThrow,
type ParsedChatAllowTarget,
type ParsedChatTarget,
resolveServicePrefixedAllowTarget,
resolveServicePrefixedChatTarget,
resolveServicePrefixedOrChatAllowTarget,
resolveServicePrefixedTarget,
type ServicePrefix,
} from "./src/target-parsing-helpers.js";
export {
formatIMessageChatTarget,
type IMessageAllowTarget,
type IMessageService,
type IMessageTarget,
inferIMessageTargetChatType,
isAllowedIMessageSender,
looksLikeIMessageExplicitTargetId,
normalizeIMessageHandle,
parseIMessageAllowTarget,
parseIMessageTarget,
} from "./src/targets.js";

View File

@@ -1,4 +1,10 @@
export { ircPlugin } from "./src/channel.js";
export { setIrcRuntime } from "./src/runtime.js";
export * from "./src/accounts.js";
export * from "./src/setup-surface.js";
export {
listEnabledIrcAccounts,
listIrcAccountIds,
resolveDefaultIrcAccountId,
type ResolvedIrcAccount,
resolveIrcAccount,
} from "./src/accounts.js";
export { ircSetupAdapter, ircSetupWizard } from "./src/setup-surface.js";

View File

@@ -1,4 +1,4 @@
export * from "./src/runtime-api.js";
export { resolvePreferredOpenClawTmpDir } from "./src/runtime-api.js";
export {
definePluginEntry,
type AnyAgentTool,

View File

@@ -1 +1,36 @@
export * from "./src/api.js";
export {
buildLmstudioAuthHeaders,
buildLmstudioModelName,
configureLmstudioNonInteractive,
discoverLmstudioProvider,
LMSTUDIO_DEFAULT_API_KEY_ENV_VAR,
LMSTUDIO_DEFAULT_BASE_URL,
LMSTUDIO_DEFAULT_EMBEDDING_MODEL,
LMSTUDIO_DEFAULT_INFERENCE_BASE_URL,
LMSTUDIO_DEFAULT_LOAD_CONTEXT_LENGTH,
LMSTUDIO_DEFAULT_MODEL_ID,
LMSTUDIO_DOCKER_HOST_BASE_URL,
LMSTUDIO_DOCKER_HOST_INFERENCE_BASE_URL,
LMSTUDIO_LOCAL_API_KEY_PLACEHOLDER,
LMSTUDIO_MODEL_PLACEHOLDER,
LMSTUDIO_PROVIDER_ID,
LMSTUDIO_PROVIDER_LABEL,
type LmstudioModelBase,
type LmstudioModelWire,
mapLmstudioWireEntry,
mapLmstudioWireModelsToConfig,
normalizeLmstudioConfiguredCatalogEntries,
normalizeLmstudioConfiguredCatalogEntry,
normalizeLmstudioProviderConfig,
prepareLmstudioDynamicModels,
promptAndConfigureLmstudioInteractive,
resolveLmstudioConfiguredApiKey,
resolveLmstudioInferenceBase,
resolveLmstudioProviderHeaders,
resolveLmstudioReasoningCapability,
resolveLmstudioReasoningCompat,
resolveLmstudioRequestContext,
resolveLmstudioRuntimeApiKey,
resolveLmstudioServerBase,
resolveLoadedContextWindow,
} from "./src/api.js";

View File

@@ -1,4 +1,42 @@
export * from "./defaults.js";
export * from "./models.js";
export * from "./runtime.js";
export * from "./setup.js";
export {
LMSTUDIO_DEFAULT_API_KEY_ENV_VAR,
LMSTUDIO_DEFAULT_BASE_URL,
LMSTUDIO_DEFAULT_EMBEDDING_MODEL,
LMSTUDIO_DEFAULT_INFERENCE_BASE_URL,
LMSTUDIO_DEFAULT_LOAD_CONTEXT_LENGTH,
LMSTUDIO_DEFAULT_MODEL_ID,
LMSTUDIO_DOCKER_HOST_BASE_URL,
LMSTUDIO_DOCKER_HOST_INFERENCE_BASE_URL,
LMSTUDIO_LOCAL_API_KEY_PLACEHOLDER,
LMSTUDIO_MODEL_PLACEHOLDER,
LMSTUDIO_PROVIDER_ID,
LMSTUDIO_PROVIDER_LABEL,
} from "./defaults.js";
export {
buildLmstudioModelName,
type LmstudioModelBase,
type LmstudioModelWire,
mapLmstudioWireEntry,
mapLmstudioWireModelsToConfig,
normalizeLmstudioConfiguredCatalogEntries,
normalizeLmstudioConfiguredCatalogEntry,
normalizeLmstudioProviderConfig,
resolveLmstudioInferenceBase,
resolveLmstudioReasoningCapability,
resolveLmstudioReasoningCompat,
resolveLmstudioServerBase,
resolveLoadedContextWindow,
} from "./models.js";
export {
buildLmstudioAuthHeaders,
resolveLmstudioConfiguredApiKey,
resolveLmstudioProviderHeaders,
resolveLmstudioRequestContext,
resolveLmstudioRuntimeApiKey,
} from "./runtime.js";
export {
configureLmstudioNonInteractive,
discoverLmstudioProvider,
prepareLmstudioDynamicModels,
promptAndConfigureLmstudioInteractive,
} from "./setup.js";

View File

@@ -1,9 +1,29 @@
export { matrixPlugin } from "./src/channel.js";
export * from "./src/setup-core.js";
export * from "./src/setup-surface.js";
export * from "./src/account-selection.js";
export * from "./src/env-vars.js";
export * from "./src/storage-paths.js";
export { createMatrixSetupWizardProxy, matrixSetupAdapter } from "./src/setup-core.js";
export { matrixOnboardingAdapter } from "./src/setup-surface.js";
export {
findMatrixAccountEntry,
requiresExplicitMatrixDefaultAccount,
resolveConfiguredMatrixAccountIds,
resolveMatrixChannelConfig,
resolveMatrixDefaultOrOnlyAccountId,
} 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 {
createMatrixThreadBindingManager,
getMatrixThreadBindingManager,

View File

@@ -1,8 +1,10 @@
export {
registerSessionBindingAdapter,
__testing,
} from "../../../../src/infra/outbound/session-binding-service.js";
export { setActivePluginRegistry } from "../../../../src/plugins/runtime.js";
export { resolveAgentRoute } from "../../../../src/routing/resolve-route.js";
export { createTestRegistry } from "../../../../src/test-utils/channel-plugins.js";
export type { OpenClawConfig } from "../../../../src/config/config.js";
} from "openclaw/plugin-sdk/session-binding-runtime";
export { resolveAgentRoute } from "openclaw/plugin-sdk/routing";
export {
createTestRegistry,
setActivePluginRegistry,
type OpenClawConfig,
} from "openclaw/plugin-sdk/testing";

View File

@@ -1,3 +1,3 @@
export { msteamsPlugin } from "./src/channel.js";
export * from "./src/setup-core.js";
export * from "./src/setup-surface.js";
export { createMSTeamsSetupWizardBase, msteamsSetupAdapter } from "./src/setup-core.js";
export { msteamsSetupWizard, openDelegatedOAuthUrl } from "./src/setup-surface.js";

View File

@@ -1,4 +1,8 @@
export * from "./runtime-api.js";
export {
getPluginRuntimeGatewayRequestScope,
type OpenClawConfig,
type PluginRuntime,
} from "./runtime-api.js";
export { nostrPlugin } from "./src/channel.js";
export { createNostrProfileHttpHandler } from "./src/nostr-profile-http.js";
export { getNostrRuntime, setNostrRuntime } from "./src/runtime.js";

View File

@@ -1,5 +1,44 @@
export * from "./src/accounts.js";
export * from "./src/channel.js";
export * from "./src/channel-actions.js";
export * from "./src/runtime.js";
export * from "./test-api.js";
export {
DEFAULT_ACCOUNT_ID,
listEnabledQaChannelAccounts,
listQaChannelAccountIds,
resolveDefaultQaChannelAccountId,
type ResolvedQaChannelAccount,
resolveQaChannelAccount,
} from "./src/accounts.js";
export { qaChannelPlugin } from "./src/channel.js";
export { qaChannelMessageActions } from "./src/channel-actions.js";
export { getQaChannelRuntime, setQaChannelRuntime } from "./src/runtime.js";
export {
buildQaTarget,
createQaBusThread,
deleteQaBusMessage,
editQaBusMessage,
getQaBusState,
injectQaBusInboundMessage,
normalizeQaTarget,
parseQaTarget,
pollQaBus,
type QaBusAttachment,
type QaBusConversation,
type QaBusConversationKind,
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,
reactToQaBusMessage,
readQaBusMessage,
searchQaBusMessages,
sendQaBusMessage,
} from "./test-api.js";

View File

@@ -1,19 +1,104 @@
export * from "./src/bus-queries.js";
export * from "./src/bus-server.js";
export * from "./src/bus-state.js";
export * from "./src/bus-waiters.js";
export * from "./src/cli.js";
export * from "./src/harness-runtime.js";
export * from "./src/lab-server.js";
export * from "./src/docker-harness.js";
export * from "./src/qa-agent-bootstrap.js";
export * from "./src/qa-agent-workspace.js";
export * from "./src/qa-gateway-config.js";
export * from "./src/report.js";
export * from "./src/scenario.js";
export * from "./src/scenario-catalog.js";
export * from "./src/self-check-scenario.js";
export * from "./src/self-check.js";
export * from "./src/self-check-runner.js";
export * from "./src/gateway-child.js";
export * from "./src/suite.js";
export {
buildQaBusSnapshot,
cloneEvent,
cloneMessage,
DEFAULT_ACCOUNT_ID,
normalizeAccountId,
normalizeConversationFromTarget,
pollQaBusEvents,
readQaBusMessage,
searchQaBusMessages,
} from "./src/bus-queries.js";
export {
closeQaHttpServer,
createQaBusServer,
handleQaBusRequest,
startQaBusServer,
writeError,
writeJson,
} from "./src/bus-server.js";
export { createQaBusState, type QaBusState } from "./src/bus-state.js";
export {
createQaBusWaiterStore,
DEFAULT_WAIT_TIMEOUT_MS,
type QaBusWaitMatch,
} from "./src/bus-waiters.js";
export { isQaLabCliAvailable, registerQaLabCli } from "./src/cli.js";
export { createQaRunnerRuntime } from "./src/harness-runtime.js";
export {
type QaLabLatestReport,
type QaLabScenarioOutcome,
type QaLabScenarioRun,
type QaLabServerHandle,
type QaLabServerStartParams,
startQaLabServer,
} from "./src/lab-server.js";
export { buildQaDockerHarnessImage, writeQaDockerHarnessFiles } from "./src/docker-harness.js";
export {
buildQaScenarioPlanMarkdown,
readQaAgentIdentityMarkdown,
} from "./src/qa-agent-bootstrap.js";
export { seedQaAgentWorkspace } from "./src/qa-agent-workspace.js";
export {
buildQaGatewayConfig,
DEFAULT_QA_CONTROL_UI_ALLOWED_ORIGINS,
mergeQaControlUiAllowedOrigins,
normalizeQaThinkingLevel,
QA_BASE_RUNTIME_PLUGIN_IDS,
type QaThinkingLevel,
} from "./src/qa-gateway-config.js";
export { type QaReportCheck, type QaReportScenario, renderQaMarkdownReport } from "./src/report.js";
export {
type QaScenarioDefinition,
type QaScenarioResult,
type QaScenarioStep,
type QaScenarioStepContext,
type QaScenarioStepResult,
runQaScenario,
} from "./src/scenario.js";
export {
DEFAULT_QA_AGENT_IDENTITY_MARKDOWN,
hasQaScenarioPack,
listQaScenarioMarkdownPaths,
type QaBootstrapScenarioCatalog,
type QaScenarioExecution,
type QaScenarioFlow,
type QaScenarioPack,
type QaSeedScenario,
type QaSeedScenarioWithSource,
readQaBootstrapScenarioCatalog,
readQaScenarioById,
readQaScenarioExecutionConfig,
readQaScenarioOverviewMarkdown,
readQaScenarioPack,
readQaScenarioPackMarkdown,
validateQaScenarioExecutionConfig,
} from "./src/scenario-catalog.js";
export { createQaSelfCheckScenario } from "./src/self-check-scenario.js";
export {
type QaSelfCheckResult,
resolveQaSelfCheckOutputPath,
runQaSelfCheckAgainstState,
} from "./src/self-check.js";
export { runQaE2eSelfCheck, runQaLabSelfCheck } from "./src/self-check-runner.js";
export {
__testing,
buildQaRuntimeEnv,
type QaCliBackendAuthMode,
type QaGatewayChildCommand,
type QaGatewayChildStateMutationContext,
resolveQaControlUiRoot,
resolveQaGatewayChildProviderMode,
startQaGatewayChild,
} from "./src/gateway-child.js";
export {
buildQaSuiteSummaryJson,
qaSuiteProgressTesting,
type QaSuiteResult,
type QaSuiteRunParams,
type QaSuiteScenarioResult,
type QaSuiteStartLabFn,
type QaSuiteSummaryJson,
type QaSuiteSummaryJsonParams,
runQaSuite,
} from "./src/suite.js";

View File

@@ -5,6 +5,52 @@ export { registerChannelTool } from "./src/bridge/tools/channel.js";
export { registerRemindTool } from "./src/bridge/tools/remind.js";
export { registerQQBotTools } from "./src/bridge/tools/index.js";
export { registerQQBotFull } from "./src/bridge/channel-entry.js";
export * from "./src/types.js";
export * from "./src/bridge/config.js";
export * from "./src/engine/messaging/outbound.js";
export {
type AudioFormatPolicy,
type C2CMessageEvent,
type GroupMessageEvent,
type GuildMessageEvent,
type MessageAttachment,
type QQBotAccountConfig,
type QQBotConfig,
type QQBotDmPolicy,
type QQBotExecApprovalConfig,
type QQBotGroupPolicy,
type ResolvedQQBotAccount,
type WSPayload,
} from "./src/types.js";
export {
applyQQBotAccountConfig,
DEFAULT_ACCOUNT_ID,
listQQBotAccountIds,
resolveDefaultQQBotAccountId,
resolveQQBotAccount,
} from "./src/bridge/config.js";
export {
buildMediaTarget,
checkMessageReplyLimit,
DEFAULT_MEDIA_SEND_ERROR,
getMessageReplyConfig,
getMessageReplyStats,
type MediaOutboundContext,
type MediaTargetContext,
MESSAGE_REPLY_LIMIT,
OUTBOUND_ERROR_CODES,
type OutboundContext,
type OutboundErrorCode,
type OutboundResult,
parseTarget,
recordMessageReply,
type ReplyLimitResult,
resolveOutboundMediaPath,
resolveUserFacingMediaError,
sendCronMessage,
sendDocument,
sendMedia,
sendPhoto,
sendProactiveMessage,
sendText,
sendVideoMsg,
sendVoice,
setOutboundAudioPort,
} from "./src/engine/messaging/outbound.js";

View File

@@ -1,15 +1,66 @@
export { signalPlugin } from "./src/channel.js";
export { signalSetupPlugin } from "./src/channel.setup.js";
export * from "./src/accounts.js";
export * from "./src/format.js";
export * from "./src/identity.js";
export * from "./src/install-signal-cli.js";
export * from "./src/message-actions.js";
export * from "./src/monitor.js";
export * from "./src/normalize.js";
export * from "./src/outbound-session.js";
export * from "./src/probe.js";
export * from "./src/reaction-level.js";
export * from "./src/send-reactions.js";
export * from "./src/send.js";
export {
listEnabledSignalAccounts,
listSignalAccountIds,
resolveDefaultSignalAccountId,
type ResolvedSignalAccount,
resolveSignalAccount,
} from "./src/accounts.js";
export {
markdownToSignalText,
markdownToSignalTextChunks,
type SignalFormattedText,
type SignalTextStyleRange,
} from "./src/format.js";
export {
formatSignalPairingIdLine,
formatSignalSenderDisplay,
formatSignalSenderId,
isSignalGroupAllowed,
isSignalSenderAllowed,
looksLikeUuid,
normalizeSignalAllowRecipient,
resolveSignalPeerId,
resolveSignalRecipient,
resolveSignalSender,
type SignalSender,
} from "./src/identity.js";
export {
extractSignalCliArchive,
installSignalCli,
looksLikeArchive,
type NamedAsset,
pickAsset,
type ReleaseAsset,
type SignalInstallResult,
} from "./src/install-signal-cli.js";
export { signalMessageActions } from "./src/message-actions.js";
export { type MonitorSignalOpts, monitorSignalProvider } from "./src/monitor.js";
export { looksLikeSignalTargetId, normalizeSignalMessagingTarget } from "./src/normalize.js";
export {
type ResolvedSignalOutboundTarget,
resolveSignalOutboundTarget,
} from "./src/outbound-session.js";
export { probeSignal, type SignalProbe } from "./src/probe.js";
export {
type ResolvedSignalReactionLevel,
resolveSignalReactionLevel,
type SignalReactionLevel,
} from "./src/reaction-level.js";
export {
removeReactionSignal,
sendReactionSignal,
type SignalReactionOpts,
type SignalReactionResult,
} from "./src/send-reactions.js";
export {
sendMessageSignal,
sendReadReceiptSignal,
sendTypingSignal,
type SignalReceiptType,
type SignalRpcOpts,
type SignalSendOpts,
type SignalSendResult,
} from "./src/send.js";
export { normalizeSignalAccountInput } from "./src/setup-core.js";

View File

@@ -1,3 +1,3 @@
export { synologyChatPlugin } from "./src/channel.js";
export { setSynologyRuntime } from "./src/runtime.js";
export * from "./src/security-audit.js";
export { collectSynologyChatSecurityAuditFindings } from "./src/security-audit.js";

View File

@@ -1 +1 @@
export { writeSkill } from "../../../../src/agents/skills.e2e-test-helpers.js";
export { writeSkill } from "openclaw/plugin-sdk/testing";

View File

@@ -1 +1 @@
export { maybeLoadShellEnvForGenerationProviders } from "../../src/test-utils/generation-live-test-helpers.js";
export { maybeLoadShellEnvForGenerationProviders } from "openclaw/plugin-sdk/testing";

View File

@@ -1,3 +1,16 @@
export * from "./runtime-api.js";
export {
createDedupeCache,
createLoggerBackedRuntime,
fetchWithSsrFGuard,
isBlockedHostnameOrIp,
type LookupFn,
type OpenClawConfig,
type ReplyPayload,
type RuntimeEnv,
SsrFBlockedError,
type SsrFPolicy,
ssrfPolicyFromAllowPrivateNetwork,
ssrfPolicyFromDangerouslyAllowPrivateNetwork,
} from "./runtime-api.js";
export { tlonPlugin } from "./src/channel.js";
export { setTlonRuntime } from "./src/runtime.js";

View File

@@ -1,3 +1,21 @@
export * from "./runtime-api.js";
export {
type ChannelAccountSnapshot,
type ChannelCapabilities,
type ChannelGatewayContext,
type ChannelLogSink,
type ChannelMessageActionAdapter,
type ChannelMessageActionContext,
type ChannelMeta,
type ChannelOutboundAdapter,
type ChannelOutboundContext,
type ChannelPlugin,
type ChannelResolveKind,
type ChannelResolveResult,
type ChannelStatusAdapter,
type OpenClawConfig,
type OutboundDeliveryResult,
type RuntimeEnv,
type WizardPrompter,
} from "./runtime-api.js";
export { twitchPlugin } from "./src/plugin.js";
export { setTwitchRuntime } from "./src/runtime.js";

View File

@@ -1 +1,16 @@
export * from "./runtime-api.js";
export {
definePluginEntry,
fetchWithSsrFGuard,
type GatewayRequestHandlerOptions,
isBlockedHostnameOrIp,
isRequestBodyLimitError,
type OpenClawPluginApi,
readRequestBodyWithLimit,
requestBodyErrorToText,
type SessionEntry,
sleep,
TtsAutoSchema,
TtsConfigSchema,
TtsModeSchema,
TtsProviderSchema,
} from "./runtime-api.js";

View File

@@ -1,2 +1,9 @@
export { zaloPlugin } from "./src/channel.js";
export * from "./setup-api.js";
export {
createZaloSetupWizardProxy,
evaluateZaloGroupAccess,
resolveZaloRuntimeGroupPolicy,
zaloDmPolicy,
zaloSetupAdapter,
zaloSetupWizard,
} from "./setup-api.js";

View File

@@ -1,6 +1,9 @@
export { zalouserPlugin } from "./src/channel.js";
export { zalouserSetupPlugin } from "./src/channel.setup.js";
export { createZalouserTool } from "./src/tool.js";
export * from "./src/setup-core.js";
export * from "./src/setup-surface.js";
export * from "./src/security-audit.js";
export { createZalouserSetupWizardProxy, zalouserSetupAdapter } from "./src/setup-core.js";
export { zalouserSetupWizard } from "./src/setup-surface.js";
export {
collectZalouserSecurityAuditFindings,
isZalouserMutableGroupEntry,
} from "./src/security-audit.js";

View File

@@ -43,6 +43,7 @@ export {
export { isLiveTestEnabled } from "../agents/live-test-helpers.js";
export { createSandboxTestContext } from "../agents/sandbox/test-fixtures.js";
export { writeSkill } from "../agents/skills.e2e-test-helpers.js";
export { maybeLoadShellEnvForGenerationProviders } from "../test-utils/generation-live-test-helpers.js";
export { __testing } from "../acp/control-plane/manager.js";
export { __testing as acpManagerTesting } from "../acp/control-plane/manager.js";
export { runAcpRuntimeAdapterContract } from "../acp/runtime/adapter-contract.testkit.js";
@@ -51,6 +52,7 @@ export { buildCommandTestParams } from "../auto-reply/reply/commands-spawn.test-
export { peekSystemEvents, resetSystemEventsForTest } from "../infra/system-events.js";
export { jsonResponse, requestBodyText, requestUrl } from "../test-helpers/http.js";
export { mockPinnedHostnameResolution } from "../test-helpers/ssrf.js";
export { createTestRegistry } from "../test-utils/channel-plugins.js";
export { createWindowsCmdShimFixture } from "../test-helpers/windows-cmd-shim.js";
export { installCommonResolveTargetErrorCases } from "../test-helpers/resolve-target-error-cases.js";
export { sanitizeTerminalText } from "../terminal/safe-text.js";