diff --git a/extensions/feishu/runtime-api.ts b/extensions/feishu/runtime-api.ts new file mode 100644 index 00000000000..1257d4a7f00 --- /dev/null +++ b/extensions/feishu/runtime-api.ts @@ -0,0 +1 @@ +export * from "openclaw/plugin-sdk/feishu"; diff --git a/extensions/feishu/src/accounts.ts b/extensions/feishu/src/accounts.ts index 40400445935..ede2be08635 100644 --- a/extensions/feishu/src/accounts.ts +++ b/extensions/feishu/src/accounts.ts @@ -1,5 +1,5 @@ import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-id"; -import type { ClawdbotConfig } from "openclaw/plugin-sdk/feishu"; +import type { ClawdbotConfig } from "../runtime-api.js"; import { normalizeResolvedSecretInputString, normalizeSecretInputString } from "./secret-input.js"; import type { FeishuConfig, diff --git a/extensions/feishu/src/bitable.ts b/extensions/feishu/src/bitable.ts index e7d027694d1..451839edb1f 100644 --- a/extensions/feishu/src/bitable.ts +++ b/extensions/feishu/src/bitable.ts @@ -1,6 +1,6 @@ import type * as Lark from "@larksuiteoapi/node-sdk"; import { Type } from "@sinclair/typebox"; -import type { OpenClawPluginApi } from "openclaw/plugin-sdk/feishu"; +import type { OpenClawPluginApi } from "../runtime-api.js"; import { listEnabledFeishuAccounts } from "./accounts.js"; import { createFeishuToolClient } from "./tool-account.js"; diff --git a/extensions/feishu/src/bot.ts b/extensions/feishu/src/bot.ts index bc47d6d934f..9d8ef82a177 100644 --- a/extensions/feishu/src/bot.ts +++ b/extensions/feishu/src/bot.ts @@ -3,7 +3,9 @@ import { resolveConfiguredBindingRoute, } from "openclaw/plugin-sdk/conversation-runtime"; import { getSessionBindingService } from "openclaw/plugin-sdk/conversation-runtime"; -import type { ClawdbotConfig, RuntimeEnv } from "openclaw/plugin-sdk/feishu"; +import { deriveLastRoutePolicy } from "openclaw/plugin-sdk/routing"; +import { resolveAgentIdFromSessionKey } from "openclaw/plugin-sdk/routing"; +import type { ClawdbotConfig, RuntimeEnv } from "../runtime-api.js"; import { buildAgentMediaPayload, buildPendingHistoryContextFromMap, @@ -18,9 +20,7 @@ import { resolveOpenProviderRuntimeGroupPolicy, resolveDefaultGroupPolicy, warnMissingProviderGroupPolicyFallbackOnce, -} from "openclaw/plugin-sdk/feishu"; -import { deriveLastRoutePolicy } from "openclaw/plugin-sdk/routing"; -import { resolveAgentIdFromSessionKey } from "openclaw/plugin-sdk/routing"; +} from "../runtime-api.js"; import { resolveFeishuAccount } from "./accounts.js"; import { createFeishuClient } from "./client.js"; import { buildFeishuConversationId } from "./conversation-id.js"; diff --git a/extensions/feishu/src/card-action.ts b/extensions/feishu/src/card-action.ts index d664b8d6af2..6b1b542010e 100644 --- a/extensions/feishu/src/card-action.ts +++ b/extensions/feishu/src/card-action.ts @@ -1,4 +1,4 @@ -import type { ClawdbotConfig, RuntimeEnv } from "openclaw/plugin-sdk/feishu"; +import type { ClawdbotConfig, RuntimeEnv } from "../runtime-api.js"; import { resolveFeishuAccount } from "./accounts.js"; import { handleFeishuMessage, type FeishuMessageEvent } from "./bot.js"; import { decodeFeishuCardAction, buildFeishuCardActionTextFallback } from "./card-interaction.js"; diff --git a/extensions/feishu/src/card-ux-launcher.ts b/extensions/feishu/src/card-ux-launcher.ts index 3303bc2ed77..91f05d8dfe6 100644 --- a/extensions/feishu/src/card-ux-launcher.ts +++ b/extensions/feishu/src/card-ux-launcher.ts @@ -1,4 +1,4 @@ -import type { ClawdbotConfig, RuntimeEnv } from "openclaw/plugin-sdk/feishu"; +import type { ClawdbotConfig, RuntimeEnv } from "../runtime-api.js"; import { createFeishuCardInteractionEnvelope } from "./card-interaction.js"; import { FEISHU_APPROVAL_REQUEST_ACTION } from "./card-ux-approval.js"; import { buildFeishuCardButton, buildFeishuCardInteractionContext } from "./card-ux-shared.js"; diff --git a/extensions/feishu/src/channel.ts b/extensions/feishu/src/channel.ts index fda85f113e1..5bac3945608 100644 --- a/extensions/feishu/src/channel.ts +++ b/extensions/feishu/src/channel.ts @@ -6,7 +6,8 @@ import type { ChannelMessageActionAdapter, ChannelMessageToolDiscovery, } from "openclaw/plugin-sdk/channel-runtime"; -import type { ChannelMeta, ChannelPlugin, ClawdbotConfig } from "openclaw/plugin-sdk/feishu"; +import { createLazyRuntimeNamedExport } from "openclaw/plugin-sdk/lazy-runtime"; +import type { ChannelMeta, ChannelPlugin, ClawdbotConfig } from "../runtime-api.js"; import { buildChannelConfigSchema, buildProbeChannelStatusSummary, @@ -15,9 +16,8 @@ import { createDefaultChannelRuntimeState, DEFAULT_ACCOUNT_ID, PAIRING_APPROVED_MESSAGE, -} from "openclaw/plugin-sdk/feishu"; -import type { ChannelMessageActionName } from "openclaw/plugin-sdk/feishu"; -import { createLazyRuntimeNamedExport } from "openclaw/plugin-sdk/lazy-runtime"; +} from "../runtime-api.js"; +import type { ChannelMessageActionName } from "../runtime-api.js"; import { resolveFeishuAccount, resolveFeishuCredentials, diff --git a/extensions/feishu/src/chat.ts b/extensions/feishu/src/chat.ts index 9c62e5648b2..b32dfb41230 100644 --- a/extensions/feishu/src/chat.ts +++ b/extensions/feishu/src/chat.ts @@ -1,5 +1,5 @@ import type * as Lark from "@larksuiteoapi/node-sdk"; -import type { OpenClawPluginApi } from "openclaw/plugin-sdk/feishu"; +import type { OpenClawPluginApi } from "../runtime-api.js"; import { listEnabledFeishuAccounts } from "./accounts.js"; import { FeishuChatSchema, type FeishuChatParams } from "./chat-schema.js"; import { createFeishuClient } from "./client.js"; diff --git a/extensions/feishu/src/dedup.ts b/extensions/feishu/src/dedup.ts index fc3e9baad65..22944814f8e 100644 --- a/extensions/feishu/src/dedup.ts +++ b/extensions/feishu/src/dedup.ts @@ -4,7 +4,7 @@ import { createDedupeCache, createPersistentDedupe, readJsonFileWithFallback, -} from "openclaw/plugin-sdk/feishu"; +} from "../runtime-api.js"; // Persistent TTL: 24 hours — survives restarts & WebSocket reconnects. const DEDUP_TTL_MS = 24 * 60 * 60 * 1000; diff --git a/extensions/feishu/src/directory.static.ts b/extensions/feishu/src/directory.static.ts index 4adefe2ae0f..643d12ae6bc 100644 --- a/extensions/feishu/src/directory.static.ts +++ b/extensions/feishu/src/directory.static.ts @@ -2,7 +2,7 @@ import { listDirectoryGroupEntriesFromMapKeysAndAllowFrom, listDirectoryUserEntriesFromAllowFromAndMapKeys, } from "openclaw/plugin-sdk/directory-runtime"; -import type { ClawdbotConfig } from "openclaw/plugin-sdk/feishu"; +import type { ClawdbotConfig } from "../runtime-api.js"; import { resolveFeishuAccount } from "./accounts.js"; import { normalizeFeishuTarget } from "./targets.js"; diff --git a/extensions/feishu/src/directory.ts b/extensions/feishu/src/directory.ts index af6ed8859cf..a591f3d0fe5 100644 --- a/extensions/feishu/src/directory.ts +++ b/extensions/feishu/src/directory.ts @@ -1,4 +1,4 @@ -import type { ClawdbotConfig } from "openclaw/plugin-sdk/feishu"; +import type { ClawdbotConfig } from "../runtime-api.js"; import { resolveFeishuAccount } from "./accounts.js"; import { createFeishuClient } from "./client.js"; import { diff --git a/extensions/feishu/src/docx.ts b/extensions/feishu/src/docx.ts index 8c6a4b6cd02..7debd446a14 100644 --- a/extensions/feishu/src/docx.ts +++ b/extensions/feishu/src/docx.ts @@ -4,7 +4,7 @@ import { isAbsolute } from "node:path"; import { basename } from "node:path"; import type * as Lark from "@larksuiteoapi/node-sdk"; import { Type } from "@sinclair/typebox"; -import type { OpenClawPluginApi } from "openclaw/plugin-sdk/feishu"; +import type { OpenClawPluginApi } from "../runtime-api.js"; import { listEnabledFeishuAccounts } from "./accounts.js"; import { FeishuDocSchema, type FeishuDocParams } from "./doc-schema.js"; import { BATCH_SIZE, insertBlocksInBatches } from "./docx-batch-insert.js"; diff --git a/extensions/feishu/src/drive.ts b/extensions/feishu/src/drive.ts index 227c30fbbb7..495b6aaaef9 100644 --- a/extensions/feishu/src/drive.ts +++ b/extensions/feishu/src/drive.ts @@ -1,5 +1,5 @@ import type * as Lark from "@larksuiteoapi/node-sdk"; -import type { OpenClawPluginApi } from "openclaw/plugin-sdk/feishu"; +import type { OpenClawPluginApi } from "../runtime-api.js"; import { listEnabledFeishuAccounts } from "./accounts.js"; import { FeishuDriveSchema, type FeishuDriveParams } from "./drive-schema.js"; import { createFeishuToolClient, resolveAnyEnabledFeishuToolsConfig } from "./tool-account.js"; diff --git a/extensions/feishu/src/dynamic-agent.ts b/extensions/feishu/src/dynamic-agent.ts index 6f22683294c..7f8e04cd061 100644 --- a/extensions/feishu/src/dynamic-agent.ts +++ b/extensions/feishu/src/dynamic-agent.ts @@ -1,7 +1,7 @@ import fs from "node:fs"; import os from "node:os"; import path from "node:path"; -import type { OpenClawConfig, PluginRuntime } from "openclaw/plugin-sdk/feishu"; +import type { OpenClawConfig, PluginRuntime } from "../runtime-api.js"; import type { DynamicAgentCreationConfig } from "./types.js"; export type MaybeCreateDynamicAgentResult = { diff --git a/extensions/feishu/src/media.ts b/extensions/feishu/src/media.ts index 617bc504756..a55ed6774e6 100644 --- a/extensions/feishu/src/media.ts +++ b/extensions/feishu/src/media.ts @@ -1,8 +1,8 @@ import fs from "fs"; import path from "path"; import { Readable } from "stream"; -import { withTempDownloadPath, type ClawdbotConfig } from "openclaw/plugin-sdk/feishu"; import { mediaKindFromMime } from "openclaw/plugin-sdk/media-runtime"; +import { withTempDownloadPath, type ClawdbotConfig } from "../runtime-api.js"; import { resolveFeishuAccount } from "./accounts.js"; import { createFeishuClient } from "./client.js"; import { normalizeFeishuExternalKey } from "./external-keys.js"; diff --git a/extensions/feishu/src/monitor.account.ts b/extensions/feishu/src/monitor.account.ts index 241376ac0ba..a15240075d6 100644 --- a/extensions/feishu/src/monitor.account.ts +++ b/extensions/feishu/src/monitor.account.ts @@ -1,6 +1,6 @@ import * as crypto from "crypto"; import * as Lark from "@larksuiteoapi/node-sdk"; -import type { ClawdbotConfig, RuntimeEnv, HistoryEntry } from "openclaw/plugin-sdk/feishu"; +import type { ClawdbotConfig, RuntimeEnv, HistoryEntry } from "../runtime-api.js"; import { resolveFeishuAccount } from "./accounts.js"; import { raceWithTimeoutAndAbort } from "./async.js"; import { diff --git a/extensions/feishu/src/monitor.startup.ts b/extensions/feishu/src/monitor.startup.ts index 42f3639c1de..df3d2b1195f 100644 --- a/extensions/feishu/src/monitor.startup.ts +++ b/extensions/feishu/src/monitor.startup.ts @@ -1,4 +1,4 @@ -import type { RuntimeEnv } from "openclaw/plugin-sdk/feishu"; +import type { RuntimeEnv } from "../runtime-api.js"; import { probeFeishu } from "./probe.js"; import type { ResolvedFeishuAccount } from "./types.js"; diff --git a/extensions/feishu/src/monitor.state.ts b/extensions/feishu/src/monitor.state.ts index 30cada26821..55b8d0dea5a 100644 --- a/extensions/feishu/src/monitor.state.ts +++ b/extensions/feishu/src/monitor.state.ts @@ -6,7 +6,7 @@ import { type RuntimeEnv, WEBHOOK_ANOMALY_COUNTER_DEFAULTS as WEBHOOK_ANOMALY_COUNTER_DEFAULTS_FROM_SDK, WEBHOOK_RATE_LIMIT_DEFAULTS as WEBHOOK_RATE_LIMIT_DEFAULTS_FROM_SDK, -} from "openclaw/plugin-sdk/feishu"; +} from "../runtime-api.js"; export const wsClients = new Map(); export const httpServers = new Map(); diff --git a/extensions/feishu/src/monitor.transport.ts b/extensions/feishu/src/monitor.transport.ts index caab5468378..06ffc2c17e9 100644 --- a/extensions/feishu/src/monitor.transport.ts +++ b/extensions/feishu/src/monitor.transport.ts @@ -6,7 +6,7 @@ import { readJsonBodyWithLimit, type RuntimeEnv, installRequestBodyLimitGuard, -} from "openclaw/plugin-sdk/feishu"; +} from "../runtime-api.js"; import { createFeishuWSClient } from "./client.js"; import { botNames, diff --git a/extensions/feishu/src/monitor.ts b/extensions/feishu/src/monitor.ts index 50241d36baa..67be9c259f6 100644 --- a/extensions/feishu/src/monitor.ts +++ b/extensions/feishu/src/monitor.ts @@ -1,4 +1,4 @@ -import type { ClawdbotConfig, RuntimeEnv } from "openclaw/plugin-sdk/feishu"; +import type { ClawdbotConfig, RuntimeEnv } from "../runtime-api.js"; import { listEnabledFeishuAccounts, resolveFeishuAccount } from "./accounts.js"; import { monitorSingleAccount, diff --git a/extensions/feishu/src/monitor.webhook.test-helpers.ts b/extensions/feishu/src/monitor.webhook.test-helpers.ts index b9de2150bd4..7295ee98fee 100644 --- a/extensions/feishu/src/monitor.webhook.test-helpers.ts +++ b/extensions/feishu/src/monitor.webhook.test-helpers.ts @@ -1,7 +1,7 @@ import { createServer } from "node:http"; import type { AddressInfo } from "node:net"; -import type { ClawdbotConfig } from "openclaw/plugin-sdk/feishu"; import { vi } from "vitest"; +import type { ClawdbotConfig } from "../runtime-api.js"; import type { monitorFeishuProvider } from "./monitor.js"; export async function getFreePort(): Promise { diff --git a/extensions/feishu/src/outbound.ts b/extensions/feishu/src/outbound.ts index fa121e88178..fd79bff869f 100644 --- a/extensions/feishu/src/outbound.ts +++ b/extensions/feishu/src/outbound.ts @@ -1,6 +1,6 @@ import fs from "fs"; import path from "path"; -import type { ChannelOutboundAdapter } from "openclaw/plugin-sdk/feishu"; +import type { ChannelOutboundAdapter } from "../runtime-api.js"; import { resolveFeishuAccount } from "./accounts.js"; import { sendMediaFeishu } from "./media.js"; import { getFeishuRuntime } from "./runtime.js"; diff --git a/extensions/feishu/src/perm.ts b/extensions/feishu/src/perm.ts index a031bb015ef..a9d2e062eec 100644 --- a/extensions/feishu/src/perm.ts +++ b/extensions/feishu/src/perm.ts @@ -1,5 +1,5 @@ import type * as Lark from "@larksuiteoapi/node-sdk"; -import type { OpenClawPluginApi } from "openclaw/plugin-sdk/feishu"; +import type { OpenClawPluginApi } from "../runtime-api.js"; import { listEnabledFeishuAccounts } from "./accounts.js"; import { FeishuPermSchema, type FeishuPermParams } from "./perm-schema.js"; import { createFeishuToolClient, resolveAnyEnabledFeishuToolsConfig } from "./tool-account.js"; diff --git a/extensions/feishu/src/pins.ts b/extensions/feishu/src/pins.ts index 0205acf3aa3..d5bf82aaeb8 100644 --- a/extensions/feishu/src/pins.ts +++ b/extensions/feishu/src/pins.ts @@ -1,4 +1,4 @@ -import type { ClawdbotConfig } from "openclaw/plugin-sdk/feishu"; +import type { ClawdbotConfig } from "../runtime-api.js"; import { resolveFeishuAccount } from "./accounts.js"; import { createFeishuClient } from "./client.js"; diff --git a/extensions/feishu/src/policy.ts b/extensions/feishu/src/policy.ts index 50eff937269..faee6675127 100644 --- a/extensions/feishu/src/policy.ts +++ b/extensions/feishu/src/policy.ts @@ -1,9 +1,5 @@ -import type { - AllowlistMatch, - ChannelGroupContext, - GroupToolPolicyConfig, -} from "openclaw/plugin-sdk/feishu"; -import { evaluateSenderGroupAccessForPolicy } from "openclaw/plugin-sdk/feishu"; +import type { AllowlistMatch, ChannelGroupContext, GroupToolPolicyConfig } from "../runtime-api.js"; +import { evaluateSenderGroupAccessForPolicy } from "../runtime-api.js"; import { normalizeFeishuTarget } from "./targets.js"; import type { FeishuConfig, FeishuGroupConfig } from "./types.js"; diff --git a/extensions/feishu/src/reactions.ts b/extensions/feishu/src/reactions.ts index 951b3d03c6b..b6d7f328b70 100644 --- a/extensions/feishu/src/reactions.ts +++ b/extensions/feishu/src/reactions.ts @@ -1,4 +1,4 @@ -import type { ClawdbotConfig } from "openclaw/plugin-sdk/feishu"; +import type { ClawdbotConfig } from "../runtime-api.js"; import { resolveFeishuAccount } from "./accounts.js"; import { createFeishuClient } from "./client.js"; diff --git a/extensions/feishu/src/reply-dispatcher.ts b/extensions/feishu/src/reply-dispatcher.ts index 00f5f576af2..8c2d533fbfa 100644 --- a/extensions/feishu/src/reply-dispatcher.ts +++ b/extensions/feishu/src/reply-dispatcher.ts @@ -6,7 +6,7 @@ import { type OutboundIdentity, type ReplyPayload, type RuntimeEnv, -} from "openclaw/plugin-sdk/feishu"; +} from "../runtime-api.js"; import { resolveFeishuAccount } from "./accounts.js"; import { createFeishuClient } from "./client.js"; import { sendMediaFeishu } from "./media.js"; diff --git a/extensions/feishu/src/runtime.ts b/extensions/feishu/src/runtime.ts index aad0a41c50a..8d6ffe9c51d 100644 --- a/extensions/feishu/src/runtime.ts +++ b/extensions/feishu/src/runtime.ts @@ -1,5 +1,5 @@ -import type { PluginRuntime } from "openclaw/plugin-sdk/feishu"; import { createPluginRuntimeStore } from "openclaw/plugin-sdk/runtime-store"; +import type { PluginRuntime } from "../runtime-api.js"; const { setRuntime: setFeishuRuntime, getRuntime: getFeishuRuntime } = createPluginRuntimeStore("Feishu runtime not initialized"); diff --git a/extensions/feishu/src/secret-input.ts b/extensions/feishu/src/secret-input.ts index 37dda74f2eb..ad5746ffc31 100644 --- a/extensions/feishu/src/secret-input.ts +++ b/extensions/feishu/src/secret-input.ts @@ -3,7 +3,7 @@ import { hasConfiguredSecretInput, normalizeResolvedSecretInputString, normalizeSecretInputString, -} from "openclaw/plugin-sdk/feishu"; +} from "../runtime-api.js"; export { buildSecretInputSchema, diff --git a/extensions/feishu/src/send-target.ts b/extensions/feishu/src/send-target.ts index cc1780e9223..b0a3d6793c8 100644 --- a/extensions/feishu/src/send-target.ts +++ b/extensions/feishu/src/send-target.ts @@ -1,4 +1,4 @@ -import type { ClawdbotConfig } from "openclaw/plugin-sdk/feishu"; +import type { ClawdbotConfig } from "../runtime-api.js"; import { resolveFeishuAccount } from "./accounts.js"; import { createFeishuClient } from "./client.js"; import { resolveReceiveIdType, normalizeFeishuTarget } from "./targets.js"; diff --git a/extensions/feishu/src/send.ts b/extensions/feishu/src/send.ts index 09015ee593b..7ea5395010c 100644 --- a/extensions/feishu/src/send.ts +++ b/extensions/feishu/src/send.ts @@ -1,4 +1,4 @@ -import type { ClawdbotConfig } from "openclaw/plugin-sdk/feishu"; +import type { ClawdbotConfig } from "../runtime-api.js"; import { resolveFeishuAccount } from "./accounts.js"; import { createFeishuClient } from "./client.js"; import type { MentionTarget } from "./mention.js"; diff --git a/extensions/feishu/src/streaming-card.ts b/extensions/feishu/src/streaming-card.ts index bd2908218a6..c7ca0c4a445 100644 --- a/extensions/feishu/src/streaming-card.ts +++ b/extensions/feishu/src/streaming-card.ts @@ -3,7 +3,7 @@ */ import type { Client } from "@larksuiteoapi/node-sdk"; -import { fetchWithSsrFGuard } from "openclaw/plugin-sdk/feishu"; +import { fetchWithSsrFGuard } from "../runtime-api.js"; import { resolveFeishuCardTemplate, type CardHeaderConfig } from "./send.js"; import type { FeishuDomain } from "./types.js"; diff --git a/extensions/feishu/src/subagent-hooks.ts b/extensions/feishu/src/subagent-hooks.ts index 6b048f8fbcf..c6d14240160 100644 --- a/extensions/feishu/src/subagent-hooks.ts +++ b/extensions/feishu/src/subagent-hooks.ts @@ -1,4 +1,4 @@ -import type { OpenClawPluginApi } from "openclaw/plugin-sdk/feishu"; +import type { OpenClawPluginApi } from "../runtime-api.js"; import { buildFeishuConversationId, parseFeishuConversationId } from "./conversation-id.js"; import { normalizeFeishuTarget } from "./targets.js"; import { getFeishuThreadBindingManager } from "./thread-bindings.js"; diff --git a/extensions/feishu/src/tool-account.ts b/extensions/feishu/src/tool-account.ts index cf8a7e62286..dff71b424dc 100644 --- a/extensions/feishu/src/tool-account.ts +++ b/extensions/feishu/src/tool-account.ts @@ -1,5 +1,5 @@ import type * as Lark from "@larksuiteoapi/node-sdk"; -import type { OpenClawPluginApi } from "openclaw/plugin-sdk/feishu"; +import type { OpenClawPluginApi } from "../runtime-api.js"; import { resolveFeishuAccount } from "./accounts.js"; import { createFeishuClient } from "./client.js"; import { resolveToolsConfig } from "./tools-config.js"; diff --git a/extensions/feishu/src/tool-factory-test-harness.ts b/extensions/feishu/src/tool-factory-test-harness.ts index f5bd19672dd..4c564e25052 100644 --- a/extensions/feishu/src/tool-factory-test-harness.ts +++ b/extensions/feishu/src/tool-factory-test-harness.ts @@ -1,4 +1,4 @@ -import type { AnyAgentTool, OpenClawPluginApi } from "openclaw/plugin-sdk/feishu"; +import type { AnyAgentTool, OpenClawPluginApi } from "../runtime-api.js"; type ToolContextLike = { agentAccountId?: string; diff --git a/extensions/feishu/src/types.ts b/extensions/feishu/src/types.ts index 05293a7ff1d..4f365c3ae00 100644 --- a/extensions/feishu/src/types.ts +++ b/extensions/feishu/src/types.ts @@ -1,4 +1,4 @@ -import type { BaseProbeResult } from "openclaw/plugin-sdk/feishu"; +import type { BaseProbeResult } from "../runtime-api.js"; import type { FeishuConfigSchema, FeishuGroupSchema, diff --git a/extensions/feishu/src/typing.ts b/extensions/feishu/src/typing.ts index f32996003bb..d3f25297a79 100644 --- a/extensions/feishu/src/typing.ts +++ b/extensions/feishu/src/typing.ts @@ -1,4 +1,4 @@ -import type { ClawdbotConfig, RuntimeEnv } from "openclaw/plugin-sdk/feishu"; +import type { ClawdbotConfig, RuntimeEnv } from "../runtime-api.js"; import { resolveFeishuAccount } from "./accounts.js"; import { createFeishuClient } from "./client.js"; import { getFeishuRuntime } from "./runtime.js"; diff --git a/extensions/feishu/src/wiki.ts b/extensions/feishu/src/wiki.ts index e701f57b3aa..a2df89ff0fe 100644 --- a/extensions/feishu/src/wiki.ts +++ b/extensions/feishu/src/wiki.ts @@ -1,5 +1,5 @@ import type * as Lark from "@larksuiteoapi/node-sdk"; -import type { OpenClawPluginApi } from "openclaw/plugin-sdk/feishu"; +import type { OpenClawPluginApi } from "../runtime-api.js"; import { listEnabledFeishuAccounts } from "./accounts.js"; import { createFeishuToolClient, resolveAnyEnabledFeishuToolsConfig } from "./tool-account.js"; import { diff --git a/extensions/matrix/runtime-api.ts b/extensions/matrix/runtime-api.ts new file mode 100644 index 00000000000..f9079d7430a --- /dev/null +++ b/extensions/matrix/runtime-api.ts @@ -0,0 +1 @@ +export * from "openclaw/plugin-sdk/matrix"; diff --git a/extensions/matrix/src/actions.ts b/extensions/matrix/src/actions.ts index 9e7e0a0653e..7e555526c39 100644 --- a/extensions/matrix/src/actions.ts +++ b/extensions/matrix/src/actions.ts @@ -6,7 +6,7 @@ import { type ChannelMessageActionContext, type ChannelMessageActionName, type ChannelToolSend, -} from "openclaw/plugin-sdk/matrix"; +} from "../runtime-api.js"; import { resolveMatrixAccount } from "./matrix/accounts.js"; import { handleMatrixAction } from "./tool-actions.js"; import type { CoreConfig } from "./types.js"; diff --git a/extensions/matrix/src/channel.ts b/extensions/matrix/src/channel.ts index a7cc18208c3..e31d4ae2488 100644 --- a/extensions/matrix/src/channel.ts +++ b/extensions/matrix/src/channel.ts @@ -8,6 +8,7 @@ import { collectAllowlistProviderGroupPolicyWarnings, } from "openclaw/plugin-sdk/channel-policy"; import { createLazyRuntimeNamedExport } from "openclaw/plugin-sdk/lazy-runtime"; +import { buildTrafficStatusSummary } from "../../shared/channel-status-summary.js"; import { buildChannelConfigSchema, buildProbeChannelStatusSummary, @@ -15,8 +16,7 @@ import { DEFAULT_ACCOUNT_ID, PAIRING_APPROVED_MESSAGE, type ChannelPlugin, -} from "openclaw/plugin-sdk/matrix"; -import { buildTrafficStatusSummary } from "../../shared/channel-status-summary.js"; +} from "../runtime-api.js"; import { matrixMessageActions } from "./actions.js"; import { MatrixConfigSchema } from "./config-schema.js"; import { diff --git a/extensions/matrix/src/config-schema.ts b/extensions/matrix/src/config-schema.ts index 18d05d69336..22a8e3c3aec 100644 --- a/extensions/matrix/src/config-schema.ts +++ b/extensions/matrix/src/config-schema.ts @@ -4,8 +4,8 @@ import { DmPolicySchema, GroupPolicySchema, } from "openclaw/plugin-sdk/channel-config-schema"; -import { MarkdownConfigSchema, ToolPolicySchema } from "openclaw/plugin-sdk/matrix"; import { z } from "zod"; +import { MarkdownConfigSchema, ToolPolicySchema } from "../runtime-api.js"; import { buildSecretInputSchema } from "./secret-input.js"; const matrixActionSchema = z diff --git a/extensions/matrix/src/directory-live.ts b/extensions/matrix/src/directory-live.ts index b915915fdcd..68f1cf15b0c 100644 --- a/extensions/matrix/src/directory-live.ts +++ b/extensions/matrix/src/directory-live.ts @@ -1,4 +1,4 @@ -import type { ChannelDirectoryEntry } from "openclaw/plugin-sdk/matrix"; +import type { ChannelDirectoryEntry } from "../runtime-api.js"; import { resolveMatrixAuth } from "./matrix/client.js"; type MatrixUserResult = { diff --git a/extensions/matrix/src/group-mentions.ts b/extensions/matrix/src/group-mentions.ts index 71b49f59b20..1e83b2df568 100644 --- a/extensions/matrix/src/group-mentions.ts +++ b/extensions/matrix/src/group-mentions.ts @@ -1,4 +1,4 @@ -import type { ChannelGroupContext, GroupToolPolicyConfig } from "openclaw/plugin-sdk/matrix"; +import type { ChannelGroupContext, GroupToolPolicyConfig } from "../runtime-api.js"; import { resolveMatrixAccountConfig } from "./matrix/accounts.js"; import { resolveMatrixRoomConfig } from "./matrix/monitor/rooms.js"; import type { CoreConfig } from "./types.js"; diff --git a/extensions/matrix/src/matrix/accounts.ts b/extensions/matrix/src/matrix/accounts.ts index 52fba376200..c507e613dfb 100644 --- a/extensions/matrix/src/matrix/accounts.ts +++ b/extensions/matrix/src/matrix/accounts.ts @@ -1,5 +1,5 @@ import { normalizeAccountId } from "openclaw/plugin-sdk/account-id"; -import { createAccountListHelpers } from "openclaw/plugin-sdk/matrix"; +import { createAccountListHelpers } from "../../runtime-api.js"; import { hasConfiguredSecretInput } from "../secret-input.js"; import type { CoreConfig, MatrixConfig } from "../types.js"; import { resolveMatrixConfigForAccount } from "./client.js"; diff --git a/extensions/matrix/src/matrix/client/config.ts b/extensions/matrix/src/matrix/client/config.ts index 2867af33f03..d5da7d4556d 100644 --- a/extensions/matrix/src/matrix/client/config.ts +++ b/extensions/matrix/src/matrix/client/config.ts @@ -1,5 +1,5 @@ import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-id"; -import { fetchWithSsrFGuard } from "openclaw/plugin-sdk/matrix"; +import { fetchWithSsrFGuard } from "../../../runtime-api.js"; import { getMatrixRuntime } from "../../runtime.js"; import { normalizeResolvedSecretInputString, diff --git a/extensions/matrix/src/matrix/deps.ts b/extensions/matrix/src/matrix/deps.ts index 25c0ead4c48..6b2ff09cbe7 100644 --- a/extensions/matrix/src/matrix/deps.ts +++ b/extensions/matrix/src/matrix/deps.ts @@ -2,7 +2,7 @@ import fs from "node:fs"; import { createRequire } from "node:module"; import path from "node:path"; import { fileURLToPath } from "node:url"; -import { runPluginCommandWithTimeout, type RuntimeEnv } from "openclaw/plugin-sdk/matrix"; +import { runPluginCommandWithTimeout, type RuntimeEnv } from "../../runtime-api.js"; const MATRIX_SDK_PACKAGE = "@vector-im/matrix-bot-sdk"; const MATRIX_CRYPTO_DOWNLOAD_HELPER = "@matrix-org/matrix-sdk-crypto-nodejs/download-lib.js"; diff --git a/extensions/matrix/src/matrix/monitor/access-policy.ts b/extensions/matrix/src/matrix/monitor/access-policy.ts index cace7070fd6..8553b38c131 100644 --- a/extensions/matrix/src/matrix/monitor/access-policy.ts +++ b/extensions/matrix/src/matrix/monitor/access-policy.ts @@ -4,7 +4,7 @@ import { readStoreAllowFromForDmPolicy, resolveDmGroupAccessWithLists, resolveSenderScopedGroupPolicy, -} from "openclaw/plugin-sdk/matrix"; +} from "../../../runtime-api.js"; import { normalizeMatrixAllowList, resolveMatrixAllowListMatch, diff --git a/extensions/matrix/src/matrix/monitor/allowlist.ts b/extensions/matrix/src/matrix/monitor/allowlist.ts index a48fe63bdb0..120db03f479 100644 --- a/extensions/matrix/src/matrix/monitor/allowlist.ts +++ b/extensions/matrix/src/matrix/monitor/allowlist.ts @@ -3,7 +3,7 @@ import { normalizeStringEntries, resolveCompiledAllowlistMatch, type AllowlistMatch, -} from "openclaw/plugin-sdk/matrix"; +} from "../../../runtime-api.js"; function normalizeAllowList(list?: Array) { return normalizeStringEntries(list); diff --git a/extensions/matrix/src/matrix/monitor/auto-join.ts b/extensions/matrix/src/matrix/monitor/auto-join.ts index 221e1df504a..bce1efc8b79 100644 --- a/extensions/matrix/src/matrix/monitor/auto-join.ts +++ b/extensions/matrix/src/matrix/monitor/auto-join.ts @@ -1,5 +1,5 @@ import type { MatrixClient } from "@vector-im/matrix-bot-sdk"; -import type { RuntimeEnv } from "openclaw/plugin-sdk/matrix"; +import type { RuntimeEnv } from "../../../runtime-api.js"; import { getMatrixRuntime } from "../../runtime.js"; import type { CoreConfig } from "../../types.js"; import { loadMatrixSdk } from "../sdk-runtime.js"; diff --git a/extensions/matrix/src/matrix/monitor/events.ts b/extensions/matrix/src/matrix/monitor/events.ts index edc9e2f5edd..17e3c99c95d 100644 --- a/extensions/matrix/src/matrix/monitor/events.ts +++ b/extensions/matrix/src/matrix/monitor/events.ts @@ -1,5 +1,5 @@ import type { MatrixClient } from "@vector-im/matrix-bot-sdk"; -import type { PluginRuntime, RuntimeLogger } from "openclaw/plugin-sdk/matrix"; +import type { PluginRuntime, RuntimeLogger } from "../../../runtime-api.js"; import type { MatrixAuth } from "../client.js"; import { sendReadReceiptMatrix } from "../send.js"; import type { MatrixRawEvent } from "./types.js"; diff --git a/extensions/matrix/src/matrix/monitor/handler.ts b/extensions/matrix/src/matrix/monitor/handler.ts index 22ee16275cf..ddd8232280a 100644 --- a/extensions/matrix/src/matrix/monitor/handler.ts +++ b/extensions/matrix/src/matrix/monitor/handler.ts @@ -14,7 +14,7 @@ import { type PluginRuntime, type RuntimeEnv, type RuntimeLogger, -} from "openclaw/plugin-sdk/matrix"; +} from "../../../runtime-api.js"; import type { CoreConfig, MatrixRoomConfig, ReplyToMode } from "../../types.js"; import { fetchEventSummary } from "../actions/summary.js"; import { diff --git a/extensions/matrix/src/matrix/monitor/index.ts b/extensions/matrix/src/matrix/monitor/index.ts index 1634a75502b..12091aaeded 100644 --- a/extensions/matrix/src/matrix/monitor/index.ts +++ b/extensions/matrix/src/matrix/monitor/index.ts @@ -7,7 +7,7 @@ import { summarizeMapping, warnMissingProviderGroupPolicyFallbackOnce, type RuntimeEnv, -} from "openclaw/plugin-sdk/matrix"; +} from "../../../runtime-api.js"; import { resolveMatrixTargets } from "../../resolve-targets.js"; import { getMatrixRuntime } from "../../runtime.js"; import type { CoreConfig, MatrixConfig, MatrixRoomConfig, ReplyToMode } from "../../types.js"; diff --git a/extensions/matrix/src/matrix/monitor/location.ts b/extensions/matrix/src/matrix/monitor/location.ts index ff80ea82b5a..8d4351a6f5a 100644 --- a/extensions/matrix/src/matrix/monitor/location.ts +++ b/extensions/matrix/src/matrix/monitor/location.ts @@ -3,7 +3,7 @@ import { formatLocationText, toLocationContext, type NormalizedLocation, -} from "openclaw/plugin-sdk/matrix"; +} from "../../../runtime-api.js"; import { EventType } from "./types.js"; export type MatrixLocationPayload = { diff --git a/extensions/matrix/src/matrix/monitor/replies.ts b/extensions/matrix/src/matrix/monitor/replies.ts index 5f501139dfa..004701edae4 100644 --- a/extensions/matrix/src/matrix/monitor/replies.ts +++ b/extensions/matrix/src/matrix/monitor/replies.ts @@ -1,5 +1,5 @@ import type { MatrixClient } from "@vector-im/matrix-bot-sdk"; -import type { MarkdownTableMode, ReplyPayload, RuntimeEnv } from "openclaw/plugin-sdk/matrix"; +import type { MarkdownTableMode, ReplyPayload, RuntimeEnv } from "../../../runtime-api.js"; import { getMatrixRuntime } from "../../runtime.js"; import { sendMessageMatrix } from "../send.js"; diff --git a/extensions/matrix/src/matrix/monitor/rooms.ts b/extensions/matrix/src/matrix/monitor/rooms.ts index 215a3f3811e..270320f6e12 100644 --- a/extensions/matrix/src/matrix/monitor/rooms.ts +++ b/extensions/matrix/src/matrix/monitor/rooms.ts @@ -1,4 +1,4 @@ -import { buildChannelKeyCandidates, resolveChannelEntryMatch } from "openclaw/plugin-sdk/matrix"; +import { buildChannelKeyCandidates, resolveChannelEntryMatch } from "../../../runtime-api.js"; import type { MatrixRoomConfig } from "../../types.js"; export type MatrixRoomConfigResolved = { diff --git a/extensions/matrix/src/matrix/poll-types.ts b/extensions/matrix/src/matrix/poll-types.ts index 068b5fafd99..bae8905c4e7 100644 --- a/extensions/matrix/src/matrix/poll-types.ts +++ b/extensions/matrix/src/matrix/poll-types.ts @@ -7,7 +7,7 @@ * - m.poll.end - Closes a poll */ -import type { PollInput } from "openclaw/plugin-sdk/matrix"; +import type { PollInput } from "../../runtime-api.js"; export const M_POLL_START = "m.poll.start" as const; export const M_POLL_RESPONSE = "m.poll.response" as const; diff --git a/extensions/matrix/src/matrix/probe.ts b/extensions/matrix/src/matrix/probe.ts index 2919d9d9c2f..7a5d2a98bce 100644 --- a/extensions/matrix/src/matrix/probe.ts +++ b/extensions/matrix/src/matrix/probe.ts @@ -1,4 +1,4 @@ -import type { BaseProbeResult } from "openclaw/plugin-sdk/matrix"; +import type { BaseProbeResult } from "../../runtime-api.js"; import { createMatrixClient, isBunRuntime } from "./client.js"; export type MatrixProbe = BaseProbeResult & { diff --git a/extensions/matrix/src/matrix/send.ts b/extensions/matrix/src/matrix/send.ts index 6aea822f882..8820b2fbbc1 100644 --- a/extensions/matrix/src/matrix/send.ts +++ b/extensions/matrix/src/matrix/send.ts @@ -1,5 +1,5 @@ import type { MatrixClient } from "@vector-im/matrix-bot-sdk"; -import type { PollInput } from "openclaw/plugin-sdk/matrix"; +import type { PollInput } from "../../runtime-api.js"; import { getMatrixRuntime } from "../runtime.js"; import { buildPollStartContent, M_POLL_START } from "./poll-types.js"; import { enqueueSend } from "./send-queue.js"; diff --git a/extensions/matrix/src/outbound.ts b/extensions/matrix/src/outbound.ts index 09374b7746e..9cdf8d412bf 100644 --- a/extensions/matrix/src/outbound.ts +++ b/extensions/matrix/src/outbound.ts @@ -1,5 +1,5 @@ import { resolveOutboundSendDep } from "openclaw/plugin-sdk/channel-runtime"; -import type { ChannelOutboundAdapter } from "openclaw/plugin-sdk/matrix"; +import type { ChannelOutboundAdapter } from "../runtime-api.js"; import { sendMessageMatrix, sendPollMatrix } from "./matrix/send.js"; import { getMatrixRuntime } from "./runtime.js"; diff --git a/extensions/matrix/src/resolve-targets.ts b/extensions/matrix/src/resolve-targets.ts index 79b794e1806..2589595ba12 100644 --- a/extensions/matrix/src/resolve-targets.ts +++ b/extensions/matrix/src/resolve-targets.ts @@ -4,7 +4,7 @@ import type { ChannelResolveKind, ChannelResolveResult, RuntimeEnv, -} from "openclaw/plugin-sdk/matrix"; +} from "../runtime-api.js"; import { listMatrixDirectoryGroupsLive, listMatrixDirectoryPeersLive } from "./directory-live.js"; function findExactDirectoryMatches( diff --git a/extensions/matrix/src/runtime.ts b/extensions/matrix/src/runtime.ts index f57cd92a017..09e0fa1da14 100644 --- a/extensions/matrix/src/runtime.ts +++ b/extensions/matrix/src/runtime.ts @@ -1,5 +1,5 @@ -import type { PluginRuntime } from "openclaw/plugin-sdk/matrix"; import { createPluginRuntimeStore } from "openclaw/plugin-sdk/runtime-store"; +import type { PluginRuntime } from "../runtime-api.js"; const { setRuntime: setMatrixRuntime, getRuntime: getMatrixRuntime } = createPluginRuntimeStore("Matrix runtime not initialized"); diff --git a/extensions/matrix/src/secret-input.ts b/extensions/matrix/src/secret-input.ts index c0827573480..ad5746ffc31 100644 --- a/extensions/matrix/src/secret-input.ts +++ b/extensions/matrix/src/secret-input.ts @@ -3,7 +3,7 @@ import { hasConfiguredSecretInput, normalizeResolvedSecretInputString, normalizeSecretInputString, -} from "openclaw/plugin-sdk/matrix"; +} from "../runtime-api.js"; export { buildSecretInputSchema, diff --git a/extensions/matrix/src/tool-actions.ts b/extensions/matrix/src/tool-actions.ts index 28c8d5676d1..4a0b49dc7fe 100644 --- a/extensions/matrix/src/tool-actions.ts +++ b/extensions/matrix/src/tool-actions.ts @@ -5,7 +5,7 @@ import { readNumberParam, readReactionParams, readStringParam, -} from "openclaw/plugin-sdk/matrix"; +} from "../runtime-api.js"; import { deleteMatrixMessage, editMatrixMessage, diff --git a/extensions/matrix/src/types.ts b/extensions/matrix/src/types.ts index e6feaf9f619..c5a75eccf53 100644 --- a/extensions/matrix/src/types.ts +++ b/extensions/matrix/src/types.ts @@ -1,4 +1,4 @@ -import type { DmPolicy, GroupPolicy, SecretInput } from "openclaw/plugin-sdk/matrix"; +import type { DmPolicy, GroupPolicy, SecretInput } from "../runtime-api.js"; export type { DmPolicy, GroupPolicy }; export type ReplyToMode = "off" | "first" | "all"; diff --git a/src/plugin-sdk/channel-import-guardrails.test.ts b/src/plugin-sdk/channel-import-guardrails.test.ts index e9a9e9b1b59..5af6aeeb01a 100644 --- a/src/plugin-sdk/channel-import-guardrails.test.ts +++ b/src/plugin-sdk/channel-import-guardrails.test.ts @@ -122,8 +122,10 @@ const LOCAL_EXTENSION_API_BARREL_GUARDS = [ "device-pair", "diagnostics-otel", "diffs", + "feishu", "llm-task", "line", + "matrix", "mattermost", "memory-lancedb", "nextcloud-talk",