mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-22 23:41:07 +00:00
refactor: finish public plugin sdk boundary seams
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
import { describeImageWithModel } from "../../src/media-understanding/providers/image.js";
|
||||
import type { MediaUnderstandingProvider } from "../../src/media-understanding/types.js";
|
||||
import {
|
||||
describeImageWithModel,
|
||||
type MediaUnderstandingProvider,
|
||||
} from "openclaw/plugin-sdk/media-understanding";
|
||||
|
||||
export const anthropicMediaUnderstandingProvider: MediaUnderstandingProvider = {
|
||||
id: "anthropic",
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import {
|
||||
normalizeAccountId,
|
||||
patchScopedAccountConfig,
|
||||
prepareScopedSetupConfig,
|
||||
} from "../../../src/channels/plugins/setup-helpers.js";
|
||||
import { setTopLevelChannelDmPolicyWithAllowFrom } from "../../../src/channels/plugins/setup-wizard-helpers.js";
|
||||
import type { ChannelSetupAdapter } from "../../../src/channels/plugins/types.adapters.js";
|
||||
import type { OpenClawConfig } from "../../../src/config/config.js";
|
||||
import type { DmPolicy } from "../../../src/config/types.js";
|
||||
import { normalizeAccountId } from "../../../src/routing/session-key.js";
|
||||
setTopLevelChannelDmPolicyWithAllowFrom,
|
||||
type ChannelSetupAdapter,
|
||||
type DmPolicy,
|
||||
type OpenClawConfig,
|
||||
} from "openclaw/plugin-sdk/setup";
|
||||
import { applyBlueBubblesConnectionConfig } from "./config-apply.js";
|
||||
|
||||
const channel = "bluebubbles" as const;
|
||||
|
||||
@@ -1,18 +1,15 @@
|
||||
import { normalizeGoogleModelId } from "../../src/agents/model-id-normalization.js";
|
||||
import { parseGeminiAuth } from "../../src/infra/gemini-auth.js";
|
||||
import { describeImageWithModel } from "../../src/media-understanding/providers/image.js";
|
||||
import { normalizeGoogleModelId, parseGeminiAuth } from "openclaw/plugin-sdk/google";
|
||||
import {
|
||||
assertOkOrThrowHttpError,
|
||||
describeImageWithModel,
|
||||
normalizeBaseUrl,
|
||||
postJsonRequest,
|
||||
} from "../../src/media-understanding/providers/shared.js";
|
||||
import type {
|
||||
AudioTranscriptionRequest,
|
||||
AudioTranscriptionResult,
|
||||
MediaUnderstandingProvider,
|
||||
VideoDescriptionRequest,
|
||||
VideoDescriptionResult,
|
||||
} from "../../src/media-understanding/types.js";
|
||||
type AudioTranscriptionRequest,
|
||||
type AudioTranscriptionResult,
|
||||
type MediaUnderstandingProvider,
|
||||
type VideoDescriptionRequest,
|
||||
type VideoDescriptionResult,
|
||||
} from "openclaw/plugin-sdk/media-understanding";
|
||||
|
||||
export const DEFAULT_GOOGLE_AUDIO_BASE_URL = "https://generativelanguage.googleapis.com/v1beta";
|
||||
export const DEFAULT_GOOGLE_VIDEO_BASE_URL = "https://generativelanguage.googleapis.com/v1beta";
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import { createPatchedAccountSetupAdapter } from "../../../src/channels/plugins/setup-helpers.js";
|
||||
import { DEFAULT_ACCOUNT_ID } from "../../../src/routing/session-key.js";
|
||||
import { createPatchedAccountSetupAdapter, DEFAULT_ACCOUNT_ID } from "openclaw/plugin-sdk/setup";
|
||||
|
||||
const channel = "googlechat" as const;
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { emptyPluginConfigSchema, type OpenClawPluginApi } from "openclaw/plugin-sdk/core";
|
||||
import { createProviderApiKeyAuthMethod } from "openclaw/plugin-sdk/provider-auth";
|
||||
import { buildSingleProviderApiKeyCatalog } from "openclaw/plugin-sdk/provider-catalog";
|
||||
import {
|
||||
createKilocodeWrapper,
|
||||
isProxyReasoningUnsupported,
|
||||
} from "openclaw/plugin-sdk/provider-stream";
|
||||
import { buildSingleProviderApiKeyCatalog } from "../../src/plugins/provider-catalog.js";
|
||||
import { applyKilocodeConfig, KILOCODE_DEFAULT_MODEL_REF } from "./onboard.js";
|
||||
import { buildKilocodeProviderWithDiscovery } from "./provider-catalog.js";
|
||||
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
import { prepareScopedSetupConfig } from "../../../src/channels/plugins/setup-helpers.js";
|
||||
import type { ChannelSetupAdapter } from "../../../src/channels/plugins/types.adapters.js";
|
||||
import { normalizeSecretInputString } from "../../../src/config/types.secrets.js";
|
||||
import { normalizeAccountId } from "../../../src/routing/session-key.js";
|
||||
import {
|
||||
normalizeAccountId,
|
||||
normalizeSecretInputString,
|
||||
prepareScopedSetupConfig,
|
||||
type ChannelSetupAdapter,
|
||||
} from "openclaw/plugin-sdk/setup";
|
||||
import type { CoreConfig } from "./types.js";
|
||||
|
||||
const channel = "matrix" as const;
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
import { describeImageWithModel } from "../../src/media-understanding/providers/image.js";
|
||||
import type { MediaUnderstandingProvider } from "../../src/media-understanding/types.js";
|
||||
import {
|
||||
describeImageWithModel,
|
||||
type MediaUnderstandingProvider,
|
||||
} from "openclaw/plugin-sdk/media-understanding";
|
||||
|
||||
export const minimaxMediaUnderstandingProvider: MediaUnderstandingProvider = {
|
||||
id: "minimax",
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { ModelDefinitionConfig } from "../../src/config/types.models.js";
|
||||
import type { ModelDefinitionConfig } from "openclaw/plugin-sdk/provider-models";
|
||||
|
||||
export const DEFAULT_MINIMAX_BASE_URL = "https://api.minimax.io/v1";
|
||||
export const MINIMAX_API_BASE_URL = "https://api.minimax.io/anthropic";
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
import { transcribeOpenAiCompatibleAudio } from "../../src/media-understanding/providers/openai-compatible-audio.js";
|
||||
import type { MediaUnderstandingProvider } from "../../src/media-understanding/types.js";
|
||||
import {
|
||||
transcribeOpenAiCompatibleAudio,
|
||||
type MediaUnderstandingProvider,
|
||||
} from "openclaw/plugin-sdk/media-understanding";
|
||||
|
||||
const DEFAULT_MISTRAL_AUDIO_BASE_URL = "https://api.mistral.ai/v1";
|
||||
const DEFAULT_MISTRAL_AUDIO_MODEL = "voxtral-mini-latest";
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { ModelDefinitionConfig } from "../../src/config/types.models.js";
|
||||
import type { ModelDefinitionConfig } from "openclaw/plugin-sdk/provider-models";
|
||||
|
||||
export const MISTRAL_BASE_URL = "https://api.mistral.ai/v1";
|
||||
export const MISTRAL_DEFAULT_MODEL_ID = "mistral-large-latest";
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { ModelDefinitionConfig } from "../../src/config/types.models.js";
|
||||
import type { ModelDefinitionConfig } from "openclaw/plugin-sdk/provider-models";
|
||||
|
||||
export const MODELSTUDIO_CN_BASE_URL = "https://coding.dashscope.aliyuncs.com/v1";
|
||||
export const MODELSTUDIO_GLOBAL_BASE_URL = "https://coding-intl.dashscope.aliyuncs.com/v1";
|
||||
|
||||
@@ -1,14 +1,12 @@
|
||||
import { describeImageWithModel } from "../../src/media-understanding/providers/image.js";
|
||||
import {
|
||||
assertOkOrThrowHttpError,
|
||||
describeImageWithModel,
|
||||
normalizeBaseUrl,
|
||||
postJsonRequest,
|
||||
} from "../../src/media-understanding/providers/shared.js";
|
||||
import type {
|
||||
MediaUnderstandingProvider,
|
||||
VideoDescriptionRequest,
|
||||
VideoDescriptionResult,
|
||||
} from "../../src/media-understanding/types.js";
|
||||
type MediaUnderstandingProvider,
|
||||
type VideoDescriptionRequest,
|
||||
type VideoDescriptionResult,
|
||||
} from "openclaw/plugin-sdk/media-understanding";
|
||||
|
||||
export const DEFAULT_MOONSHOT_VIDEO_BASE_URL = "https://api.moonshot.ai/v1";
|
||||
const DEFAULT_MOONSHOT_VIDEO_MODEL = "kimi-k2.5";
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { emptyPluginConfigSchema, type OpenClawPluginApi } from "openclaw/plugin-sdk/core";
|
||||
import { buildSingleProviderApiKeyCatalog } from "../../src/plugins/provider-catalog.js";
|
||||
import { buildSingleProviderApiKeyCatalog } from "openclaw/plugin-sdk/provider-catalog";
|
||||
import { buildNvidiaProvider } from "./provider-catalog.js";
|
||||
|
||||
const PROVIDER_ID = "nvidia";
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
import { describeImageWithModel } from "../../src/media-understanding/providers/image.js";
|
||||
import { transcribeOpenAiCompatibleAudio } from "../../src/media-understanding/providers/openai-compatible-audio.js";
|
||||
import type { MediaUnderstandingProvider } from "../../src/media-understanding/types.js";
|
||||
import {
|
||||
describeImageWithModel,
|
||||
transcribeOpenAiCompatibleAudio,
|
||||
type AudioTranscriptionRequest,
|
||||
type MediaUnderstandingProvider,
|
||||
} from "openclaw/plugin-sdk/media-understanding";
|
||||
|
||||
export const DEFAULT_OPENAI_AUDIO_BASE_URL = "https://api.openai.com/v1";
|
||||
const DEFAULT_OPENAI_AUDIO_MODEL = "gpt-4o-mini-transcribe";
|
||||
|
||||
export async function transcribeOpenAiAudio(
|
||||
params: import("../../src/media-understanding/types.js").AudioTranscriptionRequest,
|
||||
) {
|
||||
export async function transcribeOpenAiAudio(params: AudioTranscriptionRequest) {
|
||||
return await transcribeOpenAiCompatibleAudio({
|
||||
...params,
|
||||
defaultBaseUrl: DEFAULT_OPENAI_AUDIO_BASE_URL,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { emptyPluginConfigSchema, type OpenClawPluginApi } from "openclaw/plugin-sdk/core";
|
||||
import { createProviderApiKeyAuthMethod } from "openclaw/plugin-sdk/provider-auth";
|
||||
import { buildSingleProviderApiKeyCatalog } from "../../src/plugins/provider-catalog.js";
|
||||
import { buildSingleProviderApiKeyCatalog } from "openclaw/plugin-sdk/provider-catalog";
|
||||
import { applyQianfanConfig, QIANFAN_DEFAULT_MODEL_REF } from "./onboard.js";
|
||||
import { buildQianfanProvider } from "./provider-catalog.js";
|
||||
|
||||
|
||||
@@ -1,18 +1,20 @@
|
||||
import { formatAllowFromLowercase } from "openclaw/plugin-sdk/allow-from";
|
||||
import {
|
||||
createScopedAccountConfigAccessors,
|
||||
createScopedChannelConfigBase,
|
||||
} from "openclaw/plugin-sdk/channel-config-helpers";
|
||||
import {
|
||||
formatDocsLink,
|
||||
hasConfiguredSecretInput,
|
||||
patchChannelConfigForAccount,
|
||||
type OpenClawConfig,
|
||||
} from "openclaw/plugin-sdk/setup";
|
||||
import {
|
||||
buildChannelConfigSchema,
|
||||
getChatChannelMeta,
|
||||
SlackConfigSchema,
|
||||
type ChannelPlugin,
|
||||
} from "openclaw/plugin-sdk/slack";
|
||||
import { patchChannelConfigForAccount } from "../../../src/channels/plugins/setup-wizard-helpers.js";
|
||||
import type { OpenClawConfig } from "../../../src/config/config.js";
|
||||
import { hasConfiguredSecretInput } from "../../../src/config/types.secrets.js";
|
||||
import { formatAllowFromLowercase } from "../../../src/plugin-sdk/allow-from.js";
|
||||
import {
|
||||
createScopedAccountConfigAccessors,
|
||||
createScopedChannelConfigBase,
|
||||
} from "../../../src/plugin-sdk/channel-config-helpers.js";
|
||||
import { formatDocsLink } from "../../../src/terminal/links.js";
|
||||
import { inspectSlackAccount } from "./account-inspect.js";
|
||||
import {
|
||||
listSlackAccountIds,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { emptyPluginConfigSchema, type OpenClawPluginApi } from "openclaw/plugin-sdk/core";
|
||||
import { createProviderApiKeyAuthMethod } from "openclaw/plugin-sdk/provider-auth";
|
||||
import { buildSingleProviderApiKeyCatalog } from "../../src/plugins/provider-catalog.js";
|
||||
import { buildSingleProviderApiKeyCatalog } from "openclaw/plugin-sdk/provider-catalog";
|
||||
import { applySyntheticConfig, SYNTHETIC_DEFAULT_MODEL_REF } from "./onboard.js";
|
||||
import { buildSyntheticProvider } from "./provider-catalog.js";
|
||||
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
import {
|
||||
DEFAULT_ACCOUNT_ID,
|
||||
normalizeAccountId,
|
||||
patchScopedAccountConfig,
|
||||
prepareScopedSetupConfig,
|
||||
} from "../../../src/channels/plugins/setup-helpers.js";
|
||||
import type { ChannelSetupAdapter } from "../../../src/channels/plugins/types.adapters.js";
|
||||
import type { ChannelSetupInput } from "../../../src/channels/plugins/types.core.js";
|
||||
import type { OpenClawConfig } from "../../../src/config/config.js";
|
||||
import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "../../../src/routing/session-key.js";
|
||||
type ChannelSetupAdapter,
|
||||
type ChannelSetupInput,
|
||||
type OpenClawConfig,
|
||||
} from "openclaw/plugin-sdk/setup";
|
||||
import { buildTlonAccountFields } from "./account-fields.js";
|
||||
import { resolveTlonAccount } from "./types.js";
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { emptyPluginConfigSchema, type OpenClawPluginApi } from "openclaw/plugin-sdk/core";
|
||||
import { createProviderApiKeyAuthMethod } from "openclaw/plugin-sdk/provider-auth";
|
||||
import { buildSingleProviderApiKeyCatalog } from "../../src/plugins/provider-catalog.js";
|
||||
import { buildSingleProviderApiKeyCatalog } from "openclaw/plugin-sdk/provider-catalog";
|
||||
import { applyTogetherConfig, TOGETHER_DEFAULT_MODEL_REF } from "./onboard.js";
|
||||
import { buildTogetherProvider } from "./provider-catalog.js";
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { emptyPluginConfigSchema, type OpenClawPluginApi } from "openclaw/plugin-sdk/core";
|
||||
import { createProviderApiKeyAuthMethod } from "openclaw/plugin-sdk/provider-auth";
|
||||
import { buildSingleProviderApiKeyCatalog } from "../../src/plugins/provider-catalog.js";
|
||||
import { buildSingleProviderApiKeyCatalog } from "openclaw/plugin-sdk/provider-catalog";
|
||||
import { applyVeniceConfig, VENICE_DEFAULT_MODEL_REF } from "./onboard.js";
|
||||
import { buildVeniceProvider } from "./provider-catalog.js";
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { emptyPluginConfigSchema, type OpenClawPluginApi } from "openclaw/plugin-sdk/core";
|
||||
import { createProviderApiKeyAuthMethod } from "openclaw/plugin-sdk/provider-auth";
|
||||
import { buildSingleProviderApiKeyCatalog } from "../../src/plugins/provider-catalog.js";
|
||||
import { buildSingleProviderApiKeyCatalog } from "openclaw/plugin-sdk/provider-catalog";
|
||||
import { applyVercelAiGatewayConfig, VERCEL_AI_GATEWAY_DEFAULT_MODEL_REF } from "./onboard.js";
|
||||
import { buildVercelAiGatewayProvider } from "./provider-catalog.js";
|
||||
|
||||
|
||||
@@ -9,4 +9,4 @@ export {
|
||||
export { loginWeb } from "./login.js";
|
||||
export { startWebLoginWithQr, waitForWebLogin } from "./login-qr.js";
|
||||
export { whatsappSetupWizard } from "./setup-surface.js";
|
||||
export { monitorWebChannel } from "../../../src/channels/web/index.js";
|
||||
export { monitorWebChannel } from "openclaw/plugin-sdk/whatsapp";
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { ModelDefinitionConfig } from "../../src/config/types.models.js";
|
||||
import type { ModelDefinitionConfig } from "openclaw/plugin-sdk/provider-models";
|
||||
|
||||
export const XAI_BASE_URL = "https://api.x.ai/v1";
|
||||
export const XAI_DEFAULT_MODEL_ID = "grok-4";
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { emptyPluginConfigSchema, type OpenClawPluginApi } from "openclaw/plugin-sdk/core";
|
||||
import { createProviderApiKeyAuthMethod } from "openclaw/plugin-sdk/provider-auth";
|
||||
import { buildSingleProviderApiKeyCatalog } from "openclaw/plugin-sdk/provider-catalog";
|
||||
import { PROVIDER_LABELS } from "openclaw/plugin-sdk/provider-usage";
|
||||
import { buildSingleProviderApiKeyCatalog } from "../../src/plugins/provider-catalog.js";
|
||||
import { applyXiaomiConfig, XIAOMI_DEFAULT_MODEL_REF } from "./onboard.js";
|
||||
import { buildXiaomiProvider } from "./provider-catalog.js";
|
||||
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
import { describeImageWithModel } from "../../src/media-understanding/providers/image.js";
|
||||
import type { MediaUnderstandingProvider } from "../../src/media-understanding/types.js";
|
||||
import {
|
||||
describeImageWithModel,
|
||||
type MediaUnderstandingProvider,
|
||||
} from "openclaw/plugin-sdk/media-understanding";
|
||||
|
||||
export const zaiMediaUnderstandingProvider: MediaUnderstandingProvider = {
|
||||
id: "zai",
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { ModelDefinitionConfig } from "../../src/config/types.models.js";
|
||||
import type { ModelDefinitionConfig } from "openclaw/plugin-sdk/provider-models";
|
||||
|
||||
export const ZAI_CODING_GLOBAL_BASE_URL = "https://api.z.ai/api/coding/paas/v4";
|
||||
export const ZAI_CODING_CN_BASE_URL = "https://open.bigmodel.cn/api/coding/paas/v4";
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import { createPatchedAccountSetupAdapter } from "../../../src/channels/plugins/setup-helpers.js";
|
||||
import { DEFAULT_ACCOUNT_ID } from "../../../src/routing/session-key.js";
|
||||
import { createPatchedAccountSetupAdapter, DEFAULT_ACCOUNT_ID } from "openclaw/plugin-sdk/setup";
|
||||
|
||||
const channel = "zalo" as const;
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { createPatchedAccountSetupAdapter } from "../../../src/channels/plugins/setup-helpers.js";
|
||||
import { createPatchedAccountSetupAdapter } from "openclaw/plugin-sdk/setup";
|
||||
|
||||
const channel = "zalouser" as const;
|
||||
|
||||
|
||||
12
package.json
12
package.json
@@ -338,6 +338,10 @@
|
||||
"types": "./dist/plugin-sdk/provider-auth.d.ts",
|
||||
"default": "./dist/plugin-sdk/provider-auth.js"
|
||||
},
|
||||
"./plugin-sdk/provider-catalog": {
|
||||
"types": "./dist/plugin-sdk/provider-catalog.d.ts",
|
||||
"default": "./dist/plugin-sdk/provider-catalog.js"
|
||||
},
|
||||
"./plugin-sdk/provider-models": {
|
||||
"types": "./dist/plugin-sdk/provider-models.d.ts",
|
||||
"default": "./dist/plugin-sdk/provider-models.js"
|
||||
@@ -358,6 +362,14 @@
|
||||
"types": "./dist/plugin-sdk/provider-web-search.d.ts",
|
||||
"default": "./dist/plugin-sdk/provider-web-search.js"
|
||||
},
|
||||
"./plugin-sdk/media-understanding": {
|
||||
"types": "./dist/plugin-sdk/media-understanding.d.ts",
|
||||
"default": "./dist/plugin-sdk/media-understanding.js"
|
||||
},
|
||||
"./plugin-sdk/google": {
|
||||
"types": "./dist/plugin-sdk/google.d.ts",
|
||||
"default": "./dist/plugin-sdk/google.js"
|
||||
},
|
||||
"./plugin-sdk/request-url": {
|
||||
"types": "./dist/plugin-sdk/request-url.d.ts",
|
||||
"default": "./dist/plugin-sdk/request-url.js"
|
||||
|
||||
@@ -74,11 +74,14 @@
|
||||
"json-store",
|
||||
"keyed-async-queue",
|
||||
"provider-auth",
|
||||
"provider-catalog",
|
||||
"provider-models",
|
||||
"provider-onboard",
|
||||
"provider-stream",
|
||||
"provider-usage",
|
||||
"provider-web-search",
|
||||
"media-understanding",
|
||||
"google",
|
||||
"request-url",
|
||||
"runtime-store",
|
||||
"speech",
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import type { AgentToolResult } from "@mariozechner/pi-agent-core";
|
||||
import type { OpenClawConfig } from "../../config/config.js";
|
||||
import { resolveSlackAccount } from "../../plugin-sdk/account-resolution.js";
|
||||
import {
|
||||
deleteSlackMessage,
|
||||
downloadSlackFile,
|
||||
@@ -20,7 +21,6 @@ import {
|
||||
parseSlackBlocksInput,
|
||||
parseSlackTarget,
|
||||
recordSlackThreadParticipation,
|
||||
resolveSlackAccount,
|
||||
resolveSlackChannelId,
|
||||
} from "../../plugin-sdk/slack.js";
|
||||
import { withNormalizedTimestamp } from "../date-time.js";
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { createActionGate, jsonResult, readStringParam } from "../../../agents/tools/common.js";
|
||||
import { resolveSignalAccount } from "../../../plugin-sdk/account-resolution.js";
|
||||
import {
|
||||
listEnabledSignalAccounts,
|
||||
removeReactionSignal,
|
||||
resolveSignalAccount,
|
||||
resolveSignalReactionLevel,
|
||||
sendReactionSignal,
|
||||
} from "../../../plugin-sdk/signal.js";
|
||||
|
||||
@@ -22,13 +22,13 @@ import {
|
||||
normalizeTrustedSafeBinDirs,
|
||||
} from "../infra/exec-safe-bin-trust.js";
|
||||
import { readChannelAllowFromStore } from "../pairing/pairing-store.js";
|
||||
import { resolveTelegramAccount } from "../plugin-sdk/account-resolution.js";
|
||||
import {
|
||||
fetchTelegramChatId,
|
||||
inspectTelegramAccount,
|
||||
isNumericTelegramUserId,
|
||||
listTelegramAccountIds,
|
||||
normalizeTelegramAllowFromEntry,
|
||||
resolveTelegramAccount,
|
||||
} from "../plugin-sdk/telegram.js";
|
||||
import {
|
||||
formatChannelAccountsDefaultPath,
|
||||
|
||||
@@ -10,6 +10,22 @@ export {
|
||||
normalizeOptionalAccountId,
|
||||
} from "../routing/session-key.js";
|
||||
export { normalizeE164, pathExists, resolveUserPath } from "../utils.js";
|
||||
export {
|
||||
resolveDiscordAccount,
|
||||
type ResolvedDiscordAccount,
|
||||
} from "../../extensions/discord/src/accounts.js";
|
||||
export {
|
||||
resolveSlackAccount,
|
||||
type ResolvedSlackAccount,
|
||||
} from "../../extensions/slack/src/accounts.js";
|
||||
export {
|
||||
resolveTelegramAccount,
|
||||
type ResolvedTelegramAccount,
|
||||
} from "../../extensions/telegram/src/accounts.js";
|
||||
export {
|
||||
resolveSignalAccount,
|
||||
type ResolvedSignalAccount,
|
||||
} from "../../extensions/signal/src/accounts.js";
|
||||
|
||||
/** Resolve an account by id, then fall back to the default account when the primary lacks credentials. */
|
||||
export function resolveAccountWithDefaultFallback<TAccount>(params: {
|
||||
|
||||
@@ -61,7 +61,6 @@ export {
|
||||
createDiscordActionGate,
|
||||
listDiscordAccountIds,
|
||||
resolveDefaultDiscordAccountId,
|
||||
resolveDiscordAccount,
|
||||
} from "../../extensions/discord/src/accounts.js";
|
||||
export { inspectDiscordAccount } from "../../extensions/discord/src/account-inspect.js";
|
||||
export {
|
||||
|
||||
4
src/plugin-sdk/google.ts
Normal file
4
src/plugin-sdk/google.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
// Public Google-specific helpers used by bundled Google plugins.
|
||||
|
||||
export { normalizeGoogleModelId } from "../agents/model-id-normalization.js";
|
||||
export { parseGeminiAuth } from "../infra/gemini-auth.js";
|
||||
21
src/plugin-sdk/media-understanding.ts
Normal file
21
src/plugin-sdk/media-understanding.ts
Normal file
@@ -0,0 +1,21 @@
|
||||
// Public media-understanding helpers and types for provider plugins.
|
||||
|
||||
export type {
|
||||
AudioTranscriptionRequest,
|
||||
AudioTranscriptionResult,
|
||||
ImageDescriptionRequest,
|
||||
ImageDescriptionResult,
|
||||
MediaUnderstandingProvider,
|
||||
VideoDescriptionRequest,
|
||||
VideoDescriptionResult,
|
||||
} from "../media-understanding/types.js";
|
||||
|
||||
export { describeImageWithModel } from "../media-understanding/providers/image.js";
|
||||
export { transcribeOpenAiCompatibleAudio } from "../media-understanding/providers/openai-compatible-audio.js";
|
||||
export {
|
||||
assertOkOrThrowHttpError,
|
||||
normalizeBaseUrl,
|
||||
postJsonRequest,
|
||||
postTranscriptionRequest,
|
||||
requireTranscriptionText,
|
||||
} from "../media-understanding/providers/shared.js";
|
||||
9
src/plugin-sdk/provider-catalog.ts
Normal file
9
src/plugin-sdk/provider-catalog.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
// Public provider catalog helpers for provider plugins.
|
||||
|
||||
export type { ProviderCatalogContext, ProviderCatalogResult } from "../plugins/types.js";
|
||||
|
||||
export {
|
||||
buildPairedProviderApiKeyCatalog,
|
||||
buildSingleProviderApiKeyCatalog,
|
||||
findCatalogTemplate,
|
||||
} from "../plugins/provider-catalog.js";
|
||||
@@ -21,8 +21,10 @@ export { normalizeE164, pathExists } from "../utils.js";
|
||||
export {
|
||||
applyAccountNameToChannelSection,
|
||||
applySetupAccountConfigPatch,
|
||||
createPatchedAccountSetupAdapter,
|
||||
migrateBaseNameToDefaultAccount,
|
||||
patchScopedAccountConfig,
|
||||
prepareScopedSetupConfig,
|
||||
} from "../channels/plugins/setup-helpers.js";
|
||||
export {
|
||||
addWildcardAllowFrom,
|
||||
|
||||
@@ -47,7 +47,6 @@ export {
|
||||
listEnabledSignalAccounts,
|
||||
listSignalAccountIds,
|
||||
resolveDefaultSignalAccountId,
|
||||
resolveSignalAccount,
|
||||
} from "../../extensions/signal/src/accounts.js";
|
||||
export { resolveSignalReactionLevel } from "../../extensions/signal/src/reaction-level.js";
|
||||
export {
|
||||
|
||||
@@ -50,7 +50,6 @@ export {
|
||||
listEnabledSlackAccounts,
|
||||
listSlackAccountIds,
|
||||
resolveDefaultSlackAccountId,
|
||||
resolveSlackAccount,
|
||||
resolveSlackReplyToMode,
|
||||
} from "../../extensions/slack/src/accounts.js";
|
||||
export { isSlackInteractiveRepliesEnabled } from "../../extensions/slack/src/interactive-replies.js";
|
||||
|
||||
@@ -65,7 +65,6 @@ export {
|
||||
listTelegramAccountIds,
|
||||
resolveDefaultTelegramAccountId,
|
||||
resolveTelegramPollActionGateState,
|
||||
resolveTelegramAccount,
|
||||
} from "../../extensions/telegram/src/accounts.js";
|
||||
export { inspectTelegramAccount } from "../../extensions/telegram/src/account-inspect.js";
|
||||
export {
|
||||
|
||||
Reference in New Issue
Block a user