// Legacy compat surface for external plugins that still depend on older
// broad plugin-sdk imports. Keep this file intentionally small.
const shouldWarnCompatImport =
process.env.VITEST !==
"true" &&
process.env.NODE_ENV !==
"test" &&
process.env.OPENCLAW_SUPPRESS_PLUGIN_SDK_COMPAT_WARNING !==
"1";
if (shouldWarnCompatImport) {
process.emitWarning(
"openclaw/plugin-sdk/compat is deprecated for new plugins. Migrate to focused openclaw/plugin-sdk/<subpath> imports. See https://docs.openclaw.ai/plugins/sdk-migration",
{
code:
"OPENCLAW_PLUGIN_SDK_COMPAT_DEPRECATED",
detail:
"Bundled plugins must use scoped plugin-sdk subpaths. External plugins may keep compat temporarily while migrating. Migration guide: https://docs.openclaw.ai/plugins/sdk-migration",
},
);
}
export { emptyPluginConfigSchema } from
"../plugins/config-schema.js";
export type {
MemoryPluginCapability,
MemoryPluginPublicArtifact,
MemoryPluginPublicArtifactsProvider,
} from
"../plugins/memory-state.js";
export { resolveControlCommandGate } from
"../channels/command-gating.js";
export {
buildMemorySystemPromptAddition,
delegateCompactionToRuntime,
} from
"../context-engine/delegate.js";
export type { DiagnosticEventPayload } from
"../infra/diagnostic-events.js";
export { onDiagnosticEvent } from
"../infra/diagnostic-events.js";
export {
applyAuthProfileConfig,
buildApiKeyCredential,
upsertApiKeyProfile,
writeOAuthCredentials,
type ApiKeyStorageOptions,
type WriteOAuthCredentialsOptions,
} from
"../plugins/provider-auth-helpers.js";
export { createAccountStatusSink } from
"./channel-lifecycle.core.js";
export { createPluginRuntimeStore } from
"./runtime-store.js";
export { KeyedAsyncQueue } from
"./keyed-async-queue.js";
export {
createHybridChannelConfigAdapter,
createHybridChannelConfigBase,
createScopedAccountConfigAccessors,
createScopedChannelConfigAdapter,
createScopedChannelConfigBase,
createScopedDmSecurityResolver,
createTopLevelChannelConfigAdapter,
createTopLevelChannelConfigBase,
mapAllowFromEntries,
} from
"./channel-config-helpers.js";
export { formatAllowFromLowercase, formatNormalizedAllowFromEntries } from
"./allow-from.js";
export * from
"./channel-config-schema.js";
export * from
"./channel-policy.js";
export * from
"./reply-history.js";
export * from
"./directory-runtime.js";
export { mapAllowlistResolutionInputs } from
"./allow-from.js";
export {
resolveBlueBubblesGroupRequireMention,
resolveBlueBubblesGroupToolPolicy,
} from
"./bluebubbles-policy.js";
export { collectBlueBubblesStatusIssues } from
"./bluebubbles.js";