Compare commits
14 Commits
main
...
codex/arch
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
342d16404e | ||
|
|
4390533672 | ||
|
|
347610d1c7 | ||
|
|
4aca379dc5 | ||
|
|
beab2a6d00 | ||
|
|
2ae1dcf32b | ||
|
|
d4513b96f9 | ||
|
|
b744aaccf3 | ||
|
|
679271f757 | ||
|
|
713ab753c2 | ||
|
|
841b2ca07d | ||
|
|
c9697fdd07 | ||
|
|
8e219caca8 | ||
|
|
f98f2e2127 |
1
extensions/discord/account-api.ts
Normal file
1
extensions/discord/account-api.ts
Normal file
@ -0,0 +1 @@
|
|||||||
|
export * from "./src/accounts.js";
|
||||||
@ -3,6 +3,7 @@ export * from "./src/accounts.js";
|
|||||||
export * from "./src/actions/handle-action.guild-admin.js";
|
export * from "./src/actions/handle-action.guild-admin.js";
|
||||||
export * from "./src/actions/handle-action.js";
|
export * from "./src/actions/handle-action.js";
|
||||||
export * from "./src/components.js";
|
export * from "./src/components.js";
|
||||||
|
export * from "./src/directory-config.js";
|
||||||
export * from "./src/group-policy.js";
|
export * from "./src/group-policy.js";
|
||||||
export * from "./src/normalize.js";
|
export * from "./src/normalize.js";
|
||||||
export * from "./src/pluralkit.js";
|
export * from "./src/pluralkit.js";
|
||||||
|
|||||||
@ -1,12 +1,12 @@
|
|||||||
import {
|
import { createAccountActionGate } from "openclaw/plugin-sdk/account-action-gate";
|
||||||
createAccountActionGate,
|
import { createAccountListHelpers } from "openclaw/plugin-sdk/account-helpers";
|
||||||
createAccountListHelpers,
|
import { normalizeAccountId } from "openclaw/plugin-sdk/account-id";
|
||||||
normalizeAccountId,
|
import type {
|
||||||
resolveAccountEntry,
|
DiscordAccountConfig,
|
||||||
type OpenClawConfig,
|
DiscordActionConfig,
|
||||||
type DiscordAccountConfig,
|
OpenClawConfig,
|
||||||
type DiscordActionConfig,
|
} from "openclaw/plugin-sdk/discord-core";
|
||||||
} from "./runtime-api.js";
|
import { resolveAccountEntry } from "openclaw/plugin-sdk/routing";
|
||||||
import { resolveDiscordToken } from "./token.js";
|
import { resolveDiscordToken } from "./token.js";
|
||||||
|
|
||||||
export type ResolvedDiscordAccount = {
|
export type ResolvedDiscordAccount = {
|
||||||
|
|||||||
@ -1 +1,7 @@
|
|||||||
export * from "./src/accounts.js";
|
export * from "./src/accounts.js";
|
||||||
|
export * from "./src/message-actions.js";
|
||||||
|
export * from "./src/monitor.js";
|
||||||
|
export * from "./src/probe.js";
|
||||||
|
export * from "./src/reaction-level.js";
|
||||||
|
export * from "./src/send-reactions.js";
|
||||||
|
export * from "./src/send.js";
|
||||||
|
|||||||
@ -3,6 +3,7 @@ export * from "./src/accounts.js";
|
|||||||
export * from "./src/actions.js";
|
export * from "./src/actions.js";
|
||||||
export * from "./src/blocks-input.js";
|
export * from "./src/blocks-input.js";
|
||||||
export * from "./src/blocks-render.js";
|
export * from "./src/blocks-render.js";
|
||||||
|
export * from "./src/directory-config.js";
|
||||||
export * from "./src/http/index.js";
|
export * from "./src/http/index.js";
|
||||||
export * from "./src/interactive-replies.js";
|
export * from "./src/interactive-replies.js";
|
||||||
export * from "./src/message-actions.js";
|
export * from "./src/message-actions.js";
|
||||||
|
|||||||
@ -2,6 +2,7 @@ export * from "./src/account-inspect.js";
|
|||||||
export * from "./src/accounts.js";
|
export * from "./src/accounts.js";
|
||||||
export * from "./src/allow-from.js";
|
export * from "./src/allow-from.js";
|
||||||
export * from "./src/api-fetch.js";
|
export * from "./src/api-fetch.js";
|
||||||
|
export * from "./src/directory-config.js";
|
||||||
export * from "./src/exec-approvals.js";
|
export * from "./src/exec-approvals.js";
|
||||||
export * from "./src/group-policy.js";
|
export * from "./src/group-policy.js";
|
||||||
export * from "./src/inline-buttons.js";
|
export * from "./src/inline-buttons.js";
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
export * from "./src/accounts.js";
|
export * from "./src/accounts.js";
|
||||||
|
export * from "./src/directory-config.js";
|
||||||
export * from "./src/group-policy.js";
|
export * from "./src/group-policy.js";
|
||||||
export { resolveWhatsAppGroupIntroHint } from "openclaw/plugin-sdk/whatsapp-core";
|
export { resolveWhatsAppGroupIntroHint } from "openclaw/plugin-sdk/whatsapp-core";
|
||||||
|
|||||||
@ -362,6 +362,10 @@
|
|||||||
"types": "./dist/plugin-sdk/zalouser.d.ts",
|
"types": "./dist/plugin-sdk/zalouser.d.ts",
|
||||||
"default": "./dist/plugin-sdk/zalouser.js"
|
"default": "./dist/plugin-sdk/zalouser.js"
|
||||||
},
|
},
|
||||||
|
"./plugin-sdk/account-action-gate": {
|
||||||
|
"types": "./dist/plugin-sdk/account-action-gate.d.ts",
|
||||||
|
"default": "./dist/plugin-sdk/account-action-gate.js"
|
||||||
|
},
|
||||||
"./plugin-sdk/account-helpers": {
|
"./plugin-sdk/account-helpers": {
|
||||||
"types": "./dist/plugin-sdk/account-helpers.d.ts",
|
"types": "./dist/plugin-sdk/account-helpers.d.ts",
|
||||||
"default": "./dist/plugin-sdk/account-helpers.js"
|
"default": "./dist/plugin-sdk/account-helpers.js"
|
||||||
|
|||||||
@ -80,6 +80,7 @@
|
|||||||
"voice-call",
|
"voice-call",
|
||||||
"zalo",
|
"zalo",
|
||||||
"zalouser",
|
"zalouser",
|
||||||
|
"account-action-gate",
|
||||||
"account-helpers",
|
"account-helpers",
|
||||||
"account-id",
|
"account-id",
|
||||||
"account-resolution",
|
"account-resolution",
|
||||||
|
|||||||
4
src/channels/bluebubbles/plugin-sdk-bridge.ts
Normal file
4
src/channels/bluebubbles/plugin-sdk-bridge.ts
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
export {
|
||||||
|
resolveBlueBubblesGroupRequireMention,
|
||||||
|
resolveBlueBubblesGroupToolPolicy,
|
||||||
|
} from "../../../extensions/bluebubbles/runtime-api.js";
|
||||||
5
src/channels/feishu/plugin-sdk-bridge.ts
Normal file
5
src/channels/feishu/plugin-sdk-bridge.ts
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
export { feishuSetupAdapter, feishuSetupWizard } from "../../../extensions/feishu/setup-api.js";
|
||||||
|
export {
|
||||||
|
buildFeishuConversationId,
|
||||||
|
parseFeishuConversationId,
|
||||||
|
} from "../../../extensions/feishu/api.js";
|
||||||
8
src/channels/imessage/api-bridge.ts
Normal file
8
src/channels/imessage/api-bridge.ts
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
export { normalizeIMessageHandle } from "../../../extensions/imessage/api.js";
|
||||||
|
export type { ParsedChatTarget } from "../../../extensions/imessage/api.js";
|
||||||
|
export {
|
||||||
|
parseChatAllowTargetPrefixes,
|
||||||
|
parseChatTargetPrefixesOrThrow,
|
||||||
|
resolveServicePrefixedAllowTarget,
|
||||||
|
resolveServicePrefixedTarget,
|
||||||
|
} from "../../../extensions/imessage/api.js";
|
||||||
9
src/channels/imessage/plugin-sdk-bridge.ts
Normal file
9
src/channels/imessage/plugin-sdk-bridge.ts
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
export {
|
||||||
|
monitorIMessageProvider,
|
||||||
|
probeIMessage,
|
||||||
|
sendMessageIMessage,
|
||||||
|
} from "../../../extensions/imessage/runtime-api.js";
|
||||||
|
export {
|
||||||
|
resolveIMessageGroupRequireMention,
|
||||||
|
resolveIMessageGroupToolPolicy,
|
||||||
|
} from "../../../extensions/imessage/api.js";
|
||||||
7
src/channels/irc/plugin-sdk-bridge.ts
Normal file
7
src/channels/irc/plugin-sdk-bridge.ts
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
export {
|
||||||
|
ircSetupAdapter,
|
||||||
|
ircSetupWizard,
|
||||||
|
listIrcAccountIds,
|
||||||
|
resolveDefaultIrcAccountId,
|
||||||
|
resolveIrcAccount,
|
||||||
|
} from "../../../extensions/irc/api.js";
|
||||||
1
src/channels/line/plugin-sdk-bridge.ts
Normal file
1
src/channels/line/plugin-sdk-bridge.ts
Normal file
@ -0,0 +1 @@
|
|||||||
|
export { lineSetupAdapter, lineSetupWizard } from "../../../extensions/line/setup-api.js";
|
||||||
15
src/channels/signal/plugin-sdk-bridge.ts
Normal file
15
src/channels/signal/plugin-sdk-bridge.ts
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
export type { ResolvedSignalAccount } from "../../../extensions/signal/api.js";
|
||||||
|
|
||||||
|
export {
|
||||||
|
listEnabledSignalAccounts,
|
||||||
|
listSignalAccountIds,
|
||||||
|
monitorSignalProvider,
|
||||||
|
probeSignal,
|
||||||
|
removeReactionSignal,
|
||||||
|
resolveDefaultSignalAccountId,
|
||||||
|
resolveSignalReactionLevel,
|
||||||
|
resolveSignalAccount,
|
||||||
|
sendMessageSignal,
|
||||||
|
sendReactionSignal,
|
||||||
|
signalMessageActions,
|
||||||
|
} from "../../../extensions/signal/api.js";
|
||||||
51
src/channels/slack/plugin-sdk-bridge.ts
Normal file
51
src/channels/slack/plugin-sdk-bridge.ts
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
export type { InspectedSlackAccount, ResolvedSlackAccount } from "../../../extensions/slack/api.js";
|
||||||
|
export type { SlackActionContext } from "../../../extensions/slack/runtime-api.js";
|
||||||
|
export type { SlackTarget, SlackTargetKind } from "../../../extensions/slack/api.js";
|
||||||
|
|
||||||
|
export {
|
||||||
|
buildSlackThreadingToolContext,
|
||||||
|
deleteSlackMessage,
|
||||||
|
downloadSlackFile,
|
||||||
|
editSlackMessage,
|
||||||
|
extractSlackToolSend,
|
||||||
|
getSlackMemberInfo,
|
||||||
|
handleSlackHttpRequest,
|
||||||
|
inspectSlackAccount,
|
||||||
|
isSlackInteractiveRepliesEnabled,
|
||||||
|
listEnabledSlackAccounts,
|
||||||
|
listSlackAccountIds,
|
||||||
|
listSlackEmojis,
|
||||||
|
listSlackMessageActions,
|
||||||
|
listSlackPins,
|
||||||
|
listSlackReactions,
|
||||||
|
parseSlackBlocksInput,
|
||||||
|
parseSlackTarget,
|
||||||
|
pinSlackMessage,
|
||||||
|
reactSlackMessage,
|
||||||
|
readSlackMessages,
|
||||||
|
recordSlackThreadParticipation,
|
||||||
|
removeOwnSlackReactions,
|
||||||
|
removeSlackReaction,
|
||||||
|
resolveSlackAccount,
|
||||||
|
resolveSlackChannelId,
|
||||||
|
resolveDefaultSlackAccountId,
|
||||||
|
resolveSlackGroupRequireMention,
|
||||||
|
resolveSlackGroupToolPolicy,
|
||||||
|
resolveSlackReplyToMode,
|
||||||
|
sendSlackMessage,
|
||||||
|
unpinSlackMessage,
|
||||||
|
} from "../../../extensions/slack/api.js";
|
||||||
|
export {
|
||||||
|
handleSlackAction,
|
||||||
|
listSlackDirectoryGroupsLive,
|
||||||
|
listSlackDirectoryPeersLive,
|
||||||
|
monitorSlackProvider,
|
||||||
|
probeSlack,
|
||||||
|
resolveSlackChannelAllowlist,
|
||||||
|
resolveSlackUserAllowlist,
|
||||||
|
sendMessageSlack,
|
||||||
|
} from "../../../extensions/slack/runtime-api.js";
|
||||||
|
export {
|
||||||
|
listSlackDirectoryGroupsFromConfig,
|
||||||
|
listSlackDirectoryPeersFromConfig,
|
||||||
|
} from "../../../extensions/slack/api.js";
|
||||||
4
src/channels/synology-chat/plugin-sdk-bridge.ts
Normal file
4
src/channels/synology-chat/plugin-sdk-bridge.ts
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
export {
|
||||||
|
synologyChatSetupAdapter,
|
||||||
|
synologyChatSetupWizard,
|
||||||
|
} from "../../../extensions/synology-chat/setup-api.js";
|
||||||
68
src/channels/telegram/plugin-sdk-bridge.ts
Normal file
68
src/channels/telegram/plugin-sdk-bridge.ts
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
export type {
|
||||||
|
InspectedTelegramAccount,
|
||||||
|
ProviderInfo,
|
||||||
|
ResolvedTelegramAccount,
|
||||||
|
StickerMetadata,
|
||||||
|
TelegramButtonStyle,
|
||||||
|
TelegramInlineButtons,
|
||||||
|
} from "../../../extensions/telegram/api.js";
|
||||||
|
export type { TelegramProbe } from "../../../extensions/telegram/runtime-api.js";
|
||||||
|
|
||||||
|
export {
|
||||||
|
buildBrowseProvidersButton,
|
||||||
|
buildModelsKeyboard,
|
||||||
|
buildProviderKeyboard,
|
||||||
|
calculateTotalPages,
|
||||||
|
collectTelegramStatusIssues,
|
||||||
|
createTelegramActionGate,
|
||||||
|
fetchTelegramChatId,
|
||||||
|
getCacheStats,
|
||||||
|
getModelsPageSize,
|
||||||
|
inspectTelegramAccount,
|
||||||
|
isNumericTelegramUserId,
|
||||||
|
isTelegramExecApprovalApprover,
|
||||||
|
isTelegramExecApprovalClientEnabled,
|
||||||
|
listTelegramAccountIds,
|
||||||
|
looksLikeTelegramTargetId,
|
||||||
|
normalizeTelegramAllowFromEntry,
|
||||||
|
normalizeTelegramMessagingTarget,
|
||||||
|
parseTelegramReplyToMessageId,
|
||||||
|
parseTelegramThreadId,
|
||||||
|
resolveTelegramAccount,
|
||||||
|
resolveDefaultTelegramAccountId,
|
||||||
|
resolveTelegramGroupRequireMention,
|
||||||
|
resolveTelegramGroupToolPolicy,
|
||||||
|
resolveTelegramInlineButtonsScope,
|
||||||
|
resolveTelegramPollActionGateState,
|
||||||
|
resolveTelegramReactionLevel,
|
||||||
|
resolveTelegramTargetChatType,
|
||||||
|
searchStickers,
|
||||||
|
sendTelegramPayloadMessages,
|
||||||
|
} from "../../../extensions/telegram/api.js";
|
||||||
|
export {
|
||||||
|
auditTelegramGroupMembership,
|
||||||
|
collectTelegramUnmentionedGroupIds,
|
||||||
|
createForumTopicTelegram,
|
||||||
|
deleteMessageTelegram,
|
||||||
|
editForumTopicTelegram,
|
||||||
|
editMessageReplyMarkupTelegram,
|
||||||
|
editMessageTelegram,
|
||||||
|
monitorTelegramProvider,
|
||||||
|
pinMessageTelegram,
|
||||||
|
probeTelegram,
|
||||||
|
reactMessageTelegram,
|
||||||
|
renameForumTopicTelegram,
|
||||||
|
resolveTelegramToken,
|
||||||
|
sendMessageTelegram,
|
||||||
|
sendPollTelegram,
|
||||||
|
sendStickerTelegram,
|
||||||
|
sendTypingTelegram,
|
||||||
|
setTelegramThreadBindingIdleTimeoutBySessionKey,
|
||||||
|
setTelegramThreadBindingMaxAgeBySessionKey,
|
||||||
|
telegramMessageActions,
|
||||||
|
unpinMessageTelegram,
|
||||||
|
} from "../../../extensions/telegram/runtime-api.js";
|
||||||
|
export {
|
||||||
|
listTelegramDirectoryGroupsFromConfig,
|
||||||
|
listTelegramDirectoryPeersFromConfig,
|
||||||
|
} from "../../../extensions/telegram/api.js";
|
||||||
1
src/channels/whatsapp/action-runtime-bridge.ts
Normal file
1
src/channels/whatsapp/action-runtime-bridge.ts
Normal file
@ -0,0 +1 @@
|
|||||||
|
export { handleWhatsAppAction } from "../../../extensions/whatsapp/action-runtime-api.js";
|
||||||
1
src/channels/whatsapp/login-qr-bridge.ts
Normal file
1
src/channels/whatsapp/login-qr-bridge.ts
Normal file
@ -0,0 +1 @@
|
|||||||
|
export { startWebLoginWithQr, waitForWebLogin } from "../../../extensions/whatsapp/login-qr-api.js";
|
||||||
50
src/channels/whatsapp/plugin-sdk-bridge.ts
Normal file
50
src/channels/whatsapp/plugin-sdk-bridge.ts
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
export type {
|
||||||
|
WebChannelStatus,
|
||||||
|
WebInboundMessage,
|
||||||
|
WebListenerCloseReason,
|
||||||
|
WebMonitorTuning,
|
||||||
|
} from "../../../extensions/whatsapp/runtime-api.js";
|
||||||
|
|
||||||
|
export {
|
||||||
|
hasAnyWhatsAppAuth,
|
||||||
|
listEnabledWhatsAppAccounts,
|
||||||
|
resolveWhatsAppAccount,
|
||||||
|
resolveWhatsAppGroupRequireMention,
|
||||||
|
resolveWhatsAppGroupToolPolicy,
|
||||||
|
} from "../../../extensions/whatsapp/api.js";
|
||||||
|
export {
|
||||||
|
createWhatsAppLoginTool,
|
||||||
|
createWaSocket,
|
||||||
|
DEFAULT_WEB_MEDIA_BYTES,
|
||||||
|
extractMediaPlaceholder,
|
||||||
|
extractText,
|
||||||
|
formatError,
|
||||||
|
getActiveWebListener,
|
||||||
|
getDefaultLocalRoots,
|
||||||
|
getStatusCode,
|
||||||
|
getWebAuthAgeMs,
|
||||||
|
HEARTBEAT_PROMPT,
|
||||||
|
HEARTBEAT_TOKEN,
|
||||||
|
loadWebMedia,
|
||||||
|
loadWebMediaRaw,
|
||||||
|
loginWeb,
|
||||||
|
logWebSelfId,
|
||||||
|
logoutWeb,
|
||||||
|
monitorWebChannel,
|
||||||
|
monitorWebInbox,
|
||||||
|
optimizeImageToJpeg,
|
||||||
|
pickWebChannel,
|
||||||
|
readWebSelfId,
|
||||||
|
resolveHeartbeatRecipients,
|
||||||
|
runWebHeartbeatOnce,
|
||||||
|
sendMessageWhatsApp,
|
||||||
|
sendPollWhatsApp,
|
||||||
|
sendReactionWhatsApp,
|
||||||
|
waitForWaConnection,
|
||||||
|
WA_WEB_AUTH_DIR,
|
||||||
|
webAuthExists,
|
||||||
|
} from "../../../extensions/whatsapp/runtime-api.js";
|
||||||
|
export {
|
||||||
|
listWhatsAppDirectoryGroupsFromConfig,
|
||||||
|
listWhatsAppDirectoryPeersFromConfig,
|
||||||
|
} from "../../../extensions/whatsapp/api.js";
|
||||||
6
src/channels/whatsapp/web-media-bridge.ts
Normal file
6
src/channels/whatsapp/web-media-bridge.ts
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
export type { WebMediaResult } from "../../../extensions/whatsapp/runtime-api.js";
|
||||||
|
export {
|
||||||
|
getDefaultLocalRoots,
|
||||||
|
loadWebMedia,
|
||||||
|
loadWebMediaRaw,
|
||||||
|
} from "../../../extensions/whatsapp/runtime-api.js";
|
||||||
1
src/channels/zalo/plugin-sdk-bridge.ts
Normal file
1
src/channels/zalo/plugin-sdk-bridge.ts
Normal file
@ -0,0 +1 @@
|
|||||||
|
export { zaloSetupAdapter, zaloSetupWizard } from "../../../extensions/zalo/api.js";
|
||||||
@ -4,10 +4,15 @@ import path from "node:path";
|
|||||||
import { afterAll, beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
|
import { afterAll, beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
|
||||||
import { NON_ENV_SECRETREF_MARKER } from "../agents/model-auth-markers.js";
|
import { NON_ENV_SECRETREF_MARKER } from "../agents/model-auth-markers.js";
|
||||||
|
|
||||||
const resolveProviderUsageAuthWithPluginMock = vi.fn(async () => null);
|
type ResolveProviderUsageAuthWithPlugin =
|
||||||
|
typeof import("../plugins/provider-runtime.js").resolveProviderUsageAuthWithPlugin;
|
||||||
|
|
||||||
|
const resolveProviderUsageAuthWithPluginMock = vi.fn<ResolveProviderUsageAuthWithPlugin>(
|
||||||
|
async () => null,
|
||||||
|
);
|
||||||
|
|
||||||
vi.mock("../plugins/provider-runtime.js", () => ({
|
vi.mock("../plugins/provider-runtime.js", () => ({
|
||||||
resolveProviderUsageAuthWithPlugin: (...args: unknown[]) =>
|
resolveProviderUsageAuthWithPlugin: (...args: Parameters<ResolveProviderUsageAuthWithPlugin>) =>
|
||||||
resolveProviderUsageAuthWithPluginMock(...args),
|
resolveProviderUsageAuthWithPluginMock(...args),
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
|||||||
1
src/plugin-sdk/account-action-gate.ts
Normal file
1
src/plugin-sdk/account-action-gate.ts
Normal file
@ -0,0 +1 @@
|
|||||||
|
export { createAccountActionGate } from "../channels/plugins/account-action-gate.js";
|
||||||
@ -1,3 +1,8 @@
|
|||||||
|
import {
|
||||||
|
resolveDiscordAccount as resolveDiscordAccountImpl,
|
||||||
|
type ResolvedDiscordAccount as DiscordResolvedDiscordAccount,
|
||||||
|
} from "../../extensions/discord/account-api.js";
|
||||||
|
|
||||||
export type { OpenClawConfig } from "../config/config.js";
|
export type { OpenClawConfig } from "../config/config.js";
|
||||||
|
|
||||||
export { createAccountActionGate } from "../channels/plugins/account-action-gate.js";
|
export { createAccountActionGate } from "../channels/plugins/account-action-gate.js";
|
||||||
@ -11,15 +16,25 @@ export {
|
|||||||
} from "../routing/session-key.js";
|
} from "../routing/session-key.js";
|
||||||
export { normalizeE164, pathExists, resolveUserPath } from "../utils.js";
|
export { normalizeE164, pathExists, resolveUserPath } from "../utils.js";
|
||||||
export {
|
export {
|
||||||
resolveDiscordAccount,
|
resolveSlackAccount,
|
||||||
type ResolvedDiscordAccount,
|
type ResolvedSlackAccount,
|
||||||
} from "../../extensions/discord/api.js";
|
} from "../channels/slack/plugin-sdk-bridge.js";
|
||||||
export { resolveSlackAccount, type ResolvedSlackAccount } from "../../extensions/slack/api.js";
|
|
||||||
export {
|
export {
|
||||||
resolveTelegramAccount,
|
resolveTelegramAccount,
|
||||||
type ResolvedTelegramAccount,
|
type ResolvedTelegramAccount,
|
||||||
} from "../../extensions/telegram/api.js";
|
} from "../channels/telegram/plugin-sdk-bridge.js";
|
||||||
export { resolveSignalAccount, type ResolvedSignalAccount } from "../../extensions/signal/api.js";
|
export {
|
||||||
|
resolveSignalAccount,
|
||||||
|
type ResolvedSignalAccount,
|
||||||
|
} from "../channels/signal/plugin-sdk-bridge.js";
|
||||||
|
|
||||||
|
export type ResolvedDiscordAccount = DiscordResolvedDiscordAccount;
|
||||||
|
|
||||||
|
export function resolveDiscordAccount(
|
||||||
|
...args: Parameters<typeof resolveDiscordAccountImpl>
|
||||||
|
): ReturnType<typeof resolveDiscordAccountImpl> {
|
||||||
|
return resolveDiscordAccountImpl(...args);
|
||||||
|
}
|
||||||
|
|
||||||
/** Resolve an account by id, then fall back to the default account when the primary lacks credentials. */
|
/** Resolve an account by id, then fall back to the default account when the primary lacks credentials. */
|
||||||
export function resolveAccountWithDefaultFallback<TAccount>(params: {
|
export function resolveAccountWithDefaultFallback<TAccount>(params: {
|
||||||
|
|||||||
@ -28,7 +28,7 @@ export { buildChannelConfigSchema } from "../channels/plugins/config-schema.js";
|
|||||||
export {
|
export {
|
||||||
resolveBlueBubblesGroupRequireMention,
|
resolveBlueBubblesGroupRequireMention,
|
||||||
resolveBlueBubblesGroupToolPolicy,
|
resolveBlueBubblesGroupToolPolicy,
|
||||||
} from "../../extensions/bluebubbles/runtime-api.js";
|
} from "../channels/bluebubbles/plugin-sdk-bridge.js";
|
||||||
export { formatPairingApproveHint } from "../channels/plugins/helpers.js";
|
export { formatPairingApproveHint } from "../channels/plugins/helpers.js";
|
||||||
export { resolveChannelMediaMaxBytes } from "../channels/plugins/media-limits.js";
|
export { resolveChannelMediaMaxBytes } from "../channels/plugins/media-limits.js";
|
||||||
export {
|
export {
|
||||||
@ -62,13 +62,13 @@ export {
|
|||||||
export { buildSecretInputSchema } from "./secret-input-schema.js";
|
export { buildSecretInputSchema } from "./secret-input-schema.js";
|
||||||
export { ToolPolicySchema } from "../config/zod-schema.agent-runtime.js";
|
export { ToolPolicySchema } from "../config/zod-schema.agent-runtime.js";
|
||||||
export { MarkdownConfigSchema } from "../config/zod-schema.core.js";
|
export { MarkdownConfigSchema } from "../config/zod-schema.core.js";
|
||||||
export type { ParsedChatTarget } from "../../extensions/imessage/api.js";
|
export type { ParsedChatTarget } from "../channels/imessage/api-bridge.js";
|
||||||
export {
|
export {
|
||||||
parseChatAllowTargetPrefixes,
|
parseChatAllowTargetPrefixes,
|
||||||
parseChatTargetPrefixesOrThrow,
|
parseChatTargetPrefixesOrThrow,
|
||||||
resolveServicePrefixedAllowTarget,
|
resolveServicePrefixedAllowTarget,
|
||||||
resolveServicePrefixedTarget,
|
resolveServicePrefixedTarget,
|
||||||
} from "../../extensions/imessage/api.js";
|
} from "../channels/imessage/api-bridge.js";
|
||||||
export { stripMarkdown } from "../line/markdown-to-line.js";
|
export { stripMarkdown } from "../line/markdown-to-line.js";
|
||||||
export { parseFiniteNumber } from "../infra/parse-finite-number.js";
|
export { parseFiniteNumber } from "../infra/parse-finite-number.js";
|
||||||
export { emptyPluginConfigSchema } from "../plugins/config-schema.js";
|
export { emptyPluginConfigSchema } from "../plugins/config-schema.js";
|
||||||
|
|||||||
@ -352,6 +352,106 @@ function expectNoSiblingExtensionPrivateSrcImports(file: string, imports: string
|
|||||||
}
|
}
|
||||||
|
|
||||||
describe("channel import guardrails", () => {
|
describe("channel import guardrails", () => {
|
||||||
|
it("keeps Discord threading ownership on extension public seams", () => {
|
||||||
|
const text = readSource("src/plugin-sdk/discord.ts");
|
||||||
|
const bridgeImports = [...text.matchAll(/import(?: type)?\s*\{[\s\S]*?\}\s*from\s+"[^"]+";/g)]
|
||||||
|
.map((match) => match[0])
|
||||||
|
.filter((statement) => statement.includes("../channels/discord/plugin-sdk-bridge.js"))
|
||||||
|
.join("\n");
|
||||||
|
expect(bridgeImports).not.toMatch(
|
||||||
|
/\b(?:ThreadBindingManager|ThreadBindingRecord|ThreadBindingTargetKind)\b/,
|
||||||
|
);
|
||||||
|
expect(bridgeImports).not.toMatch(
|
||||||
|
/\b(?:autoBindSpawnedDiscordSubagent|getThreadBindingManager|listThreadBindingsBySessionKey|resolveThreadBindingIdleTimeoutMs|resolveThreadBindingInactivityExpiresAt|resolveThreadBindingMaxAgeExpiresAt|resolveThreadBindingMaxAgeMs|setThreadBindingIdleTimeoutBySessionKey|setThreadBindingMaxAgeBySessionKey|unbindThreadBindingsBySessionKey)\b/,
|
||||||
|
);
|
||||||
|
expect(text).toMatch(/from\s+"..\/..\/extensions\/discord\/runtime-api\.js";/);
|
||||||
|
expect(text).toMatch(/from\s+"..\/..\/extensions\/discord\/session-key-api\.js";/);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("keeps Discord directory ownership on extension public seams", () => {
|
||||||
|
const text = readSource("src/plugin-sdk/discord.ts");
|
||||||
|
const bridgeImports = [...text.matchAll(/import(?: type)?\s*\{[\s\S]*?\}\s*from\s+"[^"]+";/g)]
|
||||||
|
.map((match) => match[0])
|
||||||
|
.filter((statement) => statement.includes("../channels/discord/plugin-sdk-bridge.js"))
|
||||||
|
.join("\n");
|
||||||
|
expect(bridgeImports).not.toMatch(
|
||||||
|
/\b(?:listDiscordDirectoryGroupsFromConfig|listDiscordDirectoryPeersFromConfig|listDiscordDirectoryGroupsLive|listDiscordDirectoryPeersLive|resolveDiscordChannelAllowlist|resolveDiscordUserAllowlist)\b/,
|
||||||
|
);
|
||||||
|
expect(text).toMatch(/from\s+"..\/..\/extensions\/discord\/api\.js";/);
|
||||||
|
expect(text).toMatch(/from\s+"..\/..\/extensions\/discord\/runtime-api\.js";/);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("keeps Discord actions ownership on extension public seams", () => {
|
||||||
|
const text = readSource("src/plugin-sdk/discord.ts");
|
||||||
|
const bridgeImports = [...text.matchAll(/import(?: type)?\s*\{[\s\S]*?\}\s*from\s+"[^"]+";/g)]
|
||||||
|
.map((match) => match[0])
|
||||||
|
.filter((statement) => statement.includes("../channels/discord/plugin-sdk-bridge.js"))
|
||||||
|
.join("\n");
|
||||||
|
expect(bridgeImports).not.toMatch(
|
||||||
|
/\b(?:createDiscordActionGate|readDiscordComponentSpec|discordMessageActions|addRoleDiscord|auditDiscordChannelPermissions|banMemberDiscord|collectDiscordAuditChannelIds|createChannelDiscord|createScheduledEventDiscord|createThreadDiscord|deleteChannelDiscord|deleteMessageDiscord|editChannelDiscord|editMessageDiscord|fetchChannelPermissionsDiscord|fetchMemberInfoDiscord|fetchMessageDiscord|fetchReactionsDiscord|fetchRoleInfoDiscord|moveChannelDiscord|pinMessageDiscord|reactMessageDiscord|removeChannelPermissionDiscord|removeOwnReactionsDiscord|removeReactionDiscord|removeRoleDiscord|sendDiscordComponentMessage|sendPollDiscord|sendStickerDiscord|setChannelPermissionDiscord|timeoutMemberDiscord|uploadEmojiDiscord|uploadStickerDiscord)\b/,
|
||||||
|
);
|
||||||
|
expect(text).toMatch(/from\s+"..\/..\/extensions\/discord\/api\.js";/);
|
||||||
|
expect(text).toMatch(/from\s+"..\/..\/extensions\/discord\/runtime-api\.js";/);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("keeps Discord outbound ownership on extension public seams", () => {
|
||||||
|
const text = readSource("src/plugin-sdk/discord.ts");
|
||||||
|
const bridgeImports = [...text.matchAll(/import(?: type)?\s*\{[\s\S]*?\}\s*from\s+"[^"]+";/g)]
|
||||||
|
.map((match) => match[0])
|
||||||
|
.filter((statement) => statement.includes("../channels/discord/plugin-sdk-bridge.js"))
|
||||||
|
.join("\n");
|
||||||
|
expect(bridgeImports).not.toMatch(
|
||||||
|
/\b(?:looksLikeDiscordTargetId|normalizeDiscordMessagingTarget|normalizeDiscordOutboundTarget|resolveDiscordChannelId|sendMessageDiscord|sendTypingDiscord|sendVoiceMessageDiscord)\b/,
|
||||||
|
);
|
||||||
|
expect(text).toMatch(/from\s+"..\/..\/extensions\/discord\/api\.js";/);
|
||||||
|
expect(text).toMatch(/from\s+"..\/..\/extensions\/discord\/runtime-api\.js";/);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("keeps Discord messaging ownership on extension public seams", () => {
|
||||||
|
const text = readSource("src/plugin-sdk/discord.ts");
|
||||||
|
const bridgeImports = [...text.matchAll(/import(?: type)?\s*\{[\s\S]*?\}\s*from\s+"[^"]+";/g)]
|
||||||
|
.map((match) => match[0])
|
||||||
|
.filter((statement) => statement.includes("../channels/discord/plugin-sdk-bridge.js"))
|
||||||
|
.join("\n");
|
||||||
|
expect(bridgeImports).not.toMatch(
|
||||||
|
/\b(?:fetchChannelInfoDiscord|listGuildChannelsDiscord|listGuildEmojisDiscord|listPinsDiscord|listScheduledEventsDiscord|listThreadsDiscord|readMessagesDiscord|searchMessagesDiscord)\b/,
|
||||||
|
);
|
||||||
|
expect(text).toMatch(/from\s+"..\/..\/extensions\/discord\/runtime-api\.js";/);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("keeps Discord gateway ownership on extension public seams", () => {
|
||||||
|
const text = readSource("src/plugin-sdk/discord.ts");
|
||||||
|
const bridgeImports = [...text.matchAll(/import(?: type)?\s*\{[\s\S]*?\}\s*from\s+"[^"]+";/g)]
|
||||||
|
.map((match) => match[0])
|
||||||
|
.filter((statement) => statement.includes("../channels/discord/plugin-sdk-bridge.js"))
|
||||||
|
.join("\n");
|
||||||
|
expect(bridgeImports).not.toMatch(
|
||||||
|
/\b(?:fetchVoiceStatusDiscord|getGateway|getPresence|monitorDiscordProvider)\b/,
|
||||||
|
);
|
||||||
|
expect(text).toMatch(/from\s+"..\/..\/extensions\/discord\/runtime-api\.js";/);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("keeps Discord status ownership on extension public seams", () => {
|
||||||
|
const text = readSource("src/plugin-sdk/discord.ts");
|
||||||
|
const bridgeImports = [...text.matchAll(/import(?: type)?\s*\{[\s\S]*?\}\s*from\s+"[^"]+";/g)]
|
||||||
|
.map((match) => match[0])
|
||||||
|
.filter((statement) => statement.includes("../channels/discord/plugin-sdk-bridge.js"))
|
||||||
|
.join("\n");
|
||||||
|
expect(bridgeImports).not.toMatch(
|
||||||
|
/\b(?:collectDiscordStatusIssues|probeDiscord|DISCORD_DEFAULT_INBOUND_WORKER_TIMEOUT_MS|DISCORD_DEFAULT_LISTENER_TIMEOUT_MS)\b/,
|
||||||
|
);
|
||||||
|
expect(text).toMatch(/from\s+"..\/..\/extensions\/discord\/api\.js";/);
|
||||||
|
expect(text).toMatch(/from\s+"..\/..\/extensions\/discord\/runtime-api\.js";/);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("keeps plugin-sdk/discord off the Discord bridge entirely", () => {
|
||||||
|
const text = readSource("src/plugin-sdk/discord.ts");
|
||||||
|
expect(text).not.toMatch(/plugin-sdk-bridge\.js/);
|
||||||
|
expect(text).toMatch(/from\s+"..\/..\/extensions\/discord\/api\.js";/);
|
||||||
|
expect(text).toMatch(/from\s+"..\/..\/extensions\/discord\/runtime-api\.js";/);
|
||||||
|
expect(text).toMatch(/from\s+"..\/..\/extensions\/discord\/session-key-api\.js";/);
|
||||||
|
});
|
||||||
|
|
||||||
it("keeps channel helper modules off their own SDK barrels", () => {
|
it("keeps channel helper modules off their own SDK barrels", () => {
|
||||||
for (const source of SAME_CHANNEL_SDK_GUARDS) {
|
for (const source of SAME_CHANNEL_SDK_GUARDS) {
|
||||||
const text = readSource(source.path);
|
const text = readSource(source.path);
|
||||||
|
|||||||
@ -46,5 +46,5 @@ export { mapAllowlistResolutionInputs } from "./allowlist-resolution.js";
|
|||||||
export {
|
export {
|
||||||
resolveBlueBubblesGroupRequireMention,
|
resolveBlueBubblesGroupRequireMention,
|
||||||
resolveBlueBubblesGroupToolPolicy,
|
resolveBlueBubblesGroupToolPolicy,
|
||||||
} from "../../extensions/bluebubbles/runtime-api.js";
|
} from "../channels/bluebubbles/plugin-sdk-bridge.js";
|
||||||
export { collectBlueBubblesStatusIssues } from "../channels/plugins/status-issues/bluebubbles.js";
|
export { collectBlueBubblesStatusIssues } from "../channels/plugins/status-issues/bluebubbles.js";
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
export type { ChannelPlugin } from "./channel-plugin-common.js";
|
export type { ChannelPlugin } from "./channel-plugin-common.js";
|
||||||
export type { DiscordActionConfig } from "../config/types.js";
|
export type { DiscordAccountConfig, DiscordActionConfig } from "../config/types.js";
|
||||||
export { buildChannelConfigSchema, getChatChannelMeta } from "./channel-plugin-common.js";
|
export { buildChannelConfigSchema, getChatChannelMeta } from "./channel-plugin-common.js";
|
||||||
export type { OpenClawConfig } from "../config/config.js";
|
export type { OpenClawConfig } from "../config/config.js";
|
||||||
export { withNormalizedTimestamp } from "../agents/date-time.js";
|
export { withNormalizedTimestamp } from "../agents/date-time.js";
|
||||||
|
|||||||
@ -1,3 +1,101 @@
|
|||||||
|
import {
|
||||||
|
createDiscordActionGate,
|
||||||
|
collectDiscordStatusIssues,
|
||||||
|
inspectDiscordAccount,
|
||||||
|
listDiscordDirectoryGroupsFromConfig,
|
||||||
|
listDiscordDirectoryPeersFromConfig,
|
||||||
|
listDiscordAccountIds,
|
||||||
|
looksLikeDiscordTargetId,
|
||||||
|
normalizeDiscordMessagingTarget,
|
||||||
|
normalizeDiscordOutboundTarget,
|
||||||
|
readDiscordComponentSpec,
|
||||||
|
resolveDefaultDiscordAccountId,
|
||||||
|
resolveDiscordChannelId,
|
||||||
|
resolveDiscordGroupRequireMention,
|
||||||
|
resolveDiscordGroupToolPolicy,
|
||||||
|
} from "../../extensions/discord/api.js";
|
||||||
|
import type {
|
||||||
|
DiscordPluralKitConfig,
|
||||||
|
DiscordSendComponents,
|
||||||
|
DiscordSendEmbeds,
|
||||||
|
InspectedDiscordAccount,
|
||||||
|
ResolvedDiscordAccount,
|
||||||
|
} from "../../extensions/discord/api.js";
|
||||||
|
import type {
|
||||||
|
ThreadBindingManager,
|
||||||
|
ThreadBindingRecord,
|
||||||
|
ThreadBindingTargetKind,
|
||||||
|
} from "../../extensions/discord/runtime-api.js";
|
||||||
|
import {
|
||||||
|
addRoleDiscord,
|
||||||
|
auditDiscordChannelPermissions,
|
||||||
|
autoBindSpawnedDiscordSubagent,
|
||||||
|
banMemberDiscord,
|
||||||
|
collectDiscordAuditChannelIds,
|
||||||
|
createChannelDiscord,
|
||||||
|
createScheduledEventDiscord,
|
||||||
|
createThreadDiscord,
|
||||||
|
deleteChannelDiscord,
|
||||||
|
deleteMessageDiscord,
|
||||||
|
discordMessageActions,
|
||||||
|
editChannelDiscord,
|
||||||
|
editMessageDiscord,
|
||||||
|
fetchChannelPermissionsDiscord,
|
||||||
|
fetchMemberInfoDiscord,
|
||||||
|
fetchMessageDiscord,
|
||||||
|
fetchReactionsDiscord,
|
||||||
|
fetchRoleInfoDiscord,
|
||||||
|
fetchChannelInfoDiscord,
|
||||||
|
fetchVoiceStatusDiscord,
|
||||||
|
getGateway,
|
||||||
|
getPresence,
|
||||||
|
getThreadBindingManager,
|
||||||
|
hasAnyGuildPermissionDiscord,
|
||||||
|
kickMemberDiscord,
|
||||||
|
listDiscordDirectoryGroupsLive,
|
||||||
|
listDiscordDirectoryPeersLive,
|
||||||
|
listThreadBindingsBySessionKey,
|
||||||
|
listGuildChannelsDiscord,
|
||||||
|
listGuildEmojisDiscord,
|
||||||
|
listPinsDiscord,
|
||||||
|
listScheduledEventsDiscord,
|
||||||
|
listThreadsDiscord,
|
||||||
|
monitorDiscordProvider,
|
||||||
|
moveChannelDiscord,
|
||||||
|
pinMessageDiscord,
|
||||||
|
reactMessageDiscord,
|
||||||
|
removeChannelPermissionDiscord,
|
||||||
|
removeOwnReactionsDiscord,
|
||||||
|
removeReactionDiscord,
|
||||||
|
removeRoleDiscord,
|
||||||
|
resolveDiscordChannelAllowlist,
|
||||||
|
resolveDiscordUserAllowlist,
|
||||||
|
resolveThreadBindingIdleTimeoutMs,
|
||||||
|
resolveThreadBindingInactivityExpiresAt,
|
||||||
|
resolveThreadBindingMaxAgeExpiresAt,
|
||||||
|
resolveThreadBindingMaxAgeMs,
|
||||||
|
DISCORD_DEFAULT_INBOUND_WORKER_TIMEOUT_MS,
|
||||||
|
DISCORD_DEFAULT_LISTENER_TIMEOUT_MS,
|
||||||
|
probeDiscord,
|
||||||
|
sendMessageDiscord,
|
||||||
|
sendDiscordComponentMessage,
|
||||||
|
sendPollDiscord,
|
||||||
|
sendTypingDiscord,
|
||||||
|
sendStickerDiscord,
|
||||||
|
sendVoiceMessageDiscord,
|
||||||
|
setThreadBindingIdleTimeoutBySessionKey,
|
||||||
|
setThreadBindingMaxAgeBySessionKey,
|
||||||
|
setChannelPermissionDiscord,
|
||||||
|
timeoutMemberDiscord,
|
||||||
|
unbindThreadBindingsBySessionKey,
|
||||||
|
unpinMessageDiscord,
|
||||||
|
uploadEmojiDiscord,
|
||||||
|
uploadStickerDiscord,
|
||||||
|
readMessagesDiscord,
|
||||||
|
searchMessagesDiscord,
|
||||||
|
} from "../../extensions/discord/runtime-api.js";
|
||||||
|
import { normalizeExplicitDiscordSessionKey } from "../../extensions/discord/session-key-api.js";
|
||||||
|
|
||||||
export type {
|
export type {
|
||||||
ChannelAccountSnapshot,
|
ChannelAccountSnapshot,
|
||||||
ChannelGatewayContext,
|
ChannelGatewayContext,
|
||||||
@ -6,15 +104,16 @@ export type {
|
|||||||
export type { OpenClawConfig } from "../config/config.js";
|
export type { OpenClawConfig } from "../config/config.js";
|
||||||
export type { DiscordAccountConfig, DiscordActionConfig } from "../config/types.js";
|
export type { DiscordAccountConfig, DiscordActionConfig } from "../config/types.js";
|
||||||
export type { DiscordConfig } from "../config/types.discord.js";
|
export type { DiscordConfig } from "../config/types.discord.js";
|
||||||
export type { DiscordPluralKitConfig } from "../../extensions/discord/api.js";
|
|
||||||
export type { InspectedDiscordAccount } from "../../extensions/discord/api.js";
|
|
||||||
export type { ResolvedDiscordAccount } from "../../extensions/discord/api.js";
|
|
||||||
export type { DiscordSendComponents, DiscordSendEmbeds } from "../../extensions/discord/api.js";
|
|
||||||
export type {
|
export type {
|
||||||
|
DiscordPluralKitConfig,
|
||||||
|
DiscordSendComponents,
|
||||||
|
DiscordSendEmbeds,
|
||||||
|
InspectedDiscordAccount,
|
||||||
|
ResolvedDiscordAccount,
|
||||||
ThreadBindingManager,
|
ThreadBindingManager,
|
||||||
ThreadBindingRecord,
|
ThreadBindingRecord,
|
||||||
ThreadBindingTargetKind,
|
ThreadBindingTargetKind,
|
||||||
} from "../../extensions/discord/runtime-api.js";
|
};
|
||||||
export type {
|
export type {
|
||||||
ChannelConfiguredBindingProvider,
|
ChannelConfiguredBindingProvider,
|
||||||
ChannelConfiguredBindingConversationRef,
|
ChannelConfiguredBindingConversationRef,
|
||||||
@ -49,14 +148,8 @@ export {
|
|||||||
resolveDefaultGroupPolicy,
|
resolveDefaultGroupPolicy,
|
||||||
resolveOpenProviderRuntimeGroupPolicy,
|
resolveOpenProviderRuntimeGroupPolicy,
|
||||||
} from "../config/runtime-group-policy.js";
|
} from "../config/runtime-group-policy.js";
|
||||||
export {
|
export { listDiscordDirectoryGroupsFromConfig, listDiscordDirectoryPeersFromConfig };
|
||||||
listDiscordDirectoryGroupsFromConfig,
|
export { resolveDiscordGroupRequireMention, resolveDiscordGroupToolPolicy };
|
||||||
listDiscordDirectoryPeersFromConfig,
|
|
||||||
} from "../../extensions/discord/src/directory-config.js";
|
|
||||||
export {
|
|
||||||
resolveDiscordGroupRequireMention,
|
|
||||||
resolveDiscordGroupToolPolicy,
|
|
||||||
} from "../../extensions/discord/api.js";
|
|
||||||
export { DiscordConfigSchema } from "../config/zod-schema.providers-core.js";
|
export { DiscordConfigSchema } from "../config/zod-schema.providers-core.js";
|
||||||
|
|
||||||
export {
|
export {
|
||||||
@ -64,49 +157,22 @@ export {
|
|||||||
buildTokenChannelStatusSummary,
|
buildTokenChannelStatusSummary,
|
||||||
} from "./status-helpers.js";
|
} from "./status-helpers.js";
|
||||||
|
|
||||||
export {
|
|
||||||
createDiscordActionGate,
|
|
||||||
listDiscordAccountIds,
|
|
||||||
resolveDefaultDiscordAccountId,
|
|
||||||
} from "../../extensions/discord/api.js";
|
|
||||||
export { inspectDiscordAccount } from "../../extensions/discord/api.js";
|
|
||||||
export {
|
|
||||||
looksLikeDiscordTargetId,
|
|
||||||
normalizeDiscordMessagingTarget,
|
|
||||||
normalizeDiscordOutboundTarget,
|
|
||||||
} from "../../extensions/discord/api.js";
|
|
||||||
export { collectDiscordAuditChannelIds } from "../../extensions/discord/runtime-api.js";
|
|
||||||
export { collectDiscordStatusIssues } from "../../extensions/discord/api.js";
|
|
||||||
export {
|
|
||||||
DISCORD_DEFAULT_INBOUND_WORKER_TIMEOUT_MS,
|
|
||||||
DISCORD_DEFAULT_LISTENER_TIMEOUT_MS,
|
|
||||||
} from "../../extensions/discord/runtime-api.js";
|
|
||||||
export { normalizeExplicitDiscordSessionKey } from "../../extensions/discord/session-key-api.js";
|
|
||||||
export {
|
|
||||||
autoBindSpawnedDiscordSubagent,
|
|
||||||
getThreadBindingManager,
|
|
||||||
listThreadBindingsBySessionKey,
|
|
||||||
resolveThreadBindingIdleTimeoutMs,
|
|
||||||
resolveThreadBindingInactivityExpiresAt,
|
|
||||||
resolveThreadBindingMaxAgeExpiresAt,
|
|
||||||
resolveThreadBindingMaxAgeMs,
|
|
||||||
setThreadBindingIdleTimeoutBySessionKey,
|
|
||||||
setThreadBindingMaxAgeBySessionKey,
|
|
||||||
unbindThreadBindingsBySessionKey,
|
|
||||||
} from "../../extensions/discord/runtime-api.js";
|
|
||||||
export { getGateway } from "../../extensions/discord/runtime-api.js";
|
|
||||||
export { getPresence } from "../../extensions/discord/runtime-api.js";
|
|
||||||
export { readDiscordComponentSpec } from "../../extensions/discord/api.js";
|
|
||||||
export { resolveDiscordChannelId } from "../../extensions/discord/api.js";
|
|
||||||
export {
|
export {
|
||||||
addRoleDiscord,
|
addRoleDiscord,
|
||||||
auditDiscordChannelPermissions,
|
auditDiscordChannelPermissions,
|
||||||
|
autoBindSpawnedDiscordSubagent,
|
||||||
banMemberDiscord,
|
banMemberDiscord,
|
||||||
|
collectDiscordAuditChannelIds,
|
||||||
|
collectDiscordStatusIssues,
|
||||||
createChannelDiscord,
|
createChannelDiscord,
|
||||||
|
createDiscordActionGate,
|
||||||
createScheduledEventDiscord,
|
createScheduledEventDiscord,
|
||||||
createThreadDiscord,
|
createThreadDiscord,
|
||||||
deleteChannelDiscord,
|
deleteChannelDiscord,
|
||||||
deleteMessageDiscord,
|
deleteMessageDiscord,
|
||||||
|
DISCORD_DEFAULT_INBOUND_WORKER_TIMEOUT_MS,
|
||||||
|
DISCORD_DEFAULT_LISTENER_TIMEOUT_MS,
|
||||||
|
discordMessageActions,
|
||||||
editChannelDiscord,
|
editChannelDiscord,
|
||||||
editMessageDiscord,
|
editMessageDiscord,
|
||||||
fetchChannelInfoDiscord,
|
fetchChannelInfoDiscord,
|
||||||
@ -116,38 +182,57 @@ export {
|
|||||||
fetchReactionsDiscord,
|
fetchReactionsDiscord,
|
||||||
fetchRoleInfoDiscord,
|
fetchRoleInfoDiscord,
|
||||||
fetchVoiceStatusDiscord,
|
fetchVoiceStatusDiscord,
|
||||||
|
getGateway,
|
||||||
|
getPresence,
|
||||||
|
getThreadBindingManager,
|
||||||
hasAnyGuildPermissionDiscord,
|
hasAnyGuildPermissionDiscord,
|
||||||
|
inspectDiscordAccount,
|
||||||
kickMemberDiscord,
|
kickMemberDiscord,
|
||||||
|
listDiscordAccountIds,
|
||||||
listDiscordDirectoryGroupsLive,
|
listDiscordDirectoryGroupsLive,
|
||||||
listDiscordDirectoryPeersLive,
|
listDiscordDirectoryPeersLive,
|
||||||
listGuildChannelsDiscord,
|
listGuildChannelsDiscord,
|
||||||
listGuildEmojisDiscord,
|
listGuildEmojisDiscord,
|
||||||
listPinsDiscord,
|
listPinsDiscord,
|
||||||
listScheduledEventsDiscord,
|
listScheduledEventsDiscord,
|
||||||
|
listThreadBindingsBySessionKey,
|
||||||
listThreadsDiscord,
|
listThreadsDiscord,
|
||||||
|
looksLikeDiscordTargetId,
|
||||||
monitorDiscordProvider,
|
monitorDiscordProvider,
|
||||||
moveChannelDiscord,
|
moveChannelDiscord,
|
||||||
|
normalizeDiscordMessagingTarget,
|
||||||
|
normalizeDiscordOutboundTarget,
|
||||||
|
normalizeExplicitDiscordSessionKey,
|
||||||
pinMessageDiscord,
|
pinMessageDiscord,
|
||||||
probeDiscord,
|
probeDiscord,
|
||||||
reactMessageDiscord,
|
reactMessageDiscord,
|
||||||
|
readDiscordComponentSpec,
|
||||||
readMessagesDiscord,
|
readMessagesDiscord,
|
||||||
removeChannelPermissionDiscord,
|
removeChannelPermissionDiscord,
|
||||||
removeOwnReactionsDiscord,
|
removeOwnReactionsDiscord,
|
||||||
removeReactionDiscord,
|
removeReactionDiscord,
|
||||||
removeRoleDiscord,
|
removeRoleDiscord,
|
||||||
|
resolveDefaultDiscordAccountId,
|
||||||
resolveDiscordChannelAllowlist,
|
resolveDiscordChannelAllowlist,
|
||||||
|
resolveDiscordChannelId,
|
||||||
resolveDiscordUserAllowlist,
|
resolveDiscordUserAllowlist,
|
||||||
|
resolveThreadBindingIdleTimeoutMs,
|
||||||
|
resolveThreadBindingInactivityExpiresAt,
|
||||||
|
resolveThreadBindingMaxAgeExpiresAt,
|
||||||
|
resolveThreadBindingMaxAgeMs,
|
||||||
searchMessagesDiscord,
|
searchMessagesDiscord,
|
||||||
sendDiscordComponentMessage,
|
sendDiscordComponentMessage,
|
||||||
sendMessageDiscord,
|
sendMessageDiscord,
|
||||||
sendPollDiscord,
|
sendPollDiscord,
|
||||||
sendTypingDiscord,
|
|
||||||
sendStickerDiscord,
|
sendStickerDiscord,
|
||||||
|
sendTypingDiscord,
|
||||||
sendVoiceMessageDiscord,
|
sendVoiceMessageDiscord,
|
||||||
setChannelPermissionDiscord,
|
setChannelPermissionDiscord,
|
||||||
|
setThreadBindingIdleTimeoutBySessionKey,
|
||||||
|
setThreadBindingMaxAgeBySessionKey,
|
||||||
timeoutMemberDiscord,
|
timeoutMemberDiscord,
|
||||||
|
unbindThreadBindingsBySessionKey,
|
||||||
unpinMessageDiscord,
|
unpinMessageDiscord,
|
||||||
uploadEmojiDiscord,
|
uploadEmojiDiscord,
|
||||||
uploadStickerDiscord,
|
uploadStickerDiscord,
|
||||||
} from "../../extensions/discord/runtime-api.js";
|
};
|
||||||
export { discordMessageActions } from "../../extensions/discord/runtime-api.js";
|
|
||||||
|
|||||||
@ -67,7 +67,7 @@ export type { RuntimeEnv } from "../runtime.js";
|
|||||||
export { formatDocsLink } from "../terminal/links.js";
|
export { formatDocsLink } from "../terminal/links.js";
|
||||||
export { evaluateSenderGroupAccessForPolicy } from "./group-access.js";
|
export { evaluateSenderGroupAccessForPolicy } from "./group-access.js";
|
||||||
export type { WizardPrompter } from "../wizard/prompts.js";
|
export type { WizardPrompter } from "../wizard/prompts.js";
|
||||||
export { feishuSetupWizard, feishuSetupAdapter } from "../../extensions/feishu/setup-api.js";
|
export { feishuSetupWizard, feishuSetupAdapter } from "../channels/feishu/plugin-sdk-bridge.js";
|
||||||
export { buildAgentMediaPayload } from "./agent-media-payload.js";
|
export { buildAgentMediaPayload } from "./agent-media-payload.js";
|
||||||
export { readJsonFileWithFallback } from "./json-store.js";
|
export { readJsonFileWithFallback } from "./json-store.js";
|
||||||
export { createScopedPairingAccess } from "./pairing-access.js";
|
export { createScopedPairingAccess } from "./pairing-access.js";
|
||||||
@ -83,7 +83,7 @@ export { withTempDownloadPath } from "./temp-path.js";
|
|||||||
export {
|
export {
|
||||||
buildFeishuConversationId,
|
buildFeishuConversationId,
|
||||||
parseFeishuConversationId,
|
parseFeishuConversationId,
|
||||||
} from "../../extensions/feishu/src/conversation-id.js";
|
} from "../channels/feishu/plugin-sdk-bridge.js";
|
||||||
export {
|
export {
|
||||||
createFixedWindowRateLimiter,
|
createFixedWindowRateLimiter,
|
||||||
createWebhookAnomalyTracker,
|
createWebhookAnomalyTracker,
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
export { normalizeIMessageHandle } from "../../extensions/imessage/api.js";
|
export { normalizeIMessageHandle } from "../channels/imessage/api-bridge.js";
|
||||||
|
|||||||
@ -38,7 +38,7 @@ export {
|
|||||||
export {
|
export {
|
||||||
resolveIMessageGroupRequireMention,
|
resolveIMessageGroupRequireMention,
|
||||||
resolveIMessageGroupToolPolicy,
|
resolveIMessageGroupToolPolicy,
|
||||||
} from "../../extensions/imessage/api.js";
|
} from "../channels/imessage/plugin-sdk-bridge.js";
|
||||||
export { IMessageConfigSchema } from "../config/zod-schema.providers-core.js";
|
export { IMessageConfigSchema } from "../config/zod-schema.providers-core.js";
|
||||||
|
|
||||||
export { resolveChannelMediaMaxBytes } from "../channels/plugins/media-limits.js";
|
export { resolveChannelMediaMaxBytes } from "../channels/plugins/media-limits.js";
|
||||||
@ -47,4 +47,4 @@ export {
|
|||||||
monitorIMessageProvider,
|
monitorIMessageProvider,
|
||||||
probeIMessage,
|
probeIMessage,
|
||||||
sendMessageIMessage,
|
sendMessageIMessage,
|
||||||
} from "../../extensions/imessage/runtime-api.js";
|
} from "../channels/imessage/plugin-sdk-bridge.js";
|
||||||
|
|||||||
@ -62,7 +62,7 @@ export {
|
|||||||
listIrcAccountIds,
|
listIrcAccountIds,
|
||||||
resolveDefaultIrcAccountId,
|
resolveDefaultIrcAccountId,
|
||||||
resolveIrcAccount,
|
resolveIrcAccount,
|
||||||
} from "../../extensions/irc/api.js";
|
} from "../channels/irc/plugin-sdk-bridge.js";
|
||||||
export {
|
export {
|
||||||
readStoreAllowFromForDmPolicy,
|
readStoreAllowFromForDmPolicy,
|
||||||
resolveEffectiveAllowFromLists,
|
resolveEffectiveAllowFromLists,
|
||||||
@ -72,7 +72,7 @@ export type { WizardPrompter } from "../wizard/prompts.js";
|
|||||||
export { createScopedPairingAccess } from "./pairing-access.js";
|
export { createScopedPairingAccess } from "./pairing-access.js";
|
||||||
export { issuePairingChallenge } from "../pairing/pairing-challenge.js";
|
export { issuePairingChallenge } from "../pairing/pairing-challenge.js";
|
||||||
export { dispatchInboundReplyWithBase } from "./inbound-reply-dispatch.js";
|
export { dispatchInboundReplyWithBase } from "./inbound-reply-dispatch.js";
|
||||||
export { ircSetupAdapter, ircSetupWizard } from "../../extensions/irc/api.js";
|
export { ircSetupAdapter, ircSetupWizard } from "../channels/irc/plugin-sdk-bridge.js";
|
||||||
export type { OutboundReplyPayload } from "./reply-payload.js";
|
export type { OutboundReplyPayload } from "./reply-payload.js";
|
||||||
export {
|
export {
|
||||||
createNormalizedOutboundDeliverer,
|
createNormalizedOutboundDeliverer,
|
||||||
|
|||||||
@ -32,7 +32,7 @@ export {
|
|||||||
resolveDefaultLineAccountId,
|
resolveDefaultLineAccountId,
|
||||||
resolveLineAccount,
|
resolveLineAccount,
|
||||||
} from "../line/accounts.js";
|
} from "../line/accounts.js";
|
||||||
export { lineSetupAdapter, lineSetupWizard } from "../../extensions/line/setup-api.js";
|
export { lineSetupAdapter, lineSetupWizard } from "../channels/line/plugin-sdk-bridge.js";
|
||||||
export { LineConfigSchema } from "../line/config-schema.js";
|
export { LineConfigSchema } from "../line/config-schema.js";
|
||||||
export type { LineChannelData, LineConfig, ResolvedLineAccount } from "../line/types.js";
|
export type { LineChannelData, LineConfig, ResolvedLineAccount } from "../line/types.js";
|
||||||
export {
|
export {
|
||||||
|
|||||||
@ -8,6 +8,66 @@ import {
|
|||||||
KILOCODE_DEFAULT_MODEL_ID,
|
KILOCODE_DEFAULT_MODEL_ID,
|
||||||
KILOCODE_DEFAULT_MODEL_NAME,
|
KILOCODE_DEFAULT_MODEL_NAME,
|
||||||
} from "../providers/kilocode-shared.js";
|
} from "../providers/kilocode-shared.js";
|
||||||
|
import {
|
||||||
|
KIMI_CODING_BASE_URL,
|
||||||
|
KIMI_CODING_DEFAULT_MODEL_ID,
|
||||||
|
} from "../providers/plugin-sdk-provider-models-bridge.js";
|
||||||
|
import {
|
||||||
|
buildMinimaxApiModelDefinition,
|
||||||
|
buildMinimaxModelDefinition,
|
||||||
|
DEFAULT_MINIMAX_BASE_URL,
|
||||||
|
MINIMAX_API_BASE_URL,
|
||||||
|
MINIMAX_API_COST,
|
||||||
|
MINIMAX_CN_API_BASE_URL,
|
||||||
|
MINIMAX_HOSTED_COST,
|
||||||
|
MINIMAX_HOSTED_MODEL_ID,
|
||||||
|
MINIMAX_HOSTED_MODEL_REF,
|
||||||
|
MINIMAX_LM_STUDIO_COST,
|
||||||
|
} from "../providers/plugin-sdk-provider-models-bridge.js";
|
||||||
|
import {
|
||||||
|
buildMistralModelDefinition,
|
||||||
|
MISTRAL_BASE_URL,
|
||||||
|
MISTRAL_DEFAULT_COST,
|
||||||
|
MISTRAL_DEFAULT_MODEL_ID,
|
||||||
|
MISTRAL_DEFAULT_MODEL_REF,
|
||||||
|
} from "../providers/plugin-sdk-provider-models-bridge.js";
|
||||||
|
import {
|
||||||
|
buildModelStudioDefaultModelDefinition,
|
||||||
|
buildModelStudioModelDefinition,
|
||||||
|
MODELSTUDIO_CN_BASE_URL,
|
||||||
|
MODELSTUDIO_DEFAULT_COST,
|
||||||
|
MODELSTUDIO_DEFAULT_MODEL_ID,
|
||||||
|
MODELSTUDIO_DEFAULT_MODEL_REF,
|
||||||
|
MODELSTUDIO_GLOBAL_BASE_URL,
|
||||||
|
} from "../providers/plugin-sdk-provider-models-bridge.js";
|
||||||
|
import { MOONSHOT_CN_BASE_URL } from "../providers/plugin-sdk-provider-models-bridge.js";
|
||||||
|
import {
|
||||||
|
buildMoonshotProvider,
|
||||||
|
MOONSHOT_BASE_URL,
|
||||||
|
MOONSHOT_DEFAULT_MODEL_ID,
|
||||||
|
} from "../providers/plugin-sdk-provider-models-bridge.js";
|
||||||
|
import {
|
||||||
|
QIANFAN_BASE_URL,
|
||||||
|
QIANFAN_DEFAULT_MODEL_ID,
|
||||||
|
} from "../providers/plugin-sdk-provider-models-bridge.js";
|
||||||
|
import {
|
||||||
|
buildXaiModelDefinition,
|
||||||
|
XAI_BASE_URL,
|
||||||
|
XAI_DEFAULT_COST,
|
||||||
|
XAI_DEFAULT_MODEL_ID,
|
||||||
|
XAI_DEFAULT_MODEL_REF,
|
||||||
|
} from "../providers/plugin-sdk-provider-models-bridge.js";
|
||||||
|
import {
|
||||||
|
buildZaiModelDefinition,
|
||||||
|
resolveZaiBaseUrl,
|
||||||
|
ZAI_CODING_CN_BASE_URL,
|
||||||
|
ZAI_CODING_GLOBAL_BASE_URL,
|
||||||
|
ZAI_CN_BASE_URL,
|
||||||
|
ZAI_DEFAULT_COST,
|
||||||
|
ZAI_DEFAULT_MODEL_ID,
|
||||||
|
ZAI_DEFAULT_MODEL_REF,
|
||||||
|
ZAI_GLOBAL_BASE_URL,
|
||||||
|
} from "../providers/plugin-sdk-provider-models-bridge.js";
|
||||||
|
|
||||||
export type { ModelApi, ModelProviderConfig } from "../config/types.models.js";
|
export type { ModelApi, ModelProviderConfig } from "../config/types.models.js";
|
||||||
export type { ModelDefinitionConfig } from "../config/types.models.js";
|
export type { ModelDefinitionConfig } from "../config/types.models.js";
|
||||||
@ -37,7 +97,15 @@ export { OPENCODE_ZEN_DEFAULT_MODEL_REF } from "../agents/opencode-zen-models.js
|
|||||||
export {
|
export {
|
||||||
buildMinimaxApiModelDefinition,
|
buildMinimaxApiModelDefinition,
|
||||||
buildMinimaxModelDefinition,
|
buildMinimaxModelDefinition,
|
||||||
|
buildMistralModelDefinition,
|
||||||
|
buildModelStudioDefaultModelDefinition,
|
||||||
|
buildModelStudioModelDefinition,
|
||||||
|
buildMoonshotProvider,
|
||||||
|
buildXaiModelDefinition,
|
||||||
|
buildZaiModelDefinition,
|
||||||
DEFAULT_MINIMAX_BASE_URL,
|
DEFAULT_MINIMAX_BASE_URL,
|
||||||
|
KIMI_CODING_BASE_URL,
|
||||||
|
KIMI_CODING_DEFAULT_MODEL_ID,
|
||||||
MINIMAX_API_BASE_URL,
|
MINIMAX_API_BASE_URL,
|
||||||
MINIMAX_API_COST,
|
MINIMAX_API_COST,
|
||||||
MINIMAX_CN_API_BASE_URL,
|
MINIMAX_CN_API_BASE_URL,
|
||||||
@ -45,47 +113,25 @@ export {
|
|||||||
MINIMAX_HOSTED_MODEL_ID,
|
MINIMAX_HOSTED_MODEL_ID,
|
||||||
MINIMAX_HOSTED_MODEL_REF,
|
MINIMAX_HOSTED_MODEL_REF,
|
||||||
MINIMAX_LM_STUDIO_COST,
|
MINIMAX_LM_STUDIO_COST,
|
||||||
} from "../../extensions/minimax/model-definitions.js";
|
|
||||||
export {
|
|
||||||
buildMistralModelDefinition,
|
|
||||||
MISTRAL_BASE_URL,
|
MISTRAL_BASE_URL,
|
||||||
MISTRAL_DEFAULT_COST,
|
MISTRAL_DEFAULT_COST,
|
||||||
MISTRAL_DEFAULT_MODEL_ID,
|
MISTRAL_DEFAULT_MODEL_ID,
|
||||||
MISTRAL_DEFAULT_MODEL_REF,
|
MISTRAL_DEFAULT_MODEL_REF,
|
||||||
} from "../../extensions/mistral/model-definitions.js";
|
|
||||||
export {
|
|
||||||
buildModelStudioDefaultModelDefinition,
|
|
||||||
buildModelStudioModelDefinition,
|
|
||||||
MODELSTUDIO_CN_BASE_URL,
|
MODELSTUDIO_CN_BASE_URL,
|
||||||
MODELSTUDIO_DEFAULT_COST,
|
MODELSTUDIO_DEFAULT_COST,
|
||||||
MODELSTUDIO_DEFAULT_MODEL_ID,
|
MODELSTUDIO_DEFAULT_MODEL_ID,
|
||||||
MODELSTUDIO_DEFAULT_MODEL_REF,
|
MODELSTUDIO_DEFAULT_MODEL_REF,
|
||||||
MODELSTUDIO_GLOBAL_BASE_URL,
|
MODELSTUDIO_GLOBAL_BASE_URL,
|
||||||
} from "../../extensions/modelstudio/model-definitions.js";
|
|
||||||
export {
|
|
||||||
buildMoonshotProvider,
|
|
||||||
MOONSHOT_BASE_URL,
|
MOONSHOT_BASE_URL,
|
||||||
|
MOONSHOT_CN_BASE_URL,
|
||||||
MOONSHOT_DEFAULT_MODEL_ID,
|
MOONSHOT_DEFAULT_MODEL_ID,
|
||||||
} from "../../extensions/moonshot/provider-catalog.js";
|
|
||||||
export { MOONSHOT_CN_BASE_URL } from "../../extensions/moonshot/onboard.js";
|
|
||||||
export {
|
|
||||||
KIMI_CODING_BASE_URL,
|
|
||||||
KIMI_CODING_DEFAULT_MODEL_ID,
|
|
||||||
} from "../../extensions/kimi-coding/provider-catalog.js";
|
|
||||||
export {
|
|
||||||
QIANFAN_BASE_URL,
|
QIANFAN_BASE_URL,
|
||||||
QIANFAN_DEFAULT_MODEL_ID,
|
QIANFAN_DEFAULT_MODEL_ID,
|
||||||
} from "../../extensions/qianfan/provider-catalog.js";
|
resolveZaiBaseUrl,
|
||||||
export {
|
|
||||||
buildXaiModelDefinition,
|
|
||||||
XAI_BASE_URL,
|
XAI_BASE_URL,
|
||||||
XAI_DEFAULT_COST,
|
XAI_DEFAULT_COST,
|
||||||
XAI_DEFAULT_MODEL_ID,
|
XAI_DEFAULT_MODEL_ID,
|
||||||
XAI_DEFAULT_MODEL_REF,
|
XAI_DEFAULT_MODEL_REF,
|
||||||
} from "../../extensions/xai/model-definitions.js";
|
|
||||||
export {
|
|
||||||
buildZaiModelDefinition,
|
|
||||||
resolveZaiBaseUrl,
|
|
||||||
ZAI_CODING_CN_BASE_URL,
|
ZAI_CODING_CN_BASE_URL,
|
||||||
ZAI_CODING_GLOBAL_BASE_URL,
|
ZAI_CODING_GLOBAL_BASE_URL,
|
||||||
ZAI_CN_BASE_URL,
|
ZAI_CN_BASE_URL,
|
||||||
@ -93,7 +139,7 @@ export {
|
|||||||
ZAI_DEFAULT_MODEL_ID,
|
ZAI_DEFAULT_MODEL_ID,
|
||||||
ZAI_DEFAULT_MODEL_REF,
|
ZAI_DEFAULT_MODEL_REF,
|
||||||
ZAI_GLOBAL_BASE_URL,
|
ZAI_GLOBAL_BASE_URL,
|
||||||
} from "../../extensions/zai/model-definitions.js";
|
};
|
||||||
|
|
||||||
export {
|
export {
|
||||||
buildCloudflareAiGatewayModelDefinition,
|
buildCloudflareAiGatewayModelDefinition,
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
export type { ChannelMessageActionAdapter } from "../channels/plugins/types.js";
|
export type { ChannelMessageActionAdapter } from "../channels/plugins/types.js";
|
||||||
export type { OpenClawConfig } from "../config/config.js";
|
export type { OpenClawConfig } from "../config/config.js";
|
||||||
export type { SignalAccountConfig } from "../config/types.js";
|
export type { SignalAccountConfig } from "../config/types.js";
|
||||||
export type { ResolvedSignalAccount } from "../../extensions/signal/api.js";
|
export type { ResolvedSignalAccount } from "../channels/signal/plugin-sdk-bridge.js";
|
||||||
export type {
|
export type {
|
||||||
ChannelMessageActionContext,
|
ChannelMessageActionContext,
|
||||||
ChannelPlugin,
|
ChannelPlugin,
|
||||||
@ -51,13 +51,10 @@ export {
|
|||||||
listEnabledSignalAccounts,
|
listEnabledSignalAccounts,
|
||||||
listSignalAccountIds,
|
listSignalAccountIds,
|
||||||
resolveDefaultSignalAccountId,
|
resolveDefaultSignalAccountId,
|
||||||
} from "../../extensions/signal/api.js";
|
} from "../channels/signal/plugin-sdk-bridge.js";
|
||||||
export { monitorSignalProvider } from "../../extensions/signal/src/monitor.js";
|
export { monitorSignalProvider } from "../channels/signal/plugin-sdk-bridge.js";
|
||||||
export { probeSignal } from "../../extensions/signal/src/probe.js";
|
export { probeSignal } from "../channels/signal/plugin-sdk-bridge.js";
|
||||||
export { resolveSignalReactionLevel } from "../../extensions/signal/src/reaction-level.js";
|
export { resolveSignalReactionLevel } from "../channels/signal/plugin-sdk-bridge.js";
|
||||||
export {
|
export { removeReactionSignal, sendReactionSignal } from "../channels/signal/plugin-sdk-bridge.js";
|
||||||
removeReactionSignal,
|
export { sendMessageSignal } from "../channels/signal/plugin-sdk-bridge.js";
|
||||||
sendReactionSignal,
|
export { signalMessageActions } from "../channels/signal/plugin-sdk-bridge.js";
|
||||||
} from "../../extensions/signal/src/send-reactions.js";
|
|
||||||
export { sendMessageSignal } from "../../extensions/signal/src/send.js";
|
|
||||||
export { signalMessageActions } from "../../extensions/signal/src/message-actions.js";
|
|
||||||
|
|||||||
@ -3,4 +3,4 @@ export {
|
|||||||
resolveSlackChannelId,
|
resolveSlackChannelId,
|
||||||
type SlackTarget,
|
type SlackTarget,
|
||||||
type SlackTargetKind,
|
type SlackTargetKind,
|
||||||
} from "../../extensions/slack/api.js";
|
} from "../channels/slack/plugin-sdk-bridge.js";
|
||||||
|
|||||||
@ -1,7 +1,54 @@
|
|||||||
|
import type {
|
||||||
|
InspectedSlackAccount,
|
||||||
|
ResolvedSlackAccount,
|
||||||
|
SlackActionContext,
|
||||||
|
} from "../channels/slack/plugin-sdk-bridge.js";
|
||||||
|
import {
|
||||||
|
buildSlackThreadingToolContext,
|
||||||
|
deleteSlackMessage,
|
||||||
|
downloadSlackFile,
|
||||||
|
editSlackMessage,
|
||||||
|
extractSlackToolSend,
|
||||||
|
getSlackMemberInfo,
|
||||||
|
handleSlackHttpRequest,
|
||||||
|
inspectSlackAccount,
|
||||||
|
isSlackInteractiveRepliesEnabled,
|
||||||
|
listEnabledSlackAccounts,
|
||||||
|
listSlackAccountIds,
|
||||||
|
listSlackEmojis,
|
||||||
|
listSlackMessageActions,
|
||||||
|
listSlackPins,
|
||||||
|
listSlackReactions,
|
||||||
|
parseSlackBlocksInput,
|
||||||
|
pinSlackMessage,
|
||||||
|
reactSlackMessage,
|
||||||
|
readSlackMessages,
|
||||||
|
recordSlackThreadParticipation,
|
||||||
|
removeOwnSlackReactions,
|
||||||
|
removeSlackReaction,
|
||||||
|
resolveDefaultSlackAccountId,
|
||||||
|
resolveSlackGroupRequireMention,
|
||||||
|
resolveSlackGroupToolPolicy,
|
||||||
|
resolveSlackReplyToMode,
|
||||||
|
sendSlackMessage,
|
||||||
|
unpinSlackMessage,
|
||||||
|
} from "../channels/slack/plugin-sdk-bridge.js";
|
||||||
|
import {
|
||||||
|
handleSlackAction,
|
||||||
|
listSlackDirectoryGroupsLive,
|
||||||
|
listSlackDirectoryPeersLive,
|
||||||
|
monitorSlackProvider,
|
||||||
|
probeSlack,
|
||||||
|
resolveSlackChannelAllowlist,
|
||||||
|
resolveSlackUserAllowlist,
|
||||||
|
sendMessageSlack,
|
||||||
|
listSlackDirectoryGroupsFromConfig,
|
||||||
|
listSlackDirectoryPeersFromConfig,
|
||||||
|
} from "../channels/slack/plugin-sdk-bridge.js";
|
||||||
|
|
||||||
export type { OpenClawConfig } from "../config/config.js";
|
export type { OpenClawConfig } from "../config/config.js";
|
||||||
export type { SlackAccountConfig } from "../config/types.slack.js";
|
export type { SlackAccountConfig } from "../config/types.slack.js";
|
||||||
export type { InspectedSlackAccount } from "../../extensions/slack/api.js";
|
export type { InspectedSlackAccount, ResolvedSlackAccount, SlackActionContext };
|
||||||
export type { ResolvedSlackAccount } from "../../extensions/slack/api.js";
|
|
||||||
export type {
|
export type {
|
||||||
ChannelMessageActionContext,
|
ChannelMessageActionContext,
|
||||||
ChannelPlugin,
|
ChannelPlugin,
|
||||||
@ -32,59 +79,51 @@ export {
|
|||||||
looksLikeSlackTargetId,
|
looksLikeSlackTargetId,
|
||||||
normalizeSlackMessagingTarget,
|
normalizeSlackMessagingTarget,
|
||||||
} from "../channels/plugins/normalize/slack.js";
|
} from "../channels/plugins/normalize/slack.js";
|
||||||
export {
|
export { listSlackDirectoryGroupsFromConfig, listSlackDirectoryPeersFromConfig };
|
||||||
listSlackDirectoryGroupsFromConfig,
|
|
||||||
listSlackDirectoryPeersFromConfig,
|
|
||||||
} from "../../extensions/slack/src/directory-config.js";
|
|
||||||
export {
|
export {
|
||||||
resolveDefaultGroupPolicy,
|
resolveDefaultGroupPolicy,
|
||||||
resolveOpenProviderRuntimeGroupPolicy,
|
resolveOpenProviderRuntimeGroupPolicy,
|
||||||
} from "../config/runtime-group-policy.js";
|
} from "../config/runtime-group-policy.js";
|
||||||
export {
|
export { resolveSlackGroupRequireMention, resolveSlackGroupToolPolicy };
|
||||||
resolveSlackGroupRequireMention,
|
|
||||||
resolveSlackGroupToolPolicy,
|
|
||||||
} from "../../extensions/slack/api.js";
|
|
||||||
export { SlackConfigSchema } from "../config/zod-schema.providers-core.js";
|
export { SlackConfigSchema } from "../config/zod-schema.providers-core.js";
|
||||||
export { buildComputedAccountStatusSnapshot } from "./status-helpers.js";
|
export { buildComputedAccountStatusSnapshot } from "./status-helpers.js";
|
||||||
|
|
||||||
export {
|
export {
|
||||||
|
inspectSlackAccount,
|
||||||
|
isSlackInteractiveRepliesEnabled,
|
||||||
listEnabledSlackAccounts,
|
listEnabledSlackAccounts,
|
||||||
listSlackAccountIds,
|
listSlackAccountIds,
|
||||||
resolveDefaultSlackAccountId,
|
resolveDefaultSlackAccountId,
|
||||||
resolveSlackReplyToMode,
|
resolveSlackReplyToMode,
|
||||||
} from "../../extensions/slack/api.js";
|
};
|
||||||
export { isSlackInteractiveRepliesEnabled } from "../../extensions/slack/api.js";
|
|
||||||
export { inspectSlackAccount } from "../../extensions/slack/api.js";
|
|
||||||
export { parseSlackTarget, resolveSlackChannelId } from "./slack-targets.js";
|
export { parseSlackTarget, resolveSlackChannelId } from "./slack-targets.js";
|
||||||
export { extractSlackToolSend, listSlackMessageActions } from "../../extensions/slack/api.js";
|
|
||||||
export { buildSlackThreadingToolContext } from "../../extensions/slack/api.js";
|
|
||||||
export { parseSlackBlocksInput } from "../../extensions/slack/api.js";
|
|
||||||
export { handleSlackHttpRequest } from "../../extensions/slack/api.js";
|
|
||||||
export {
|
|
||||||
handleSlackAction,
|
|
||||||
listSlackDirectoryGroupsLive,
|
|
||||||
listSlackDirectoryPeersLive,
|
|
||||||
monitorSlackProvider,
|
|
||||||
probeSlack,
|
|
||||||
resolveSlackChannelAllowlist,
|
|
||||||
resolveSlackUserAllowlist,
|
|
||||||
sendMessageSlack,
|
|
||||||
} from "../../extensions/slack/runtime-api.js";
|
|
||||||
export {
|
export {
|
||||||
|
buildSlackThreadingToolContext,
|
||||||
deleteSlackMessage,
|
deleteSlackMessage,
|
||||||
downloadSlackFile,
|
downloadSlackFile,
|
||||||
editSlackMessage,
|
editSlackMessage,
|
||||||
|
extractSlackToolSend,
|
||||||
getSlackMemberInfo,
|
getSlackMemberInfo,
|
||||||
|
handleSlackAction,
|
||||||
|
handleSlackHttpRequest,
|
||||||
|
listSlackDirectoryGroupsLive,
|
||||||
|
listSlackDirectoryPeersLive,
|
||||||
listSlackEmojis,
|
listSlackEmojis,
|
||||||
|
listSlackMessageActions,
|
||||||
listSlackPins,
|
listSlackPins,
|
||||||
listSlackReactions,
|
listSlackReactions,
|
||||||
|
monitorSlackProvider,
|
||||||
|
parseSlackBlocksInput,
|
||||||
pinSlackMessage,
|
pinSlackMessage,
|
||||||
|
probeSlack,
|
||||||
reactSlackMessage,
|
reactSlackMessage,
|
||||||
readSlackMessages,
|
readSlackMessages,
|
||||||
|
recordSlackThreadParticipation,
|
||||||
removeOwnSlackReactions,
|
removeOwnSlackReactions,
|
||||||
removeSlackReaction,
|
removeSlackReaction,
|
||||||
|
resolveSlackChannelAllowlist,
|
||||||
|
resolveSlackUserAllowlist,
|
||||||
|
sendMessageSlack,
|
||||||
sendSlackMessage,
|
sendSlackMessage,
|
||||||
unpinSlackMessage,
|
unpinSlackMessage,
|
||||||
} from "../../extensions/slack/api.js";
|
};
|
||||||
export { recordSlackThreadParticipation } from "../../extensions/slack/api.js";
|
|
||||||
export type { SlackActionContext } from "../../extensions/slack/runtime-api.js";
|
|
||||||
|
|||||||
@ -265,7 +265,27 @@ describe("plugin-sdk subpath exports", () => {
|
|||||||
|
|
||||||
it("exports Discord helpers", () => {
|
it("exports Discord helpers", () => {
|
||||||
expect(typeof discordSdk.buildChannelConfigSchema).toBe("function");
|
expect(typeof discordSdk.buildChannelConfigSchema).toBe("function");
|
||||||
|
expect(typeof discordSdk.createDiscordActionGate).toBe("function");
|
||||||
expect(typeof discordSdk.DiscordConfigSchema).toBe("object");
|
expect(typeof discordSdk.DiscordConfigSchema).toBe("object");
|
||||||
|
expect(typeof discordSdk.discordMessageActions).toBe("object");
|
||||||
|
expect(typeof discordSdk.listDiscordDirectoryGroupsFromConfig).toBe("function");
|
||||||
|
expect(typeof discordSdk.listDiscordDirectoryPeersFromConfig).toBe("function");
|
||||||
|
expect(typeof discordSdk.listDiscordDirectoryGroupsLive).toBe("function");
|
||||||
|
expect(typeof discordSdk.listDiscordDirectoryPeersLive).toBe("function");
|
||||||
|
expect(typeof discordSdk.fetchChannelInfoDiscord).toBe("function");
|
||||||
|
expect(typeof discordSdk.fetchVoiceStatusDiscord).toBe("function");
|
||||||
|
expect(typeof discordSdk.getGateway).toBe("function");
|
||||||
|
expect(typeof discordSdk.getPresence).toBe("function");
|
||||||
|
expect(typeof discordSdk.listThreadsDiscord).toBe("function");
|
||||||
|
expect(typeof discordSdk.monitorDiscordProvider).toBe("function");
|
||||||
|
expect(typeof discordSdk.normalizeDiscordOutboundTarget).toBe("function");
|
||||||
|
expect(typeof discordSdk.probeDiscord).toBe("function");
|
||||||
|
expect(typeof discordSdk.readMessagesDiscord).toBe("function");
|
||||||
|
expect(typeof discordSdk.resolveDiscordChannelId).toBe("function");
|
||||||
|
expect(typeof discordSdk.sendMessageDiscord).toBe("function");
|
||||||
|
expect(typeof discordSdk.getThreadBindingManager).toBe("function");
|
||||||
|
expect(typeof discordSdk.listThreadBindingsBySessionKey).toBe("function");
|
||||||
|
expect(typeof discordSdk.normalizeExplicitDiscordSessionKey).toBe("function");
|
||||||
expect(typeof discordSdk.projectCredentialSnapshotFields).toBe("function");
|
expect(typeof discordSdk.projectCredentialSnapshotFields).toBe("function");
|
||||||
expect("resolveDiscordAccount" in asExports(discordSdk)).toBe(false);
|
expect("resolveDiscordAccount" in asExports(discordSdk)).toBe(false);
|
||||||
});
|
});
|
||||||
|
|||||||
@ -20,4 +20,4 @@ export { createFixedWindowRateLimiter } from "./webhook-memory-guards.js";
|
|||||||
export {
|
export {
|
||||||
synologyChatSetupAdapter,
|
synologyChatSetupAdapter,
|
||||||
synologyChatSetupWizard,
|
synologyChatSetupWizard,
|
||||||
} from "../../extensions/synology-chat/setup-api.js";
|
} from "../channels/synology-chat/plugin-sdk-bridge.js";
|
||||||
|
|||||||
@ -1,3 +1,68 @@
|
|||||||
|
import type {
|
||||||
|
InspectedTelegramAccount,
|
||||||
|
ProviderInfo,
|
||||||
|
ResolvedTelegramAccount,
|
||||||
|
StickerMetadata,
|
||||||
|
TelegramButtonStyle,
|
||||||
|
TelegramInlineButtons,
|
||||||
|
TelegramProbe,
|
||||||
|
} from "../channels/telegram/plugin-sdk-bridge.js";
|
||||||
|
import {
|
||||||
|
buildBrowseProvidersButton,
|
||||||
|
buildModelsKeyboard,
|
||||||
|
buildProviderKeyboard,
|
||||||
|
calculateTotalPages,
|
||||||
|
createTelegramActionGate,
|
||||||
|
fetchTelegramChatId,
|
||||||
|
getCacheStats,
|
||||||
|
getModelsPageSize,
|
||||||
|
inspectTelegramAccount,
|
||||||
|
isNumericTelegramUserId,
|
||||||
|
isTelegramExecApprovalApprover,
|
||||||
|
isTelegramExecApprovalClientEnabled,
|
||||||
|
listTelegramAccountIds,
|
||||||
|
looksLikeTelegramTargetId,
|
||||||
|
normalizeTelegramAllowFromEntry,
|
||||||
|
normalizeTelegramMessagingTarget,
|
||||||
|
parseTelegramReplyToMessageId,
|
||||||
|
parseTelegramThreadId,
|
||||||
|
resolveDefaultTelegramAccountId,
|
||||||
|
resolveTelegramGroupRequireMention,
|
||||||
|
resolveTelegramGroupToolPolicy,
|
||||||
|
resolveTelegramInlineButtonsScope,
|
||||||
|
resolveTelegramPollActionGateState,
|
||||||
|
resolveTelegramReactionLevel,
|
||||||
|
resolveTelegramTargetChatType,
|
||||||
|
searchStickers,
|
||||||
|
sendTelegramPayloadMessages,
|
||||||
|
collectTelegramStatusIssues,
|
||||||
|
} from "../channels/telegram/plugin-sdk-bridge.js";
|
||||||
|
import {
|
||||||
|
auditTelegramGroupMembership,
|
||||||
|
collectTelegramUnmentionedGroupIds,
|
||||||
|
createForumTopicTelegram,
|
||||||
|
deleteMessageTelegram,
|
||||||
|
editForumTopicTelegram,
|
||||||
|
editMessageReplyMarkupTelegram,
|
||||||
|
editMessageTelegram,
|
||||||
|
monitorTelegramProvider,
|
||||||
|
pinMessageTelegram,
|
||||||
|
probeTelegram,
|
||||||
|
reactMessageTelegram,
|
||||||
|
renameForumTopicTelegram,
|
||||||
|
resolveTelegramToken,
|
||||||
|
sendMessageTelegram,
|
||||||
|
sendPollTelegram,
|
||||||
|
sendStickerTelegram,
|
||||||
|
sendTypingTelegram,
|
||||||
|
setTelegramThreadBindingIdleTimeoutBySessionKey,
|
||||||
|
setTelegramThreadBindingMaxAgeBySessionKey,
|
||||||
|
telegramMessageActions,
|
||||||
|
unpinMessageTelegram,
|
||||||
|
listTelegramDirectoryGroupsFromConfig,
|
||||||
|
listTelegramDirectoryPeersFromConfig,
|
||||||
|
} from "../channels/telegram/plugin-sdk-bridge.js";
|
||||||
|
|
||||||
export type {
|
export type {
|
||||||
ChannelAccountSnapshot,
|
ChannelAccountSnapshot,
|
||||||
ChannelGatewayContext,
|
ChannelGatewayContext,
|
||||||
@ -17,11 +82,15 @@ export type {
|
|||||||
ChannelConfiguredBindingConversationRef,
|
ChannelConfiguredBindingConversationRef,
|
||||||
ChannelConfiguredBindingMatch,
|
ChannelConfiguredBindingMatch,
|
||||||
} from "../channels/plugins/types.adapters.js";
|
} from "../channels/plugins/types.adapters.js";
|
||||||
export type { InspectedTelegramAccount } from "../../extensions/telegram/api.js";
|
export type {
|
||||||
export type { ResolvedTelegramAccount } from "../../extensions/telegram/api.js";
|
InspectedTelegramAccount,
|
||||||
export type { TelegramProbe } from "../../extensions/telegram/runtime-api.js";
|
ProviderInfo,
|
||||||
export type { TelegramButtonStyle, TelegramInlineButtons } from "../../extensions/telegram/api.js";
|
ResolvedTelegramAccount,
|
||||||
export type { StickerMetadata } from "../../extensions/telegram/api.js";
|
StickerMetadata,
|
||||||
|
TelegramButtonStyle,
|
||||||
|
TelegramInlineButtons,
|
||||||
|
TelegramProbe,
|
||||||
|
};
|
||||||
|
|
||||||
export { emptyPluginConfigSchema } from "../plugins/config-schema.js";
|
export { emptyPluginConfigSchema } from "../plugins/config-schema.js";
|
||||||
export { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "../routing/session-key.js";
|
export { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "../routing/session-key.js";
|
||||||
@ -48,80 +117,58 @@ export {
|
|||||||
resolveAllowlistProviderRuntimeGroupPolicy,
|
resolveAllowlistProviderRuntimeGroupPolicy,
|
||||||
resolveDefaultGroupPolicy,
|
resolveDefaultGroupPolicy,
|
||||||
} from "../config/runtime-group-policy.js";
|
} from "../config/runtime-group-policy.js";
|
||||||
export {
|
export { listTelegramDirectoryGroupsFromConfig, listTelegramDirectoryPeersFromConfig };
|
||||||
listTelegramDirectoryGroupsFromConfig,
|
export { resolveTelegramGroupRequireMention, resolveTelegramGroupToolPolicy };
|
||||||
listTelegramDirectoryPeersFromConfig,
|
|
||||||
} from "../../extensions/telegram/src/directory-config.js";
|
|
||||||
export {
|
|
||||||
resolveTelegramGroupRequireMention,
|
|
||||||
resolveTelegramGroupToolPolicy,
|
|
||||||
} from "../../extensions/telegram/api.js";
|
|
||||||
export { TelegramConfigSchema } from "../config/zod-schema.providers-core.js";
|
export { TelegramConfigSchema } from "../config/zod-schema.providers-core.js";
|
||||||
|
|
||||||
export { buildTokenChannelStatusSummary } from "./status-helpers.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 {
|
export {
|
||||||
auditTelegramGroupMembership,
|
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,
|
buildBrowseProvidersButton,
|
||||||
buildModelsKeyboard,
|
buildModelsKeyboard,
|
||||||
buildProviderKeyboard,
|
buildProviderKeyboard,
|
||||||
calculateTotalPages,
|
calculateTotalPages,
|
||||||
|
collectTelegramStatusIssues,
|
||||||
|
collectTelegramUnmentionedGroupIds,
|
||||||
|
createForumTopicTelegram,
|
||||||
|
createTelegramActionGate,
|
||||||
|
deleteMessageTelegram,
|
||||||
|
editForumTopicTelegram,
|
||||||
|
editMessageReplyMarkupTelegram,
|
||||||
|
editMessageTelegram,
|
||||||
|
fetchTelegramChatId,
|
||||||
|
getCacheStats,
|
||||||
getModelsPageSize,
|
getModelsPageSize,
|
||||||
type ProviderInfo,
|
inspectTelegramAccount,
|
||||||
} from "../../extensions/telegram/api.js";
|
isNumericTelegramUserId,
|
||||||
export {
|
|
||||||
isTelegramExecApprovalApprover,
|
isTelegramExecApprovalApprover,
|
||||||
isTelegramExecApprovalClientEnabled,
|
isTelegramExecApprovalClientEnabled,
|
||||||
} from "../../extensions/telegram/api.js";
|
listTelegramAccountIds,
|
||||||
|
looksLikeTelegramTargetId,
|
||||||
|
monitorTelegramProvider,
|
||||||
|
normalizeTelegramAllowFromEntry,
|
||||||
|
normalizeTelegramMessagingTarget,
|
||||||
|
parseTelegramReplyToMessageId,
|
||||||
|
parseTelegramThreadId,
|
||||||
|
pinMessageTelegram,
|
||||||
|
probeTelegram,
|
||||||
|
reactMessageTelegram,
|
||||||
|
renameForumTopicTelegram,
|
||||||
|
resolveDefaultTelegramAccountId,
|
||||||
|
resolveTelegramInlineButtonsScope,
|
||||||
|
resolveTelegramPollActionGateState,
|
||||||
|
resolveTelegramReactionLevel,
|
||||||
|
resolveTelegramTargetChatType,
|
||||||
|
resolveTelegramToken,
|
||||||
|
searchStickers,
|
||||||
|
sendMessageTelegram,
|
||||||
|
sendPollTelegram,
|
||||||
|
sendStickerTelegram,
|
||||||
|
sendTelegramPayloadMessages,
|
||||||
|
sendTypingTelegram,
|
||||||
|
setTelegramThreadBindingIdleTimeoutBySessionKey,
|
||||||
|
setTelegramThreadBindingMaxAgeBySessionKey,
|
||||||
|
telegramMessageActions,
|
||||||
|
unpinMessageTelegram,
|
||||||
|
};
|
||||||
|
|||||||
@ -3,4 +3,4 @@ export {
|
|||||||
loadWebMedia,
|
loadWebMedia,
|
||||||
loadWebMediaRaw,
|
loadWebMediaRaw,
|
||||||
type WebMediaResult,
|
type WebMediaResult,
|
||||||
} from "../../extensions/whatsapp/runtime-api.js";
|
} from "../channels/whatsapp/web-media-bridge.js";
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
export { handleWhatsAppAction } from "../../extensions/whatsapp/action-runtime-api.js";
|
export { handleWhatsAppAction } from "../channels/whatsapp/action-runtime-bridge.js";
|
||||||
|
|||||||
@ -13,7 +13,7 @@ export {
|
|||||||
export {
|
export {
|
||||||
resolveWhatsAppGroupRequireMention,
|
resolveWhatsAppGroupRequireMention,
|
||||||
resolveWhatsAppGroupToolPolicy,
|
resolveWhatsAppGroupToolPolicy,
|
||||||
} from "../../extensions/whatsapp/api.js";
|
} from "../channels/whatsapp/plugin-sdk-bridge.js";
|
||||||
export { resolveWhatsAppGroupIntroHint } from "../channels/plugins/whatsapp-shared.js";
|
export { resolveWhatsAppGroupIntroHint } from "../channels/plugins/whatsapp-shared.js";
|
||||||
export {
|
export {
|
||||||
ToolAuthorizationError,
|
ToolAuthorizationError,
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
export { startWebLoginWithQr, waitForWebLogin } from "../../extensions/whatsapp/login-qr-api.js";
|
export { startWebLoginWithQr, waitForWebLogin } from "../channels/whatsapp/login-qr-bridge.js";
|
||||||
|
|||||||
@ -1,11 +1,55 @@
|
|||||||
|
import {
|
||||||
|
hasAnyWhatsAppAuth,
|
||||||
|
listEnabledWhatsAppAccounts,
|
||||||
|
resolveWhatsAppAccount,
|
||||||
|
resolveWhatsAppGroupRequireMention,
|
||||||
|
resolveWhatsAppGroupToolPolicy,
|
||||||
|
listWhatsAppDirectoryGroupsFromConfig,
|
||||||
|
listWhatsAppDirectoryPeersFromConfig,
|
||||||
|
} from "../channels/whatsapp/plugin-sdk-bridge.js";
|
||||||
|
import type {
|
||||||
|
WebChannelStatus,
|
||||||
|
WebInboundMessage,
|
||||||
|
WebListenerCloseReason,
|
||||||
|
WebMonitorTuning,
|
||||||
|
} from "../channels/whatsapp/plugin-sdk-bridge.js";
|
||||||
|
import {
|
||||||
|
createWhatsAppLoginTool,
|
||||||
|
createWaSocket,
|
||||||
|
DEFAULT_WEB_MEDIA_BYTES,
|
||||||
|
extractMediaPlaceholder,
|
||||||
|
extractText,
|
||||||
|
formatError,
|
||||||
|
getActiveWebListener,
|
||||||
|
getDefaultLocalRoots,
|
||||||
|
getStatusCode,
|
||||||
|
getWebAuthAgeMs,
|
||||||
|
HEARTBEAT_PROMPT,
|
||||||
|
HEARTBEAT_TOKEN,
|
||||||
|
loadWebMedia,
|
||||||
|
loadWebMediaRaw,
|
||||||
|
loginWeb,
|
||||||
|
logWebSelfId,
|
||||||
|
logoutWeb,
|
||||||
|
monitorWebChannel,
|
||||||
|
monitorWebInbox,
|
||||||
|
optimizeImageToJpeg,
|
||||||
|
pickWebChannel,
|
||||||
|
readWebSelfId,
|
||||||
|
resolveHeartbeatRecipients,
|
||||||
|
runWebHeartbeatOnce,
|
||||||
|
sendMessageWhatsApp,
|
||||||
|
sendPollWhatsApp,
|
||||||
|
sendReactionWhatsApp,
|
||||||
|
waitForWaConnection,
|
||||||
|
WA_WEB_AUTH_DIR,
|
||||||
|
webAuthExists,
|
||||||
|
} from "../channels/whatsapp/plugin-sdk-bridge.js";
|
||||||
|
|
||||||
export type { ChannelMessageActionName } from "../channels/plugins/types.js";
|
export type { ChannelMessageActionName } from "../channels/plugins/types.js";
|
||||||
export type { OpenClawConfig } from "../config/config.js";
|
export type { OpenClawConfig } from "../config/config.js";
|
||||||
export type { DmPolicy, GroupPolicy, WhatsAppAccountConfig } from "../config/types.js";
|
export type { DmPolicy, GroupPolicy, WhatsAppAccountConfig } from "../config/types.js";
|
||||||
export type { WebChannelStatus, WebMonitorTuning } from "../../extensions/whatsapp/runtime-api.js";
|
export type { WebChannelStatus, WebInboundMessage, WebListenerCloseReason, WebMonitorTuning };
|
||||||
export type {
|
|
||||||
WebInboundMessage,
|
|
||||||
WebListenerCloseReason,
|
|
||||||
} from "../../extensions/whatsapp/runtime-api.js";
|
|
||||||
export type {
|
export type {
|
||||||
ChannelMessageActionContext,
|
ChannelMessageActionContext,
|
||||||
ChannelPlugin,
|
ChannelPlugin,
|
||||||
@ -33,10 +77,7 @@ export {
|
|||||||
resolveWhatsAppConfigDefaultTo,
|
resolveWhatsAppConfigDefaultTo,
|
||||||
} from "./channel-config-helpers.js";
|
} from "./channel-config-helpers.js";
|
||||||
export { normalizeWhatsAppAllowFromEntries } from "../channels/plugins/normalize/whatsapp.js";
|
export { normalizeWhatsAppAllowFromEntries } from "../channels/plugins/normalize/whatsapp.js";
|
||||||
export {
|
export { listWhatsAppDirectoryGroupsFromConfig, listWhatsAppDirectoryPeersFromConfig };
|
||||||
listWhatsAppDirectoryGroupsFromConfig,
|
|
||||||
listWhatsAppDirectoryPeersFromConfig,
|
|
||||||
} from "../../extensions/whatsapp/src/directory-config.js";
|
|
||||||
export {
|
export {
|
||||||
collectAllowlistProviderGroupPolicyWarnings,
|
collectAllowlistProviderGroupPolicyWarnings,
|
||||||
collectOpenGroupPolicyRouteAllowlistWarnings,
|
collectOpenGroupPolicyRouteAllowlistWarnings,
|
||||||
@ -49,10 +90,7 @@ export {
|
|||||||
resolveAllowlistProviderRuntimeGroupPolicy,
|
resolveAllowlistProviderRuntimeGroupPolicy,
|
||||||
resolveDefaultGroupPolicy,
|
resolveDefaultGroupPolicy,
|
||||||
} from "../config/runtime-group-policy.js";
|
} from "../config/runtime-group-policy.js";
|
||||||
export {
|
export { resolveWhatsAppGroupRequireMention, resolveWhatsAppGroupToolPolicy };
|
||||||
resolveWhatsAppGroupRequireMention,
|
|
||||||
resolveWhatsAppGroupToolPolicy,
|
|
||||||
} from "../../extensions/whatsapp/api.js";
|
|
||||||
export {
|
export {
|
||||||
createWhatsAppOutboundBase,
|
createWhatsAppOutboundBase,
|
||||||
resolveWhatsAppGroupIntroHint,
|
resolveWhatsAppGroupIntroHint,
|
||||||
@ -65,50 +103,36 @@ export { createActionGate, readStringParam } from "../agents/tools/common.js";
|
|||||||
export { createPluginRuntimeStore } from "./runtime-store.js";
|
export { createPluginRuntimeStore } from "./runtime-store.js";
|
||||||
export { normalizeE164 } from "../utils.js";
|
export { normalizeE164 } from "../utils.js";
|
||||||
|
|
||||||
|
export { hasAnyWhatsAppAuth, listEnabledWhatsAppAccounts, resolveWhatsAppAccount };
|
||||||
export {
|
export {
|
||||||
hasAnyWhatsAppAuth,
|
createWaSocket,
|
||||||
listEnabledWhatsAppAccounts,
|
createWhatsAppLoginTool,
|
||||||
resolveWhatsAppAccount,
|
|
||||||
} from "../../extensions/whatsapp/api.js";
|
|
||||||
export {
|
|
||||||
getActiveWebListener,
|
|
||||||
getWebAuthAgeMs,
|
|
||||||
WA_WEB_AUTH_DIR,
|
|
||||||
logWebSelfId,
|
|
||||||
logoutWeb,
|
|
||||||
pickWebChannel,
|
|
||||||
readWebSelfId,
|
|
||||||
webAuthExists,
|
|
||||||
} from "../../extensions/whatsapp/runtime-api.js";
|
|
||||||
export {
|
|
||||||
DEFAULT_WEB_MEDIA_BYTES,
|
DEFAULT_WEB_MEDIA_BYTES,
|
||||||
HEARTBEAT_PROMPT,
|
|
||||||
HEARTBEAT_TOKEN,
|
|
||||||
monitorWebChannel,
|
|
||||||
resolveHeartbeatRecipients,
|
|
||||||
runWebHeartbeatOnce,
|
|
||||||
} from "../../extensions/whatsapp/runtime-api.js";
|
|
||||||
export {
|
|
||||||
extractMediaPlaceholder,
|
extractMediaPlaceholder,
|
||||||
extractText,
|
extractText,
|
||||||
monitorWebInbox,
|
formatError,
|
||||||
} from "../../extensions/whatsapp/runtime-api.js";
|
getActiveWebListener,
|
||||||
export { loginWeb } from "../../extensions/whatsapp/runtime-api.js";
|
|
||||||
export {
|
|
||||||
getDefaultLocalRoots,
|
getDefaultLocalRoots,
|
||||||
|
getStatusCode,
|
||||||
|
getWebAuthAgeMs,
|
||||||
|
HEARTBEAT_PROMPT,
|
||||||
|
HEARTBEAT_TOKEN,
|
||||||
loadWebMedia,
|
loadWebMedia,
|
||||||
loadWebMediaRaw,
|
loadWebMediaRaw,
|
||||||
|
loginWeb,
|
||||||
|
logWebSelfId,
|
||||||
|
logoutWeb,
|
||||||
|
monitorWebChannel,
|
||||||
|
monitorWebInbox,
|
||||||
optimizeImageToJpeg,
|
optimizeImageToJpeg,
|
||||||
} from "../../extensions/whatsapp/runtime-api.js";
|
pickWebChannel,
|
||||||
export {
|
readWebSelfId,
|
||||||
|
resolveHeartbeatRecipients,
|
||||||
|
runWebHeartbeatOnce,
|
||||||
sendMessageWhatsApp,
|
sendMessageWhatsApp,
|
||||||
sendPollWhatsApp,
|
sendPollWhatsApp,
|
||||||
sendReactionWhatsApp,
|
sendReactionWhatsApp,
|
||||||
} from "../../extensions/whatsapp/runtime-api.js";
|
|
||||||
export {
|
|
||||||
createWaSocket,
|
|
||||||
formatError,
|
|
||||||
getStatusCode,
|
|
||||||
waitForWaConnection,
|
waitForWaConnection,
|
||||||
} from "../../extensions/whatsapp/runtime-api.js";
|
WA_WEB_AUTH_DIR,
|
||||||
export { createWhatsAppLoginTool } from "../../extensions/whatsapp/runtime-api.js";
|
webAuthExists,
|
||||||
|
};
|
||||||
|
|||||||
@ -62,8 +62,8 @@ export { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "../routing/session-key.j
|
|||||||
export type { RuntimeEnv } from "../runtime.js";
|
export type { RuntimeEnv } from "../runtime.js";
|
||||||
export type { WizardPrompter } from "../wizard/prompts.js";
|
export type { WizardPrompter } from "../wizard/prompts.js";
|
||||||
export { formatAllowFromLowercase, isNormalizedSenderAllowed } from "./allow-from.js";
|
export { formatAllowFromLowercase, isNormalizedSenderAllowed } from "./allow-from.js";
|
||||||
export { zaloSetupAdapter } from "../../extensions/zalo/api.js";
|
export { zaloSetupAdapter } from "../channels/zalo/plugin-sdk-bridge.js";
|
||||||
export { zaloSetupWizard } from "../../extensions/zalo/api.js";
|
export { zaloSetupWizard } from "../channels/zalo/plugin-sdk-bridge.js";
|
||||||
export {
|
export {
|
||||||
resolveDirectDmAuthorizationOutcome,
|
resolveDirectDmAuthorizationOutcome,
|
||||||
resolveSenderCommandAuthorizationWithRuntime,
|
resolveSenderCommandAuthorizationWithRuntime,
|
||||||
|
|||||||
@ -94,29 +94,29 @@ export type PluginRuntimeChannel = {
|
|||||||
shouldHandleTextCommands: typeof import("../../auto-reply/commands-registry.js").shouldHandleTextCommands;
|
shouldHandleTextCommands: typeof import("../../auto-reply/commands-registry.js").shouldHandleTextCommands;
|
||||||
};
|
};
|
||||||
discord: {
|
discord: {
|
||||||
messageActions: typeof import("../../../extensions/discord/runtime-api.js").discordMessageActions;
|
messageActions: typeof import("openclaw/plugin-sdk/discord").discordMessageActions;
|
||||||
auditChannelPermissions: typeof import("../../../extensions/discord/runtime-api.js").auditDiscordChannelPermissions;
|
auditChannelPermissions: typeof import("openclaw/plugin-sdk/discord").auditDiscordChannelPermissions;
|
||||||
listDirectoryGroupsLive: typeof import("../../../extensions/discord/runtime-api.js").listDiscordDirectoryGroupsLive;
|
listDirectoryGroupsLive: typeof import("openclaw/plugin-sdk/discord").listDiscordDirectoryGroupsLive;
|
||||||
listDirectoryPeersLive: typeof import("../../../extensions/discord/runtime-api.js").listDiscordDirectoryPeersLive;
|
listDirectoryPeersLive: typeof import("openclaw/plugin-sdk/discord").listDiscordDirectoryPeersLive;
|
||||||
probeDiscord: typeof import("../../../extensions/discord/runtime-api.js").probeDiscord;
|
probeDiscord: typeof import("openclaw/plugin-sdk/discord").probeDiscord;
|
||||||
resolveChannelAllowlist: typeof import("../../../extensions/discord/runtime-api.js").resolveDiscordChannelAllowlist;
|
resolveChannelAllowlist: typeof import("openclaw/plugin-sdk/discord").resolveDiscordChannelAllowlist;
|
||||||
resolveUserAllowlist: typeof import("../../../extensions/discord/runtime-api.js").resolveDiscordUserAllowlist;
|
resolveUserAllowlist: typeof import("openclaw/plugin-sdk/discord").resolveDiscordUserAllowlist;
|
||||||
sendComponentMessage: typeof import("../../../extensions/discord/runtime-api.js").sendDiscordComponentMessage;
|
sendComponentMessage: typeof import("openclaw/plugin-sdk/discord").sendDiscordComponentMessage;
|
||||||
sendMessageDiscord: typeof import("../../../extensions/discord/runtime-api.js").sendMessageDiscord;
|
sendMessageDiscord: typeof import("openclaw/plugin-sdk/discord").sendMessageDiscord;
|
||||||
sendPollDiscord: typeof import("../../../extensions/discord/runtime-api.js").sendPollDiscord;
|
sendPollDiscord: typeof import("openclaw/plugin-sdk/discord").sendPollDiscord;
|
||||||
monitorDiscordProvider: typeof import("../../../extensions/discord/runtime-api.js").monitorDiscordProvider;
|
monitorDiscordProvider: typeof import("openclaw/plugin-sdk/discord").monitorDiscordProvider;
|
||||||
threadBindings: {
|
threadBindings: {
|
||||||
getManager: typeof import("../../../extensions/discord/runtime-api.js").getThreadBindingManager;
|
getManager: typeof import("openclaw/plugin-sdk/discord").getThreadBindingManager;
|
||||||
resolveIdleTimeoutMs: typeof import("../../../extensions/discord/runtime-api.js").resolveThreadBindingIdleTimeoutMs;
|
resolveIdleTimeoutMs: typeof import("openclaw/plugin-sdk/discord").resolveThreadBindingIdleTimeoutMs;
|
||||||
resolveInactivityExpiresAt: typeof import("../../../extensions/discord/runtime-api.js").resolveThreadBindingInactivityExpiresAt;
|
resolveInactivityExpiresAt: typeof import("openclaw/plugin-sdk/discord").resolveThreadBindingInactivityExpiresAt;
|
||||||
resolveMaxAgeMs: typeof import("../../../extensions/discord/runtime-api.js").resolveThreadBindingMaxAgeMs;
|
resolveMaxAgeMs: typeof import("openclaw/plugin-sdk/discord").resolveThreadBindingMaxAgeMs;
|
||||||
resolveMaxAgeExpiresAt: typeof import("../../../extensions/discord/runtime-api.js").resolveThreadBindingMaxAgeExpiresAt;
|
resolveMaxAgeExpiresAt: typeof import("openclaw/plugin-sdk/discord").resolveThreadBindingMaxAgeExpiresAt;
|
||||||
setIdleTimeoutBySessionKey: typeof import("../../../extensions/discord/runtime-api.js").setThreadBindingIdleTimeoutBySessionKey;
|
setIdleTimeoutBySessionKey: typeof import("openclaw/plugin-sdk/discord").setThreadBindingIdleTimeoutBySessionKey;
|
||||||
setMaxAgeBySessionKey: typeof import("../../../extensions/discord/runtime-api.js").setThreadBindingMaxAgeBySessionKey;
|
setMaxAgeBySessionKey: typeof import("openclaw/plugin-sdk/discord").setThreadBindingMaxAgeBySessionKey;
|
||||||
unbindBySessionKey: typeof import("../../../extensions/discord/runtime-api.js").unbindThreadBindingsBySessionKey;
|
unbindBySessionKey: typeof import("openclaw/plugin-sdk/discord").unbindThreadBindingsBySessionKey;
|
||||||
};
|
};
|
||||||
typing: {
|
typing: {
|
||||||
pulse: typeof import("../../../extensions/discord/runtime-api.js").sendTypingDiscord;
|
pulse: typeof import("openclaw/plugin-sdk/discord").sendTypingDiscord;
|
||||||
start: (params: {
|
start: (params: {
|
||||||
channelId: string;
|
channelId: string;
|
||||||
accountId?: string;
|
accountId?: string;
|
||||||
@ -128,39 +128,39 @@ export type PluginRuntimeChannel = {
|
|||||||
}>;
|
}>;
|
||||||
};
|
};
|
||||||
conversationActions: {
|
conversationActions: {
|
||||||
editMessage: typeof import("../../../extensions/discord/runtime-api.js").editMessageDiscord;
|
editMessage: typeof import("openclaw/plugin-sdk/discord").editMessageDiscord;
|
||||||
deleteMessage: typeof import("../../../extensions/discord/runtime-api.js").deleteMessageDiscord;
|
deleteMessage: typeof import("openclaw/plugin-sdk/discord").deleteMessageDiscord;
|
||||||
pinMessage: typeof import("../../../extensions/discord/runtime-api.js").pinMessageDiscord;
|
pinMessage: typeof import("openclaw/plugin-sdk/discord").pinMessageDiscord;
|
||||||
unpinMessage: typeof import("../../../extensions/discord/runtime-api.js").unpinMessageDiscord;
|
unpinMessage: typeof import("openclaw/plugin-sdk/discord").unpinMessageDiscord;
|
||||||
createThread: typeof import("../../../extensions/discord/runtime-api.js").createThreadDiscord;
|
createThread: typeof import("openclaw/plugin-sdk/discord").createThreadDiscord;
|
||||||
editChannel: typeof import("../../../extensions/discord/runtime-api.js").editChannelDiscord;
|
editChannel: typeof import("openclaw/plugin-sdk/discord").editChannelDiscord;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
slack: {
|
slack: {
|
||||||
listDirectoryGroupsLive: typeof import("../../../extensions/slack/runtime-api.js").listSlackDirectoryGroupsLive;
|
listDirectoryGroupsLive: typeof import("openclaw/plugin-sdk/slack").listSlackDirectoryGroupsLive;
|
||||||
listDirectoryPeersLive: typeof import("../../../extensions/slack/runtime-api.js").listSlackDirectoryPeersLive;
|
listDirectoryPeersLive: typeof import("openclaw/plugin-sdk/slack").listSlackDirectoryPeersLive;
|
||||||
probeSlack: typeof import("../../../extensions/slack/runtime-api.js").probeSlack;
|
probeSlack: typeof import("openclaw/plugin-sdk/slack").probeSlack;
|
||||||
resolveChannelAllowlist: typeof import("../../../extensions/slack/runtime-api.js").resolveSlackChannelAllowlist;
|
resolveChannelAllowlist: typeof import("openclaw/plugin-sdk/slack").resolveSlackChannelAllowlist;
|
||||||
resolveUserAllowlist: typeof import("../../../extensions/slack/runtime-api.js").resolveSlackUserAllowlist;
|
resolveUserAllowlist: typeof import("openclaw/plugin-sdk/slack").resolveSlackUserAllowlist;
|
||||||
sendMessageSlack: typeof import("../../../extensions/slack/runtime-api.js").sendMessageSlack;
|
sendMessageSlack: typeof import("openclaw/plugin-sdk/slack").sendMessageSlack;
|
||||||
monitorSlackProvider: typeof import("../../../extensions/slack/runtime-api.js").monitorSlackProvider;
|
monitorSlackProvider: typeof import("openclaw/plugin-sdk/slack").monitorSlackProvider;
|
||||||
handleSlackAction: typeof import("../../../extensions/slack/runtime-api.js").handleSlackAction;
|
handleSlackAction: typeof import("openclaw/plugin-sdk/slack").handleSlackAction;
|
||||||
};
|
};
|
||||||
telegram: {
|
telegram: {
|
||||||
auditGroupMembership: typeof import("../../../extensions/telegram/runtime-api.js").auditTelegramGroupMembership;
|
auditGroupMembership: typeof import("openclaw/plugin-sdk/telegram").auditTelegramGroupMembership;
|
||||||
collectUnmentionedGroupIds: typeof import("../../../extensions/telegram/runtime-api.js").collectTelegramUnmentionedGroupIds;
|
collectUnmentionedGroupIds: typeof import("openclaw/plugin-sdk/telegram").collectTelegramUnmentionedGroupIds;
|
||||||
probeTelegram: typeof import("../../../extensions/telegram/runtime-api.js").probeTelegram;
|
probeTelegram: typeof import("openclaw/plugin-sdk/telegram").probeTelegram;
|
||||||
resolveTelegramToken: typeof import("../../../extensions/telegram/runtime-api.js").resolveTelegramToken;
|
resolveTelegramToken: typeof import("openclaw/plugin-sdk/telegram").resolveTelegramToken;
|
||||||
sendMessageTelegram: typeof import("../../../extensions/telegram/runtime-api.js").sendMessageTelegram;
|
sendMessageTelegram: typeof import("openclaw/plugin-sdk/telegram").sendMessageTelegram;
|
||||||
sendPollTelegram: typeof import("../../../extensions/telegram/runtime-api.js").sendPollTelegram;
|
sendPollTelegram: typeof import("openclaw/plugin-sdk/telegram").sendPollTelegram;
|
||||||
monitorTelegramProvider: typeof import("../../../extensions/telegram/runtime-api.js").monitorTelegramProvider;
|
monitorTelegramProvider: typeof import("openclaw/plugin-sdk/telegram").monitorTelegramProvider;
|
||||||
messageActions: typeof import("../../../extensions/telegram/runtime-api.js").telegramMessageActions;
|
messageActions: typeof import("openclaw/plugin-sdk/telegram").telegramMessageActions;
|
||||||
threadBindings: {
|
threadBindings: {
|
||||||
setIdleTimeoutBySessionKey: typeof import("../../../extensions/telegram/runtime-api.js").setTelegramThreadBindingIdleTimeoutBySessionKey;
|
setIdleTimeoutBySessionKey: typeof import("openclaw/plugin-sdk/telegram").setTelegramThreadBindingIdleTimeoutBySessionKey;
|
||||||
setMaxAgeBySessionKey: typeof import("../../../extensions/telegram/runtime-api.js").setTelegramThreadBindingMaxAgeBySessionKey;
|
setMaxAgeBySessionKey: typeof import("openclaw/plugin-sdk/telegram").setTelegramThreadBindingMaxAgeBySessionKey;
|
||||||
};
|
};
|
||||||
typing: {
|
typing: {
|
||||||
pulse: typeof import("../../../extensions/telegram/runtime-api.js").sendTypingTelegram;
|
pulse: typeof import("openclaw/plugin-sdk/telegram").sendTypingTelegram;
|
||||||
start: (params: {
|
start: (params: {
|
||||||
to: string;
|
to: string;
|
||||||
accountId?: string;
|
accountId?: string;
|
||||||
@ -173,8 +173,8 @@ export type PluginRuntimeChannel = {
|
|||||||
}>;
|
}>;
|
||||||
};
|
};
|
||||||
conversationActions: {
|
conversationActions: {
|
||||||
editMessage: typeof import("../../../extensions/telegram/runtime-api.js").editMessageTelegram;
|
editMessage: typeof import("openclaw/plugin-sdk/telegram").editMessageTelegram;
|
||||||
editReplyMarkup: typeof import("../../../extensions/telegram/runtime-api.js").editMessageReplyMarkupTelegram;
|
editReplyMarkup: typeof import("openclaw/plugin-sdk/telegram").editMessageReplyMarkupTelegram;
|
||||||
clearReplyMarkup: (
|
clearReplyMarkup: (
|
||||||
chatIdInput: string | number,
|
chatIdInput: string | number,
|
||||||
messageIdInput: string | number,
|
messageIdInput: string | number,
|
||||||
@ -187,22 +187,22 @@ export type PluginRuntimeChannel = {
|
|||||||
cfg?: ReturnType<typeof import("../../config/config.js").loadConfig>;
|
cfg?: ReturnType<typeof import("../../config/config.js").loadConfig>;
|
||||||
},
|
},
|
||||||
) => Promise<{ ok: true; messageId: string; chatId: string }>;
|
) => Promise<{ ok: true; messageId: string; chatId: string }>;
|
||||||
deleteMessage: typeof import("../../../extensions/telegram/runtime-api.js").deleteMessageTelegram;
|
deleteMessage: typeof import("openclaw/plugin-sdk/telegram").deleteMessageTelegram;
|
||||||
renameTopic: typeof import("../../../extensions/telegram/runtime-api.js").renameForumTopicTelegram;
|
renameTopic: typeof import("openclaw/plugin-sdk/telegram").renameForumTopicTelegram;
|
||||||
pinMessage: typeof import("../../../extensions/telegram/runtime-api.js").pinMessageTelegram;
|
pinMessage: typeof import("openclaw/plugin-sdk/telegram").pinMessageTelegram;
|
||||||
unpinMessage: typeof import("../../../extensions/telegram/runtime-api.js").unpinMessageTelegram;
|
unpinMessage: typeof import("openclaw/plugin-sdk/telegram").unpinMessageTelegram;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
signal: {
|
signal: {
|
||||||
probeSignal: typeof import("../../../extensions/signal/runtime-api.js").probeSignal;
|
probeSignal: typeof import("openclaw/plugin-sdk/signal").probeSignal;
|
||||||
sendMessageSignal: typeof import("../../../extensions/signal/runtime-api.js").sendMessageSignal;
|
sendMessageSignal: typeof import("openclaw/plugin-sdk/signal").sendMessageSignal;
|
||||||
monitorSignalProvider: typeof import("../../../extensions/signal/runtime-api.js").monitorSignalProvider;
|
monitorSignalProvider: typeof import("openclaw/plugin-sdk/signal").monitorSignalProvider;
|
||||||
messageActions: typeof import("../../../extensions/signal/runtime-api.js").signalMessageActions;
|
messageActions: typeof import("openclaw/plugin-sdk/signal").signalMessageActions;
|
||||||
};
|
};
|
||||||
imessage: {
|
imessage: {
|
||||||
monitorIMessageProvider: typeof import("../../../extensions/imessage/runtime-api.js").monitorIMessageProvider;
|
monitorIMessageProvider: typeof import("openclaw/plugin-sdk/imessage").monitorIMessageProvider;
|
||||||
probeIMessage: typeof import("../../../extensions/imessage/runtime-api.js").probeIMessage;
|
probeIMessage: typeof import("openclaw/plugin-sdk/imessage").probeIMessage;
|
||||||
sendMessageIMessage: typeof import("../../../extensions/imessage/runtime-api.js").sendMessageIMessage;
|
sendMessageIMessage: typeof import("openclaw/plugin-sdk/imessage").sendMessageIMessage;
|
||||||
};
|
};
|
||||||
whatsapp: {
|
whatsapp: {
|
||||||
getActiveWebListener: typeof import("openclaw/plugin-sdk/whatsapp").getActiveWebListener;
|
getActiveWebListener: typeof import("openclaw/plugin-sdk/whatsapp").getActiveWebListener;
|
||||||
|
|||||||
@ -39,7 +39,7 @@ export type PluginRuntimeCore = {
|
|||||||
formatNativeDependencyHint: typeof import("./native-deps.js").formatNativeDependencyHint;
|
formatNativeDependencyHint: typeof import("./native-deps.js").formatNativeDependencyHint;
|
||||||
};
|
};
|
||||||
media: {
|
media: {
|
||||||
loadWebMedia: typeof import("../../../extensions/whatsapp/runtime-api.js").loadWebMedia;
|
loadWebMedia: typeof import("openclaw/plugin-sdk/web-media").loadWebMedia;
|
||||||
detectMime: typeof import("../../media/mime.js").detectMime;
|
detectMime: typeof import("../../media/mime.js").detectMime;
|
||||||
mediaKindFromMime: typeof import("../../media/constants.js").mediaKindFromMime;
|
mediaKindFromMime: typeof import("../../media/constants.js").mediaKindFromMime;
|
||||||
isVoiceCompatibleAudio: typeof import("../../media/audio.js").isVoiceCompatibleAudio;
|
isVoiceCompatibleAudio: typeof import("../../media/audio.js").isVoiceCompatibleAudio;
|
||||||
|
|||||||
60
src/providers/plugin-sdk-provider-models-bridge.ts
Normal file
60
src/providers/plugin-sdk-provider-models-bridge.ts
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
export {
|
||||||
|
KIMI_CODING_BASE_URL,
|
||||||
|
KIMI_CODING_DEFAULT_MODEL_ID,
|
||||||
|
} from "../../extensions/kimi-coding/provider-catalog.js";
|
||||||
|
export {
|
||||||
|
buildMinimaxApiModelDefinition,
|
||||||
|
buildMinimaxModelDefinition,
|
||||||
|
DEFAULT_MINIMAX_BASE_URL,
|
||||||
|
MINIMAX_API_BASE_URL,
|
||||||
|
MINIMAX_API_COST,
|
||||||
|
MINIMAX_CN_API_BASE_URL,
|
||||||
|
MINIMAX_HOSTED_COST,
|
||||||
|
MINIMAX_HOSTED_MODEL_ID,
|
||||||
|
MINIMAX_HOSTED_MODEL_REF,
|
||||||
|
MINIMAX_LM_STUDIO_COST,
|
||||||
|
} from "../../extensions/minimax/model-definitions.js";
|
||||||
|
export {
|
||||||
|
buildMistralModelDefinition,
|
||||||
|
MISTRAL_BASE_URL,
|
||||||
|
MISTRAL_DEFAULT_COST,
|
||||||
|
MISTRAL_DEFAULT_MODEL_ID,
|
||||||
|
MISTRAL_DEFAULT_MODEL_REF,
|
||||||
|
} from "../../extensions/mistral/model-definitions.js";
|
||||||
|
export {
|
||||||
|
buildModelStudioDefaultModelDefinition,
|
||||||
|
buildModelStudioModelDefinition,
|
||||||
|
MODELSTUDIO_CN_BASE_URL,
|
||||||
|
MODELSTUDIO_DEFAULT_COST,
|
||||||
|
MODELSTUDIO_DEFAULT_MODEL_ID,
|
||||||
|
MODELSTUDIO_DEFAULT_MODEL_REF,
|
||||||
|
MODELSTUDIO_GLOBAL_BASE_URL,
|
||||||
|
} from "../../extensions/modelstudio/model-definitions.js";
|
||||||
|
export { MOONSHOT_CN_BASE_URL } from "../../extensions/moonshot/onboard.js";
|
||||||
|
export {
|
||||||
|
buildMoonshotProvider,
|
||||||
|
MOONSHOT_BASE_URL,
|
||||||
|
MOONSHOT_DEFAULT_MODEL_ID,
|
||||||
|
} from "../../extensions/moonshot/provider-catalog.js";
|
||||||
|
export {
|
||||||
|
QIANFAN_BASE_URL,
|
||||||
|
QIANFAN_DEFAULT_MODEL_ID,
|
||||||
|
} from "../../extensions/qianfan/provider-catalog.js";
|
||||||
|
export {
|
||||||
|
buildXaiModelDefinition,
|
||||||
|
XAI_BASE_URL,
|
||||||
|
XAI_DEFAULT_COST,
|
||||||
|
XAI_DEFAULT_MODEL_ID,
|
||||||
|
XAI_DEFAULT_MODEL_REF,
|
||||||
|
} from "../../extensions/xai/model-definitions.js";
|
||||||
|
export {
|
||||||
|
buildZaiModelDefinition,
|
||||||
|
resolveZaiBaseUrl,
|
||||||
|
ZAI_CODING_CN_BASE_URL,
|
||||||
|
ZAI_CODING_GLOBAL_BASE_URL,
|
||||||
|
ZAI_CN_BASE_URL,
|
||||||
|
ZAI_DEFAULT_COST,
|
||||||
|
ZAI_DEFAULT_MODEL_ID,
|
||||||
|
ZAI_DEFAULT_MODEL_REF,
|
||||||
|
ZAI_GLOBAL_BASE_URL,
|
||||||
|
} from "../../extensions/zai/model-definitions.js";
|
||||||
Loading…
x
Reference in New Issue
Block a user