refactor(plugin-sdk): formalize runtime contract barrels
This commit is contained in:
parent
9b6f286ac2
commit
aa78a0c00e
@ -1 +1,38 @@
|
||||
export * from "../../src/plugin-sdk/acpx.js";
|
||||
export type { AcpRuntimeErrorCode } from "openclaw/plugin-sdk/acp-runtime";
|
||||
export {
|
||||
AcpRuntimeError,
|
||||
registerAcpRuntimeBackend,
|
||||
unregisterAcpRuntimeBackend,
|
||||
} from "openclaw/plugin-sdk/acp-runtime";
|
||||
export type {
|
||||
AcpRuntime,
|
||||
AcpRuntimeCapabilities,
|
||||
AcpRuntimeDoctorReport,
|
||||
AcpRuntimeEnsureInput,
|
||||
AcpRuntimeEvent,
|
||||
AcpRuntimeHandle,
|
||||
AcpRuntimeStatus,
|
||||
AcpRuntimeTurnInput,
|
||||
AcpSessionUpdateTag,
|
||||
} from "openclaw/plugin-sdk/acp-runtime";
|
||||
export type {
|
||||
OpenClawPluginApi,
|
||||
OpenClawPluginConfigSchema,
|
||||
OpenClawPluginService,
|
||||
OpenClawPluginServiceContext,
|
||||
PluginLogger,
|
||||
} from "openclaw/plugin-sdk/core";
|
||||
export type {
|
||||
WindowsSpawnProgram,
|
||||
WindowsSpawnProgramCandidate,
|
||||
WindowsSpawnResolution,
|
||||
} from "openclaw/plugin-sdk/windows-spawn";
|
||||
export {
|
||||
applyWindowsSpawnProgramPolicy,
|
||||
materializeWindowsSpawnProgram,
|
||||
resolveWindowsSpawnProgramCandidate,
|
||||
} from "openclaw/plugin-sdk/windows-spawn";
|
||||
export {
|
||||
listKnownProviderAuthEnvVarNames,
|
||||
omitEnvKeysCaseInsensitive,
|
||||
} from "openclaw/plugin-sdk/provider-env-vars";
|
||||
|
||||
@ -1 +1 @@
|
||||
export * from "../../src/plugin-sdk/google.js";
|
||||
export { normalizeGoogleModelId, parseGeminiAuth } from "openclaw/plugin-sdk/provider-google";
|
||||
|
||||
@ -1 +1,12 @@
|
||||
export * from "../../src/plugin-sdk/lobster.js";
|
||||
export { definePluginEntry } from "openclaw/plugin-sdk/core";
|
||||
export type {
|
||||
AnyAgentTool,
|
||||
OpenClawPluginApi,
|
||||
OpenClawPluginToolContext,
|
||||
OpenClawPluginToolFactory,
|
||||
} from "openclaw/plugin-sdk/core";
|
||||
export {
|
||||
applyWindowsSpawnProgramPolicy,
|
||||
materializeWindowsSpawnProgram,
|
||||
resolveWindowsSpawnProgramCandidate,
|
||||
} from "openclaw/plugin-sdk/windows-spawn";
|
||||
|
||||
@ -3,3 +3,4 @@
|
||||
// matrix-js-sdk during plain runtime-api import.
|
||||
export * from "./src/auth-precedence.js";
|
||||
export * from "./helper-api.js";
|
||||
export * from "./thread-bindings-runtime.js";
|
||||
|
||||
@ -1 +1,5 @@
|
||||
export * from "../../src/plugin-sdk/zai.js";
|
||||
export {
|
||||
detectZaiEndpoint,
|
||||
type ZaiDetectedEndpoint,
|
||||
type ZaiEndpointId,
|
||||
} from "openclaw/plugin-sdk/provider-zai-endpoint";
|
||||
|
||||
16
package.json
16
package.json
@ -169,6 +169,10 @@
|
||||
"types": "./dist/plugin-sdk/process-runtime.d.ts",
|
||||
"default": "./dist/plugin-sdk/process-runtime.js"
|
||||
},
|
||||
"./plugin-sdk/windows-spawn": {
|
||||
"types": "./dist/plugin-sdk/windows-spawn.d.ts",
|
||||
"default": "./dist/plugin-sdk/windows-spawn.js"
|
||||
},
|
||||
"./plugin-sdk/acp-runtime": {
|
||||
"types": "./dist/plugin-sdk/acp-runtime.d.ts",
|
||||
"default": "./dist/plugin-sdk/acp-runtime.js"
|
||||
@ -357,6 +361,14 @@
|
||||
"types": "./dist/plugin-sdk/provider-catalog.d.ts",
|
||||
"default": "./dist/plugin-sdk/provider-catalog.js"
|
||||
},
|
||||
"./plugin-sdk/provider-env-vars": {
|
||||
"types": "./dist/plugin-sdk/provider-env-vars.d.ts",
|
||||
"default": "./dist/plugin-sdk/provider-env-vars.js"
|
||||
},
|
||||
"./plugin-sdk/provider-google": {
|
||||
"types": "./dist/plugin-sdk/provider-google.d.ts",
|
||||
"default": "./dist/plugin-sdk/provider-google.js"
|
||||
},
|
||||
"./plugin-sdk/provider-models": {
|
||||
"types": "./dist/plugin-sdk/provider-models.d.ts",
|
||||
"default": "./dist/plugin-sdk/provider-models.js"
|
||||
@ -377,6 +389,10 @@
|
||||
"types": "./dist/plugin-sdk/provider-web-search.d.ts",
|
||||
"default": "./dist/plugin-sdk/provider-web-search.js"
|
||||
},
|
||||
"./plugin-sdk/provider-zai-endpoint": {
|
||||
"types": "./dist/plugin-sdk/provider-zai-endpoint.d.ts",
|
||||
"default": "./dist/plugin-sdk/provider-zai-endpoint.js"
|
||||
},
|
||||
"./plugin-sdk/image-generation": {
|
||||
"types": "./dist/plugin-sdk/image-generation.d.ts",
|
||||
"default": "./dist/plugin-sdk/image-generation.js"
|
||||
|
||||
@ -194,7 +194,10 @@ function scanWebSearchRegistrySmells(sourceFile, filePath) {
|
||||
|
||||
function shouldSkipFile(filePath) {
|
||||
const relativeFile = normalizePath(filePath);
|
||||
return relativeFile.startsWith("src/plugins/contracts/");
|
||||
return (
|
||||
relativeFile.startsWith("src/plugins/contracts/") ||
|
||||
/^src\/plugins\/runtime\/runtime-[^/]+-contract\.[cm]?[jt]s$/u.test(relativeFile)
|
||||
);
|
||||
}
|
||||
|
||||
export async function collectPluginExtensionImportBoundaryInventory() {
|
||||
|
||||
@ -32,6 +32,7 @@
|
||||
"cli-runtime",
|
||||
"hook-runtime",
|
||||
"process-runtime",
|
||||
"windows-spawn",
|
||||
"acp-runtime",
|
||||
"telegram",
|
||||
"telegram-core",
|
||||
@ -79,11 +80,14 @@
|
||||
"provider-auth-login",
|
||||
"plugin-entry",
|
||||
"provider-catalog",
|
||||
"provider-env-vars",
|
||||
"provider-google",
|
||||
"provider-models",
|
||||
"provider-onboard",
|
||||
"provider-stream",
|
||||
"provider-usage",
|
||||
"provider-web-search",
|
||||
"provider-zai-endpoint",
|
||||
"image-generation",
|
||||
"reply-history",
|
||||
"media-understanding",
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
|
||||
export { getAcpSessionManager } from "../acp/control-plane/manager.js";
|
||||
export { AcpRuntimeError, isAcpRuntimeError } from "../acp/runtime/errors.js";
|
||||
export { registerAcpRuntimeBackend, unregisterAcpRuntimeBackend } from "../acp/runtime/registry.js";
|
||||
export type { AcpRuntimeErrorCode } from "../acp/runtime/errors.js";
|
||||
export type {
|
||||
AcpRuntime,
|
||||
|
||||
@ -51,6 +51,8 @@ export type {
|
||||
ProviderAuthMethodNonInteractiveContext,
|
||||
ProviderAuthMethod,
|
||||
ProviderAuthResult,
|
||||
OpenClawPluginToolContext,
|
||||
OpenClawPluginToolFactory,
|
||||
OpenClawPluginCommandDefinition,
|
||||
OpenClawPluginDefinition,
|
||||
PluginCommandContext,
|
||||
|
||||
@ -1,178 +1 @@
|
||||
// Narrow plugin-sdk surface for the bundled matrix plugin.
|
||||
// Keep this list additive and scoped to symbols used under extensions/matrix.
|
||||
|
||||
import { createOptionalChannelSetupSurface } from "./channel-setup.js";
|
||||
|
||||
export {
|
||||
createActionGate,
|
||||
jsonResult,
|
||||
readNumberParam,
|
||||
readReactionParams,
|
||||
readStringArrayParam,
|
||||
readStringParam,
|
||||
} from "../agents/tools/common.js";
|
||||
export type { ReplyPayload } from "../auto-reply/types.js";
|
||||
export { resolveAckReaction } from "../agents/identity.js";
|
||||
export {
|
||||
compileAllowlist,
|
||||
resolveCompiledAllowlistMatch,
|
||||
resolveAllowlistCandidates,
|
||||
resolveAllowlistMatchByCandidates,
|
||||
} from "../channels/allowlist-match.js";
|
||||
export {
|
||||
addAllowlistUserEntriesFromConfigEntry,
|
||||
buildAllowlistResolutionSummary,
|
||||
canonicalizeAllowlistWithResolvedIds,
|
||||
mergeAllowlist,
|
||||
patchAllowlistUsersInConfigEntries,
|
||||
summarizeMapping,
|
||||
} from "../channels/allowlists/resolve-utils.js";
|
||||
export { ensureConfiguredAcpBindingReady } from "../acp/persistent-bindings.lifecycle.js";
|
||||
export { resolveConfiguredAcpBindingRecord } from "../acp/persistent-bindings.resolve.js";
|
||||
export { resolveControlCommandGate } from "../channels/command-gating.js";
|
||||
export type { NormalizedLocation } from "../channels/location.js";
|
||||
export { formatLocationText, toLocationContext } from "../channels/location.js";
|
||||
export { logInboundDrop, logTypingFailure } from "../channels/logging.js";
|
||||
export type { AllowlistMatch } from "../channels/plugins/allowlist-match.js";
|
||||
export { formatAllowlistMatchMeta } from "../channels/plugins/allowlist-match.js";
|
||||
export {
|
||||
buildChannelKeyCandidates,
|
||||
resolveChannelEntryMatch,
|
||||
} from "../channels/plugins/channel-config.js";
|
||||
export { createAccountListHelpers } from "../channels/plugins/account-helpers.js";
|
||||
export {
|
||||
deleteAccountFromConfigSection,
|
||||
setAccountEnabledInConfigSection,
|
||||
} from "../channels/plugins/config-helpers.js";
|
||||
export { buildChannelConfigSchema } from "../channels/plugins/config-schema.js";
|
||||
export { formatPairingApproveHint } from "../channels/plugins/helpers.js";
|
||||
export {
|
||||
buildSingleChannelSecretPromptState,
|
||||
addWildcardAllowFrom,
|
||||
mergeAllowFromEntries,
|
||||
promptAccountId,
|
||||
promptSingleChannelSecretInput,
|
||||
setTopLevelChannelGroupPolicy,
|
||||
} from "../channels/plugins/setup-wizard-helpers.js";
|
||||
export { promptChannelAccessConfig } from "../channels/plugins/setup-group-access.js";
|
||||
export { PAIRING_APPROVED_MESSAGE } from "../channels/plugins/pairing-message.js";
|
||||
export {
|
||||
applyAccountNameToChannelSection,
|
||||
moveSingleAccountChannelSectionToDefaultAccount,
|
||||
} from "../channels/plugins/setup-helpers.js";
|
||||
export type {
|
||||
BaseProbeResult,
|
||||
ChannelDirectoryEntry,
|
||||
ChannelGroupContext,
|
||||
ChannelMessageActionAdapter,
|
||||
ChannelMessageActionContext,
|
||||
ChannelMessageActionName,
|
||||
ChannelMessageToolDiscovery,
|
||||
ChannelMessageToolSchemaContribution,
|
||||
ChannelOutboundAdapter,
|
||||
ChannelResolveKind,
|
||||
ChannelResolveResult,
|
||||
ChannelSetupInput,
|
||||
ChannelToolSend,
|
||||
} from "../channels/plugins/types.js";
|
||||
export type { ChannelPlugin } from "../channels/plugins/types.plugin.js";
|
||||
export { createReplyPrefixOptions } from "../channels/reply-prefix.js";
|
||||
export { resolveThreadBindingFarewellText } from "../channels/thread-bindings-messages.js";
|
||||
export {
|
||||
resolveThreadBindingIdleTimeoutMsForChannel,
|
||||
resolveThreadBindingMaxAgeMsForChannel,
|
||||
} from "../channels/thread-bindings-policy.js";
|
||||
export {
|
||||
setMatrixThreadBindingIdleTimeoutBySessionKey,
|
||||
setMatrixThreadBindingMaxAgeBySessionKey,
|
||||
} from "../../extensions/matrix/thread-bindings-runtime.js";
|
||||
export { createTypingCallbacks } from "../channels/typing.js";
|
||||
export { createChannelReplyPipeline } from "./channel-reply-pipeline.js";
|
||||
export type { OpenClawConfig } from "../config/config.js";
|
||||
export {
|
||||
GROUP_POLICY_BLOCKED_LABEL,
|
||||
resolveAllowlistProviderRuntimeGroupPolicy,
|
||||
resolveDefaultGroupPolicy,
|
||||
warnMissingProviderGroupPolicyFallbackOnce,
|
||||
} from "../config/runtime-group-policy.js";
|
||||
export type {
|
||||
DmPolicy,
|
||||
GroupPolicy,
|
||||
GroupToolPolicyConfig,
|
||||
MarkdownTableMode,
|
||||
} from "../config/types.js";
|
||||
export type { SecretInput } from "./secret-input.js";
|
||||
export {
|
||||
buildSecretInputSchema,
|
||||
hasConfiguredSecretInput,
|
||||
normalizeResolvedSecretInputString,
|
||||
normalizeSecretInputString,
|
||||
} from "./secret-input.js";
|
||||
export { ToolPolicySchema } from "../config/zod-schema.agent-runtime.js";
|
||||
export { MarkdownConfigSchema } from "../config/zod-schema.core.js";
|
||||
export { formatZonedTimestamp } from "../infra/format-time/format-datetime.js";
|
||||
export { fetchWithSsrFGuard } from "../infra/net/fetch-guard.js";
|
||||
export { maybeCreateMatrixMigrationSnapshot } from "../infra/matrix-migration-snapshot.js";
|
||||
export {
|
||||
getSessionBindingService,
|
||||
registerSessionBindingAdapter,
|
||||
unregisterSessionBindingAdapter,
|
||||
} from "../infra/outbound/session-binding-service.js";
|
||||
export { resolveOutboundSendDep } from "../infra/outbound/send-deps.js";
|
||||
export type {
|
||||
BindingTargetKind,
|
||||
SessionBindingRecord,
|
||||
} from "../infra/outbound/session-binding-service.js";
|
||||
export { isPrivateOrLoopbackHost } from "../gateway/net.js";
|
||||
export { getAgentScopedMediaLocalRoots } from "../media/local-roots.js";
|
||||
export { emptyPluginConfigSchema } from "../plugins/config-schema.js";
|
||||
export type { PluginRuntime, RuntimeLogger } from "../plugins/runtime/types.js";
|
||||
export type { OpenClawPluginApi } from "../plugins/types.js";
|
||||
export type { PollInput } from "../polls.js";
|
||||
export { normalizePollInput } from "../polls.js";
|
||||
export {
|
||||
DEFAULT_ACCOUNT_ID,
|
||||
normalizeAccountId,
|
||||
normalizeOptionalAccountId,
|
||||
resolveAgentIdFromSessionKey,
|
||||
} from "../routing/session-key.js";
|
||||
export type { RuntimeEnv } from "../runtime.js";
|
||||
export { normalizeStringEntries } from "../shared/string-normalization.js";
|
||||
export { formatDocsLink } from "../terminal/links.js";
|
||||
export { redactSensitiveText } from "../logging/redact.js";
|
||||
export type { WizardPrompter } from "../wizard/prompts.js";
|
||||
export {
|
||||
evaluateGroupRouteAccessForPolicy,
|
||||
resolveSenderScopedGroupPolicy,
|
||||
} from "./group-access.js";
|
||||
export { createChannelPairingController } from "./channel-pairing.js";
|
||||
export { readJsonFileWithFallback, writeJsonFileAtomically } from "./json-store.js";
|
||||
export { formatResolvedUnresolvedNote } from "./resolution-notes.js";
|
||||
export { runPluginCommandWithTimeout } from "./run-command.js";
|
||||
export { createLoggerBackedRuntime, resolveRuntimeEnv } from "./runtime.js";
|
||||
export { dispatchReplyFromConfigWithSettledDispatcher } from "./inbound-reply-dispatch.js";
|
||||
export {
|
||||
buildProbeChannelStatusSummary,
|
||||
collectStatusIssuesFromLastError,
|
||||
} from "./status-helpers.js";
|
||||
export {
|
||||
resolveMatrixAccountStorageRoot,
|
||||
resolveMatrixCredentialsDir,
|
||||
resolveMatrixCredentialsPath,
|
||||
resolveMatrixLegacyFlatStoragePaths,
|
||||
} from "../../extensions/matrix/helper-api.js";
|
||||
export { getMatrixScopedEnvVarNames } from "../../extensions/matrix/helper-api.js";
|
||||
export {
|
||||
requiresExplicitMatrixDefaultAccount,
|
||||
resolveMatrixDefaultOrOnlyAccountId,
|
||||
} from "../../extensions/matrix/helper-api.js";
|
||||
|
||||
const matrixSetup = createOptionalChannelSetupSurface({
|
||||
channel: "matrix",
|
||||
label: "Matrix",
|
||||
npmSpec: "@openclaw/matrix",
|
||||
docsPath: "/channels/matrix",
|
||||
});
|
||||
|
||||
export const matrixSetupWizard = matrixSetup.setupWizard;
|
||||
export const matrixSetupAdapter = matrixSetup.setupAdapter;
|
||||
export * from "../plugins/runtime/runtime-matrix-contract.js";
|
||||
|
||||
6
src/plugin-sdk/provider-env-vars.ts
Normal file
6
src/plugin-sdk/provider-env-vars.ts
Normal file
@ -0,0 +1,6 @@
|
||||
// Public provider auth environment variable helpers for plugin runtimes.
|
||||
|
||||
export {
|
||||
listKnownProviderAuthEnvVarNames,
|
||||
omitEnvKeysCaseInsensitive,
|
||||
} from "../secrets/provider-env-vars.js";
|
||||
4
src/plugin-sdk/provider-google.ts
Normal file
4
src/plugin-sdk/provider-google.ts
Normal file
@ -0,0 +1,4 @@
|
||||
// Public Google provider helpers shared by bundled Google extensions.
|
||||
|
||||
export { normalizeGoogleModelId } from "../agents/model-id-normalization.js";
|
||||
export { parseGeminiAuth } from "../infra/gemini-auth.js";
|
||||
7
src/plugin-sdk/provider-zai-endpoint.ts
Normal file
7
src/plugin-sdk/provider-zai-endpoint.ts
Normal file
@ -0,0 +1,7 @@
|
||||
// Public Z.AI endpoint detection helpers for provider plugins.
|
||||
|
||||
export {
|
||||
detectZaiEndpoint,
|
||||
type ZaiDetectedEndpoint,
|
||||
type ZaiEndpointId,
|
||||
} from "../plugins/provider-zai-endpoint.js";
|
||||
@ -38,6 +38,7 @@ const RUNTIME_API_EXPORT_GUARDS: Record<string, readonly string[]> = {
|
||||
"extensions/matrix/runtime-api.ts": [
|
||||
'export * from "./src/auth-precedence.js";',
|
||||
'export * from "./helper-api.js";',
|
||||
'export * from "./thread-bindings-runtime.js";',
|
||||
],
|
||||
"extensions/nextcloud-talk/runtime-api.ts": [
|
||||
'export * from "../../src/plugin-sdk/nextcloud-talk.js";',
|
||||
|
||||
@ -1,127 +1 @@
|
||||
export type {
|
||||
ChannelAccountSnapshot,
|
||||
ChannelGatewayContext,
|
||||
ChannelMessageActionAdapter,
|
||||
ChannelPlugin,
|
||||
} from "../channels/plugins/types.js";
|
||||
export type { OpenClawConfig } from "../config/config.js";
|
||||
export type { PluginRuntime } from "../plugins/runtime/types.js";
|
||||
export type { OpenClawPluginApi } from "../plugins/types.js";
|
||||
export type {
|
||||
TelegramAccountConfig,
|
||||
TelegramActionConfig,
|
||||
TelegramNetworkConfig,
|
||||
} from "../config/types.js";
|
||||
export type {
|
||||
ChannelConfiguredBindingProvider,
|
||||
ChannelConfiguredBindingConversationRef,
|
||||
ChannelConfiguredBindingMatch,
|
||||
} from "../channels/plugins/types.adapters.js";
|
||||
export type { InspectedTelegramAccount } from "../../extensions/telegram/api.js";
|
||||
export type { ResolvedTelegramAccount } from "../../extensions/telegram/api.js";
|
||||
export type { TelegramProbe } from "../../extensions/telegram/runtime-api.js";
|
||||
export type { TelegramButtonStyle, TelegramInlineButtons } from "../../extensions/telegram/api.js";
|
||||
export type { StickerMetadata } from "../../extensions/telegram/api.js";
|
||||
|
||||
export { emptyPluginConfigSchema } from "../plugins/config-schema.js";
|
||||
export { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "../routing/session-key.js";
|
||||
export { parseTelegramTopicConversation } from "../acp/conversation-id.js";
|
||||
export { clearAccountEntryFields } from "../channels/plugins/config-helpers.js";
|
||||
export { resolveTelegramPollVisibility } from "../poll-params.js";
|
||||
|
||||
export {
|
||||
PAIRING_APPROVED_MESSAGE,
|
||||
applyAccountNameToChannelSection,
|
||||
buildChannelConfigSchema,
|
||||
deleteAccountFromConfigSection,
|
||||
formatPairingApproveHint,
|
||||
getChatChannelMeta,
|
||||
migrateBaseNameToDefaultAccount,
|
||||
setAccountEnabledInConfigSection,
|
||||
} from "./channel-plugin-common.js";
|
||||
|
||||
export {
|
||||
projectCredentialSnapshotFields,
|
||||
resolveConfiguredFromCredentialStatuses,
|
||||
} from "../channels/account-snapshot-fields.js";
|
||||
export {
|
||||
resolveAllowlistProviderRuntimeGroupPolicy,
|
||||
resolveDefaultGroupPolicy,
|
||||
} from "../config/runtime-group-policy.js";
|
||||
export {
|
||||
listTelegramDirectoryGroupsFromConfig,
|
||||
listTelegramDirectoryPeersFromConfig,
|
||||
} from "../../extensions/telegram/api.js";
|
||||
export {
|
||||
resolveTelegramGroupRequireMention,
|
||||
resolveTelegramGroupToolPolicy,
|
||||
} from "../../extensions/telegram/api.js";
|
||||
export { TelegramConfigSchema } from "../config/zod-schema.providers-core.js";
|
||||
|
||||
export { buildTokenChannelStatusSummary } from "./status-helpers.js";
|
||||
|
||||
export {
|
||||
createTelegramActionGate,
|
||||
listTelegramAccountIds,
|
||||
resolveDefaultTelegramAccountId,
|
||||
resolveTelegramPollActionGateState,
|
||||
} from "../../extensions/telegram/api.js";
|
||||
export { inspectTelegramAccount } from "../../extensions/telegram/api.js";
|
||||
export {
|
||||
looksLikeTelegramTargetId,
|
||||
normalizeTelegramMessagingTarget,
|
||||
} from "../../extensions/telegram/api.js";
|
||||
export {
|
||||
parseTelegramReplyToMessageId,
|
||||
parseTelegramThreadId,
|
||||
} from "../../extensions/telegram/api.js";
|
||||
export {
|
||||
isNumericTelegramUserId,
|
||||
normalizeTelegramAllowFromEntry,
|
||||
} from "../../extensions/telegram/api.js";
|
||||
export { fetchTelegramChatId } from "../../extensions/telegram/api.js";
|
||||
export {
|
||||
resolveTelegramInlineButtonsScope,
|
||||
resolveTelegramTargetChatType,
|
||||
} from "../../extensions/telegram/api.js";
|
||||
export { resolveTelegramReactionLevel } from "../../extensions/telegram/api.js";
|
||||
export {
|
||||
auditTelegramGroupMembership,
|
||||
collectTelegramUnmentionedGroupIds,
|
||||
createForumTopicTelegram,
|
||||
deleteMessageTelegram,
|
||||
editForumTopicTelegram,
|
||||
editMessageReplyMarkupTelegram,
|
||||
editMessageTelegram,
|
||||
monitorTelegramProvider,
|
||||
pinMessageTelegram,
|
||||
reactMessageTelegram,
|
||||
renameForumTopicTelegram,
|
||||
probeTelegram,
|
||||
sendMessageTelegram,
|
||||
sendPollTelegram,
|
||||
sendStickerTelegram,
|
||||
sendTypingTelegram,
|
||||
unpinMessageTelegram,
|
||||
} from "../../extensions/telegram/runtime-api.js";
|
||||
export { getCacheStats, searchStickers } from "../../extensions/telegram/api.js";
|
||||
export { resolveTelegramToken } from "../../extensions/telegram/runtime-api.js";
|
||||
export { telegramMessageActions } from "../../extensions/telegram/runtime-api.js";
|
||||
export {
|
||||
setTelegramThreadBindingIdleTimeoutBySessionKey,
|
||||
setTelegramThreadBindingMaxAgeBySessionKey,
|
||||
} from "../../extensions/telegram/runtime-api.js";
|
||||
export { collectTelegramStatusIssues } from "../../extensions/telegram/api.js";
|
||||
export { sendTelegramPayloadMessages } from "../../extensions/telegram/api.js";
|
||||
export {
|
||||
buildBrowseProvidersButton,
|
||||
buildModelsKeyboard,
|
||||
buildProviderKeyboard,
|
||||
calculateTotalPages,
|
||||
getModelsPageSize,
|
||||
type ProviderInfo,
|
||||
} from "../../extensions/telegram/api.js";
|
||||
export {
|
||||
isTelegramExecApprovalApprover,
|
||||
isTelegramExecApprovalClientEnabled,
|
||||
} from "../../extensions/telegram/api.js";
|
||||
export * from "../plugins/runtime/runtime-telegram-contract.js";
|
||||
|
||||
178
src/plugins/runtime/runtime-matrix-contract.ts
Normal file
178
src/plugins/runtime/runtime-matrix-contract.ts
Normal file
@ -0,0 +1,178 @@
|
||||
// Narrow plugin-sdk surface for the bundled matrix plugin.
|
||||
// Keep this list additive and scoped to symbols used under extensions/matrix.
|
||||
|
||||
import { createOptionalChannelSetupSurface } from "../../plugin-sdk/channel-setup.js";
|
||||
|
||||
export {
|
||||
createActionGate,
|
||||
jsonResult,
|
||||
readNumberParam,
|
||||
readReactionParams,
|
||||
readStringArrayParam,
|
||||
readStringParam,
|
||||
} from "../../agents/tools/common.js";
|
||||
export type { ReplyPayload } from "../../auto-reply/types.js";
|
||||
export { resolveAckReaction } from "../../agents/identity.js";
|
||||
export {
|
||||
compileAllowlist,
|
||||
resolveCompiledAllowlistMatch,
|
||||
resolveAllowlistCandidates,
|
||||
resolveAllowlistMatchByCandidates,
|
||||
} from "../../channels/allowlist-match.js";
|
||||
export {
|
||||
addAllowlistUserEntriesFromConfigEntry,
|
||||
buildAllowlistResolutionSummary,
|
||||
canonicalizeAllowlistWithResolvedIds,
|
||||
mergeAllowlist,
|
||||
patchAllowlistUsersInConfigEntries,
|
||||
summarizeMapping,
|
||||
} from "../../channels/allowlists/resolve-utils.js";
|
||||
export { ensureConfiguredAcpBindingReady } from "../../acp/persistent-bindings.lifecycle.js";
|
||||
export { resolveConfiguredAcpBindingRecord } from "../../acp/persistent-bindings.resolve.js";
|
||||
export { resolveControlCommandGate } from "../../channels/command-gating.js";
|
||||
export type { NormalizedLocation } from "../../channels/location.js";
|
||||
export { formatLocationText, toLocationContext } from "../../channels/location.js";
|
||||
export { logInboundDrop, logTypingFailure } from "../../channels/logging.js";
|
||||
export type { AllowlistMatch } from "../../channels/plugins/allowlist-match.js";
|
||||
export { formatAllowlistMatchMeta } from "../../channels/plugins/allowlist-match.js";
|
||||
export {
|
||||
buildChannelKeyCandidates,
|
||||
resolveChannelEntryMatch,
|
||||
} from "../../channels/plugins/channel-config.js";
|
||||
export { createAccountListHelpers } from "../../channels/plugins/account-helpers.js";
|
||||
export {
|
||||
deleteAccountFromConfigSection,
|
||||
setAccountEnabledInConfigSection,
|
||||
} from "../../channels/plugins/config-helpers.js";
|
||||
export { buildChannelConfigSchema } from "../../channels/plugins/config-schema.js";
|
||||
export { formatPairingApproveHint } from "../../channels/plugins/helpers.js";
|
||||
export {
|
||||
buildSingleChannelSecretPromptState,
|
||||
addWildcardAllowFrom,
|
||||
mergeAllowFromEntries,
|
||||
promptAccountId,
|
||||
promptSingleChannelSecretInput,
|
||||
setTopLevelChannelGroupPolicy,
|
||||
} from "../../channels/plugins/setup-wizard-helpers.js";
|
||||
export { promptChannelAccessConfig } from "../../channels/plugins/setup-group-access.js";
|
||||
export { PAIRING_APPROVED_MESSAGE } from "../../channels/plugins/pairing-message.js";
|
||||
export {
|
||||
applyAccountNameToChannelSection,
|
||||
moveSingleAccountChannelSectionToDefaultAccount,
|
||||
} from "../../channels/plugins/setup-helpers.js";
|
||||
export type {
|
||||
BaseProbeResult,
|
||||
ChannelDirectoryEntry,
|
||||
ChannelGroupContext,
|
||||
ChannelMessageActionAdapter,
|
||||
ChannelMessageActionContext,
|
||||
ChannelMessageActionName,
|
||||
ChannelMessageToolDiscovery,
|
||||
ChannelMessageToolSchemaContribution,
|
||||
ChannelOutboundAdapter,
|
||||
ChannelResolveKind,
|
||||
ChannelResolveResult,
|
||||
ChannelSetupInput,
|
||||
ChannelToolSend,
|
||||
} from "../../channels/plugins/types.js";
|
||||
export type { ChannelPlugin } from "../../channels/plugins/types.plugin.js";
|
||||
export { createReplyPrefixOptions } from "../../channels/reply-prefix.js";
|
||||
export { resolveThreadBindingFarewellText } from "../../channels/thread-bindings-messages.js";
|
||||
export {
|
||||
resolveThreadBindingIdleTimeoutMsForChannel,
|
||||
resolveThreadBindingMaxAgeMsForChannel,
|
||||
} from "../../channels/thread-bindings-policy.js";
|
||||
export {
|
||||
setMatrixThreadBindingIdleTimeoutBySessionKey,
|
||||
setMatrixThreadBindingMaxAgeBySessionKey,
|
||||
} from "../../../extensions/matrix/runtime-api.js";
|
||||
export { createTypingCallbacks } from "../../channels/typing.js";
|
||||
export { createChannelReplyPipeline } from "../../plugin-sdk/channel-reply-pipeline.js";
|
||||
export type { OpenClawConfig } from "../../config/config.js";
|
||||
export {
|
||||
GROUP_POLICY_BLOCKED_LABEL,
|
||||
resolveAllowlistProviderRuntimeGroupPolicy,
|
||||
resolveDefaultGroupPolicy,
|
||||
warnMissingProviderGroupPolicyFallbackOnce,
|
||||
} from "../../config/runtime-group-policy.js";
|
||||
export type {
|
||||
DmPolicy,
|
||||
GroupPolicy,
|
||||
GroupToolPolicyConfig,
|
||||
MarkdownTableMode,
|
||||
} from "../../config/types.js";
|
||||
export type { SecretInput } from "../../plugin-sdk/secret-input.js";
|
||||
export {
|
||||
buildSecretInputSchema,
|
||||
hasConfiguredSecretInput,
|
||||
normalizeResolvedSecretInputString,
|
||||
normalizeSecretInputString,
|
||||
} from "../../plugin-sdk/secret-input.js";
|
||||
export { ToolPolicySchema } from "../../config/zod-schema.agent-runtime.js";
|
||||
export { MarkdownConfigSchema } from "../../config/zod-schema.core.js";
|
||||
export { formatZonedTimestamp } from "../../infra/format-time/format-datetime.js";
|
||||
export { fetchWithSsrFGuard } from "../../infra/net/fetch-guard.js";
|
||||
export { maybeCreateMatrixMigrationSnapshot } from "../../infra/matrix-migration-snapshot.js";
|
||||
export {
|
||||
getSessionBindingService,
|
||||
registerSessionBindingAdapter,
|
||||
unregisterSessionBindingAdapter,
|
||||
} from "../../infra/outbound/session-binding-service.js";
|
||||
export { resolveOutboundSendDep } from "../../infra/outbound/send-deps.js";
|
||||
export type {
|
||||
BindingTargetKind,
|
||||
SessionBindingRecord,
|
||||
} from "../../infra/outbound/session-binding-service.js";
|
||||
export { isPrivateOrLoopbackHost } from "../../gateway/net.js";
|
||||
export { getAgentScopedMediaLocalRoots } from "../../media/local-roots.js";
|
||||
export { emptyPluginConfigSchema } from "../config-schema.js";
|
||||
export type { PluginRuntime, RuntimeLogger } from "./types.js";
|
||||
export type { OpenClawPluginApi } from "../types.js";
|
||||
export type { PollInput } from "../../polls.js";
|
||||
export { normalizePollInput } from "../../polls.js";
|
||||
export {
|
||||
DEFAULT_ACCOUNT_ID,
|
||||
normalizeAccountId,
|
||||
normalizeOptionalAccountId,
|
||||
resolveAgentIdFromSessionKey,
|
||||
} from "../../routing/session-key.js";
|
||||
export type { RuntimeEnv } from "../../runtime.js";
|
||||
export { normalizeStringEntries } from "../../shared/string-normalization.js";
|
||||
export { formatDocsLink } from "../../terminal/links.js";
|
||||
export { redactSensitiveText } from "../../logging/redact.js";
|
||||
export type { WizardPrompter } from "../../wizard/prompts.js";
|
||||
export {
|
||||
evaluateGroupRouteAccessForPolicy,
|
||||
resolveSenderScopedGroupPolicy,
|
||||
} from "../../plugin-sdk/group-access.js";
|
||||
export { createChannelPairingController } from "../../plugin-sdk/channel-pairing.js";
|
||||
export { readJsonFileWithFallback, writeJsonFileAtomically } from "../../plugin-sdk/json-store.js";
|
||||
export { formatResolvedUnresolvedNote } from "../../plugin-sdk/resolution-notes.js";
|
||||
export { runPluginCommandWithTimeout } from "../../plugin-sdk/run-command.js";
|
||||
export { createLoggerBackedRuntime, resolveRuntimeEnv } from "../../plugin-sdk/runtime.js";
|
||||
export { dispatchReplyFromConfigWithSettledDispatcher } from "../../plugin-sdk/inbound-reply-dispatch.js";
|
||||
export {
|
||||
buildProbeChannelStatusSummary,
|
||||
collectStatusIssuesFromLastError,
|
||||
} from "../../plugin-sdk/status-helpers.js";
|
||||
export {
|
||||
resolveMatrixAccountStorageRoot,
|
||||
resolveMatrixCredentialsDir,
|
||||
resolveMatrixCredentialsPath,
|
||||
resolveMatrixLegacyFlatStoragePaths,
|
||||
} from "../../../extensions/matrix/runtime-api.js";
|
||||
export { getMatrixScopedEnvVarNames } from "../../../extensions/matrix/runtime-api.js";
|
||||
export {
|
||||
requiresExplicitMatrixDefaultAccount,
|
||||
resolveMatrixDefaultOrOnlyAccountId,
|
||||
} from "../../../extensions/matrix/runtime-api.js";
|
||||
|
||||
const matrixSetup = createOptionalChannelSetupSurface({
|
||||
channel: "matrix",
|
||||
label: "Matrix",
|
||||
npmSpec: "@openclaw/matrix",
|
||||
docsPath: "/channels/matrix",
|
||||
});
|
||||
|
||||
export const matrixSetupWizard = matrixSetup.setupWizard;
|
||||
export const matrixSetupAdapter = matrixSetup.setupAdapter;
|
||||
130
src/plugins/runtime/runtime-telegram-contract.ts
Normal file
130
src/plugins/runtime/runtime-telegram-contract.ts
Normal file
@ -0,0 +1,130 @@
|
||||
export type {
|
||||
ChannelAccountSnapshot,
|
||||
ChannelGatewayContext,
|
||||
ChannelMessageActionAdapter,
|
||||
} from "../../channels/plugins/types.js";
|
||||
export type { ChannelPlugin } from "../../channels/plugins/types.plugin.js";
|
||||
export type { OpenClawConfig } from "../../config/config.js";
|
||||
export type { PluginRuntime } from "./types.js";
|
||||
export type { OpenClawPluginApi } from "../types.js";
|
||||
export type {
|
||||
TelegramAccountConfig,
|
||||
TelegramActionConfig,
|
||||
TelegramNetworkConfig,
|
||||
} from "../../config/types.js";
|
||||
export type {
|
||||
ChannelConfiguredBindingProvider,
|
||||
ChannelConfiguredBindingConversationRef,
|
||||
ChannelConfiguredBindingMatch,
|
||||
} from "../../channels/plugins/types.adapters.js";
|
||||
export type { InspectedTelegramAccount } from "../../../extensions/telegram/api.js";
|
||||
export type { ResolvedTelegramAccount } from "../../../extensions/telegram/api.js";
|
||||
export type { TelegramProbe } from "../../../extensions/telegram/runtime-api.js";
|
||||
export type {
|
||||
TelegramButtonStyle,
|
||||
TelegramInlineButtons,
|
||||
} from "../../../extensions/telegram/api.js";
|
||||
export type { StickerMetadata } from "../../../extensions/telegram/api.js";
|
||||
|
||||
export { emptyPluginConfigSchema } from "../config-schema.js";
|
||||
export { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "../../routing/session-key.js";
|
||||
export { parseTelegramTopicConversation } from "../../acp/conversation-id.js";
|
||||
export { clearAccountEntryFields } from "../../channels/plugins/config-helpers.js";
|
||||
export { resolveTelegramPollVisibility } from "../../poll-params.js";
|
||||
|
||||
export {
|
||||
PAIRING_APPROVED_MESSAGE,
|
||||
applyAccountNameToChannelSection,
|
||||
buildChannelConfigSchema,
|
||||
deleteAccountFromConfigSection,
|
||||
formatPairingApproveHint,
|
||||
getChatChannelMeta,
|
||||
migrateBaseNameToDefaultAccount,
|
||||
setAccountEnabledInConfigSection,
|
||||
} from "../../plugin-sdk/channel-plugin-common.js";
|
||||
|
||||
export {
|
||||
projectCredentialSnapshotFields,
|
||||
resolveConfiguredFromCredentialStatuses,
|
||||
} from "../../channels/account-snapshot-fields.js";
|
||||
export {
|
||||
resolveAllowlistProviderRuntimeGroupPolicy,
|
||||
resolveDefaultGroupPolicy,
|
||||
} from "../../config/runtime-group-policy.js";
|
||||
export {
|
||||
listTelegramDirectoryGroupsFromConfig,
|
||||
listTelegramDirectoryPeersFromConfig,
|
||||
} from "../../../extensions/telegram/api.js";
|
||||
export {
|
||||
resolveTelegramGroupRequireMention,
|
||||
resolveTelegramGroupToolPolicy,
|
||||
} from "../../../extensions/telegram/api.js";
|
||||
export { TelegramConfigSchema } from "../../config/zod-schema.providers-core.js";
|
||||
|
||||
export { buildTokenChannelStatusSummary } from "../../plugin-sdk/status-helpers.js";
|
||||
|
||||
export {
|
||||
createTelegramActionGate,
|
||||
listTelegramAccountIds,
|
||||
resolveDefaultTelegramAccountId,
|
||||
resolveTelegramPollActionGateState,
|
||||
} from "../../../extensions/telegram/api.js";
|
||||
export { inspectTelegramAccount } from "../../../extensions/telegram/api.js";
|
||||
export {
|
||||
looksLikeTelegramTargetId,
|
||||
normalizeTelegramMessagingTarget,
|
||||
} from "../../../extensions/telegram/api.js";
|
||||
export {
|
||||
parseTelegramReplyToMessageId,
|
||||
parseTelegramThreadId,
|
||||
} from "../../../extensions/telegram/api.js";
|
||||
export {
|
||||
isNumericTelegramUserId,
|
||||
normalizeTelegramAllowFromEntry,
|
||||
} from "../../../extensions/telegram/api.js";
|
||||
export { fetchTelegramChatId } from "../../../extensions/telegram/api.js";
|
||||
export {
|
||||
resolveTelegramInlineButtonsScope,
|
||||
resolveTelegramTargetChatType,
|
||||
} from "../../../extensions/telegram/api.js";
|
||||
export { resolveTelegramReactionLevel } from "../../../extensions/telegram/api.js";
|
||||
export {
|
||||
auditTelegramGroupMembership,
|
||||
collectTelegramUnmentionedGroupIds,
|
||||
createForumTopicTelegram,
|
||||
deleteMessageTelegram,
|
||||
editForumTopicTelegram,
|
||||
editMessageReplyMarkupTelegram,
|
||||
editMessageTelegram,
|
||||
monitorTelegramProvider,
|
||||
pinMessageTelegram,
|
||||
reactMessageTelegram,
|
||||
renameForumTopicTelegram,
|
||||
probeTelegram,
|
||||
sendMessageTelegram,
|
||||
sendPollTelegram,
|
||||
sendStickerTelegram,
|
||||
sendTypingTelegram,
|
||||
unpinMessageTelegram,
|
||||
} from "../../../extensions/telegram/runtime-api.js";
|
||||
export { getCacheStats, searchStickers } from "../../../extensions/telegram/api.js";
|
||||
export { resolveTelegramToken } from "../../../extensions/telegram/runtime-api.js";
|
||||
export { telegramMessageActions } from "../../../extensions/telegram/runtime-api.js";
|
||||
export {
|
||||
setTelegramThreadBindingIdleTimeoutBySessionKey,
|
||||
setTelegramThreadBindingMaxAgeBySessionKey,
|
||||
} from "../../../extensions/telegram/runtime-api.js";
|
||||
export { collectTelegramStatusIssues } from "../../../extensions/telegram/api.js";
|
||||
export { sendTelegramPayloadMessages } from "../../../extensions/telegram/api.js";
|
||||
export {
|
||||
buildBrowseProvidersButton,
|
||||
buildModelsKeyboard,
|
||||
buildProviderKeyboard,
|
||||
calculateTotalPages,
|
||||
getModelsPageSize,
|
||||
type ProviderInfo,
|
||||
} from "../../../extensions/telegram/api.js";
|
||||
export {
|
||||
isTelegramExecApprovalApprover,
|
||||
isTelegramExecApprovalClientEnabled,
|
||||
} from "../../../extensions/telegram/api.js";
|
||||
@ -94,29 +94,29 @@ export type PluginRuntimeChannel = {
|
||||
shouldHandleTextCommands: typeof import("../../auto-reply/commands-registry.js").shouldHandleTextCommands;
|
||||
};
|
||||
discord: {
|
||||
messageActions: typeof import("../../../extensions/discord/runtime-api.js").discordMessageActions;
|
||||
auditChannelPermissions: typeof import("../../../extensions/discord/runtime-api.js").auditDiscordChannelPermissions;
|
||||
listDirectoryGroupsLive: typeof import("../../../extensions/discord/runtime-api.js").listDiscordDirectoryGroupsLive;
|
||||
listDirectoryPeersLive: typeof import("../../../extensions/discord/runtime-api.js").listDiscordDirectoryPeersLive;
|
||||
probeDiscord: typeof import("../../../extensions/discord/runtime-api.js").probeDiscord;
|
||||
resolveChannelAllowlist: typeof import("../../../extensions/discord/runtime-api.js").resolveDiscordChannelAllowlist;
|
||||
resolveUserAllowlist: typeof import("../../../extensions/discord/runtime-api.js").resolveDiscordUserAllowlist;
|
||||
sendComponentMessage: typeof import("../../../extensions/discord/runtime-api.js").sendDiscordComponentMessage;
|
||||
sendMessageDiscord: typeof import("../../../extensions/discord/runtime-api.js").sendMessageDiscord;
|
||||
sendPollDiscord: typeof import("../../../extensions/discord/runtime-api.js").sendPollDiscord;
|
||||
monitorDiscordProvider: typeof import("../../../extensions/discord/runtime-api.js").monitorDiscordProvider;
|
||||
messageActions: typeof import("../../plugin-sdk/discord.js").discordMessageActions;
|
||||
auditChannelPermissions: typeof import("../../plugin-sdk/discord.js").auditDiscordChannelPermissions;
|
||||
listDirectoryGroupsLive: typeof import("../../plugin-sdk/discord.js").listDiscordDirectoryGroupsLive;
|
||||
listDirectoryPeersLive: typeof import("../../plugin-sdk/discord.js").listDiscordDirectoryPeersLive;
|
||||
probeDiscord: typeof import("../../plugin-sdk/discord.js").probeDiscord;
|
||||
resolveChannelAllowlist: typeof import("../../plugin-sdk/discord.js").resolveDiscordChannelAllowlist;
|
||||
resolveUserAllowlist: typeof import("../../plugin-sdk/discord.js").resolveDiscordUserAllowlist;
|
||||
sendComponentMessage: typeof import("../../plugin-sdk/discord.js").sendDiscordComponentMessage;
|
||||
sendMessageDiscord: typeof import("../../plugin-sdk/discord.js").sendMessageDiscord;
|
||||
sendPollDiscord: typeof import("../../plugin-sdk/discord.js").sendPollDiscord;
|
||||
monitorDiscordProvider: typeof import("../../plugin-sdk/discord.js").monitorDiscordProvider;
|
||||
threadBindings: {
|
||||
getManager: typeof import("../../../extensions/discord/runtime-api.js").getThreadBindingManager;
|
||||
resolveIdleTimeoutMs: typeof import("../../../extensions/discord/runtime-api.js").resolveThreadBindingIdleTimeoutMs;
|
||||
resolveInactivityExpiresAt: typeof import("../../../extensions/discord/runtime-api.js").resolveThreadBindingInactivityExpiresAt;
|
||||
resolveMaxAgeMs: typeof import("../../../extensions/discord/runtime-api.js").resolveThreadBindingMaxAgeMs;
|
||||
resolveMaxAgeExpiresAt: typeof import("../../../extensions/discord/runtime-api.js").resolveThreadBindingMaxAgeExpiresAt;
|
||||
setIdleTimeoutBySessionKey: typeof import("../../../extensions/discord/runtime-api.js").setThreadBindingIdleTimeoutBySessionKey;
|
||||
setMaxAgeBySessionKey: typeof import("../../../extensions/discord/runtime-api.js").setThreadBindingMaxAgeBySessionKey;
|
||||
unbindBySessionKey: typeof import("../../../extensions/discord/runtime-api.js").unbindThreadBindingsBySessionKey;
|
||||
getManager: typeof import("../../plugin-sdk/discord.js").getThreadBindingManager;
|
||||
resolveIdleTimeoutMs: typeof import("../../plugin-sdk/discord.js").resolveThreadBindingIdleTimeoutMs;
|
||||
resolveInactivityExpiresAt: typeof import("../../plugin-sdk/discord.js").resolveThreadBindingInactivityExpiresAt;
|
||||
resolveMaxAgeMs: typeof import("../../plugin-sdk/discord.js").resolveThreadBindingMaxAgeMs;
|
||||
resolveMaxAgeExpiresAt: typeof import("../../plugin-sdk/discord.js").resolveThreadBindingMaxAgeExpiresAt;
|
||||
setIdleTimeoutBySessionKey: typeof import("../../plugin-sdk/discord.js").setThreadBindingIdleTimeoutBySessionKey;
|
||||
setMaxAgeBySessionKey: typeof import("../../plugin-sdk/discord.js").setThreadBindingMaxAgeBySessionKey;
|
||||
unbindBySessionKey: typeof import("../../plugin-sdk/discord.js").unbindThreadBindingsBySessionKey;
|
||||
};
|
||||
typing: {
|
||||
pulse: typeof import("../../../extensions/discord/runtime-api.js").sendTypingDiscord;
|
||||
pulse: typeof import("../../plugin-sdk/discord.js").sendTypingDiscord;
|
||||
start: (params: {
|
||||
channelId: string;
|
||||
accountId?: string;
|
||||
@ -128,39 +128,39 @@ export type PluginRuntimeChannel = {
|
||||
}>;
|
||||
};
|
||||
conversationActions: {
|
||||
editMessage: typeof import("../../../extensions/discord/runtime-api.js").editMessageDiscord;
|
||||
deleteMessage: typeof import("../../../extensions/discord/runtime-api.js").deleteMessageDiscord;
|
||||
pinMessage: typeof import("../../../extensions/discord/runtime-api.js").pinMessageDiscord;
|
||||
unpinMessage: typeof import("../../../extensions/discord/runtime-api.js").unpinMessageDiscord;
|
||||
createThread: typeof import("../../../extensions/discord/runtime-api.js").createThreadDiscord;
|
||||
editChannel: typeof import("../../../extensions/discord/runtime-api.js").editChannelDiscord;
|
||||
editMessage: typeof import("../../plugin-sdk/discord.js").editMessageDiscord;
|
||||
deleteMessage: typeof import("../../plugin-sdk/discord.js").deleteMessageDiscord;
|
||||
pinMessage: typeof import("../../plugin-sdk/discord.js").pinMessageDiscord;
|
||||
unpinMessage: typeof import("../../plugin-sdk/discord.js").unpinMessageDiscord;
|
||||
createThread: typeof import("../../plugin-sdk/discord.js").createThreadDiscord;
|
||||
editChannel: typeof import("../../plugin-sdk/discord.js").editChannelDiscord;
|
||||
};
|
||||
};
|
||||
slack: {
|
||||
listDirectoryGroupsLive: typeof import("../../../extensions/slack/runtime-api.js").listSlackDirectoryGroupsLive;
|
||||
listDirectoryPeersLive: typeof import("../../../extensions/slack/runtime-api.js").listSlackDirectoryPeersLive;
|
||||
probeSlack: typeof import("../../../extensions/slack/runtime-api.js").probeSlack;
|
||||
resolveChannelAllowlist: typeof import("../../../extensions/slack/runtime-api.js").resolveSlackChannelAllowlist;
|
||||
resolveUserAllowlist: typeof import("../../../extensions/slack/runtime-api.js").resolveSlackUserAllowlist;
|
||||
sendMessageSlack: typeof import("../../../extensions/slack/runtime-api.js").sendMessageSlack;
|
||||
monitorSlackProvider: typeof import("../../../extensions/slack/runtime-api.js").monitorSlackProvider;
|
||||
handleSlackAction: typeof import("../../../extensions/slack/runtime-api.js").handleSlackAction;
|
||||
listDirectoryGroupsLive: typeof import("../../plugin-sdk/slack.js").listSlackDirectoryGroupsLive;
|
||||
listDirectoryPeersLive: typeof import("../../plugin-sdk/slack.js").listSlackDirectoryPeersLive;
|
||||
probeSlack: typeof import("../../plugin-sdk/slack.js").probeSlack;
|
||||
resolveChannelAllowlist: typeof import("../../plugin-sdk/slack.js").resolveSlackChannelAllowlist;
|
||||
resolveUserAllowlist: typeof import("../../plugin-sdk/slack.js").resolveSlackUserAllowlist;
|
||||
sendMessageSlack: typeof import("../../plugin-sdk/slack.js").sendMessageSlack;
|
||||
monitorSlackProvider: typeof import("../../plugin-sdk/slack.js").monitorSlackProvider;
|
||||
handleSlackAction: typeof import("../../plugin-sdk/slack.js").handleSlackAction;
|
||||
};
|
||||
telegram: {
|
||||
auditGroupMembership: typeof import("../../../extensions/telegram/runtime-api.js").auditTelegramGroupMembership;
|
||||
collectUnmentionedGroupIds: typeof import("../../../extensions/telegram/runtime-api.js").collectTelegramUnmentionedGroupIds;
|
||||
probeTelegram: typeof import("../../../extensions/telegram/runtime-api.js").probeTelegram;
|
||||
resolveTelegramToken: typeof import("../../../extensions/telegram/runtime-api.js").resolveTelegramToken;
|
||||
sendMessageTelegram: typeof import("../../../extensions/telegram/runtime-api.js").sendMessageTelegram;
|
||||
sendPollTelegram: typeof import("../../../extensions/telegram/runtime-api.js").sendPollTelegram;
|
||||
monitorTelegramProvider: typeof import("../../../extensions/telegram/runtime-api.js").monitorTelegramProvider;
|
||||
messageActions: typeof import("../../../extensions/telegram/runtime-api.js").telegramMessageActions;
|
||||
auditGroupMembership: typeof import("../../plugin-sdk/telegram.js").auditTelegramGroupMembership;
|
||||
collectUnmentionedGroupIds: typeof import("../../plugin-sdk/telegram.js").collectTelegramUnmentionedGroupIds;
|
||||
probeTelegram: typeof import("../../plugin-sdk/telegram.js").probeTelegram;
|
||||
resolveTelegramToken: typeof import("../../plugin-sdk/telegram.js").resolveTelegramToken;
|
||||
sendMessageTelegram: typeof import("../../plugin-sdk/telegram.js").sendMessageTelegram;
|
||||
sendPollTelegram: typeof import("../../plugin-sdk/telegram.js").sendPollTelegram;
|
||||
monitorTelegramProvider: typeof import("../../plugin-sdk/telegram.js").monitorTelegramProvider;
|
||||
messageActions: typeof import("../../plugin-sdk/telegram.js").telegramMessageActions;
|
||||
threadBindings: {
|
||||
setIdleTimeoutBySessionKey: typeof import("../../../extensions/telegram/runtime-api.js").setTelegramThreadBindingIdleTimeoutBySessionKey;
|
||||
setMaxAgeBySessionKey: typeof import("../../../extensions/telegram/runtime-api.js").setTelegramThreadBindingMaxAgeBySessionKey;
|
||||
setIdleTimeoutBySessionKey: typeof import("../../plugin-sdk/telegram.js").setTelegramThreadBindingIdleTimeoutBySessionKey;
|
||||
setMaxAgeBySessionKey: typeof import("../../plugin-sdk/telegram.js").setTelegramThreadBindingMaxAgeBySessionKey;
|
||||
};
|
||||
typing: {
|
||||
pulse: typeof import("../../../extensions/telegram/runtime-api.js").sendTypingTelegram;
|
||||
pulse: typeof import("../../plugin-sdk/telegram.js").sendTypingTelegram;
|
||||
start: (params: {
|
||||
to: string;
|
||||
accountId?: string;
|
||||
@ -173,8 +173,8 @@ export type PluginRuntimeChannel = {
|
||||
}>;
|
||||
};
|
||||
conversationActions: {
|
||||
editMessage: typeof import("../../../extensions/telegram/runtime-api.js").editMessageTelegram;
|
||||
editReplyMarkup: typeof import("../../../extensions/telegram/runtime-api.js").editMessageReplyMarkupTelegram;
|
||||
editMessage: typeof import("../../plugin-sdk/telegram.js").editMessageTelegram;
|
||||
editReplyMarkup: typeof import("../../plugin-sdk/telegram.js").editMessageReplyMarkupTelegram;
|
||||
clearReplyMarkup: (
|
||||
chatIdInput: string | number,
|
||||
messageIdInput: string | number,
|
||||
@ -187,10 +187,10 @@ export type PluginRuntimeChannel = {
|
||||
cfg?: ReturnType<typeof import("../../config/config.js").loadConfig>;
|
||||
},
|
||||
) => Promise<{ ok: true; messageId: string; chatId: string }>;
|
||||
deleteMessage: typeof import("../../../extensions/telegram/runtime-api.js").deleteMessageTelegram;
|
||||
renameTopic: typeof import("../../../extensions/telegram/runtime-api.js").renameForumTopicTelegram;
|
||||
pinMessage: typeof import("../../../extensions/telegram/runtime-api.js").pinMessageTelegram;
|
||||
unpinMessage: typeof import("../../../extensions/telegram/runtime-api.js").unpinMessageTelegram;
|
||||
deleteMessage: typeof import("../../plugin-sdk/telegram.js").deleteMessageTelegram;
|
||||
renameTopic: typeof import("../../plugin-sdk/telegram.js").renameForumTopicTelegram;
|
||||
pinMessage: typeof import("../../plugin-sdk/telegram.js").pinMessageTelegram;
|
||||
unpinMessage: typeof import("../../plugin-sdk/telegram.js").unpinMessageTelegram;
|
||||
};
|
||||
};
|
||||
matrix: {
|
||||
@ -200,15 +200,15 @@ export type PluginRuntimeChannel = {
|
||||
};
|
||||
};
|
||||
signal: {
|
||||
probeSignal: typeof import("../../../extensions/signal/runtime-api.js").probeSignal;
|
||||
sendMessageSignal: typeof import("../../../extensions/signal/runtime-api.js").sendMessageSignal;
|
||||
monitorSignalProvider: typeof import("../../../extensions/signal/runtime-api.js").monitorSignalProvider;
|
||||
messageActions: typeof import("../../../extensions/signal/runtime-api.js").signalMessageActions;
|
||||
probeSignal: typeof import("../../plugin-sdk/signal.js").probeSignal;
|
||||
sendMessageSignal: typeof import("../../plugin-sdk/signal.js").sendMessageSignal;
|
||||
monitorSignalProvider: typeof import("../../plugin-sdk/signal.js").monitorSignalProvider;
|
||||
messageActions: typeof import("../../plugin-sdk/signal.js").signalMessageActions;
|
||||
};
|
||||
imessage: {
|
||||
monitorIMessageProvider: typeof import("../../../extensions/imessage/runtime-api.js").monitorIMessageProvider;
|
||||
probeIMessage: typeof import("../../../extensions/imessage/runtime-api.js").probeIMessage;
|
||||
sendMessageIMessage: typeof import("../../../extensions/imessage/runtime-api.js").sendMessageIMessage;
|
||||
monitorIMessageProvider: typeof import("../../plugin-sdk/imessage.js").monitorIMessageProvider;
|
||||
probeIMessage: typeof import("../../plugin-sdk/imessage.js").probeIMessage;
|
||||
sendMessageIMessage: typeof import("../../plugin-sdk/imessage.js").sendMessageIMessage;
|
||||
};
|
||||
whatsapp: {
|
||||
getActiveWebListener: typeof import("./runtime-whatsapp-boundary.js").getActiveWebListener;
|
||||
|
||||
@ -29,13 +29,16 @@ describe("plugin extension import boundary inventory", () => {
|
||||
);
|
||||
});
|
||||
|
||||
it("ignores plugin-sdk boundary shims by scope", async () => {
|
||||
it("ignores boundary shims by scope", async () => {
|
||||
const inventory = await collectPluginExtensionImportBoundaryInventory();
|
||||
|
||||
expect(inventory.some((entry) => entry.file.startsWith("src/plugin-sdk/"))).toBe(false);
|
||||
expect(inventory.some((entry) => entry.file.startsWith("src/plugin-sdk-internal/"))).toBe(
|
||||
false,
|
||||
);
|
||||
expect(inventory.some((entry) => entry.file.startsWith("src/plugins/runtime/runtime-"))).toBe(
|
||||
false,
|
||||
);
|
||||
});
|
||||
|
||||
it("produces stable sorted output", async () => {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user