From 14c4d6457a83ece5b25a08f5adc1a4ec8c0b8307 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Fri, 17 Apr 2026 16:53:46 +0100 Subject: [PATCH] perf: narrow Matrix account runtime imports --- .../matrix/src/matrix/account-config.ts | 4 ++-- extensions/matrix/src/matrix/accounts.ts | 2 +- extensions/matrix/src/matrix/client/config.ts | 2 +- package.json | 4 ++++ scripts/lib/plugin-sdk-entrypoints.json | 1 + src/plugin-sdk/account-resolution-runtime.ts | 20 +++++++++++++++++++ 6 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 src/plugin-sdk/account-resolution-runtime.ts diff --git a/extensions/matrix/src/matrix/account-config.ts b/extensions/matrix/src/matrix/account-config.ts index f0d5c4fe2dd..0297c625c86 100644 --- a/extensions/matrix/src/matrix/account-config.ts +++ b/extensions/matrix/src/matrix/account-config.ts @@ -4,8 +4,8 @@ import { listConfiguredAccountIds, resolveMergedAccountConfig, resolveNormalizedAccountEntry, -} from "openclaw/plugin-sdk/account-resolution"; -import { hasConfiguredSecretInput } from "openclaw/plugin-sdk/secret-input"; +} from "openclaw/plugin-sdk/account-resolution-runtime"; +import { hasConfiguredSecretInput } from "openclaw/plugin-sdk/secret-input-runtime"; import type { CoreConfig, MatrixAccountConfig, MatrixConfig } from "../types.js"; type MatrixRoomEntries = Record[string]>; diff --git a/extensions/matrix/src/matrix/accounts.ts b/extensions/matrix/src/matrix/accounts.ts index ccba883d276..966b11d8374 100644 --- a/extensions/matrix/src/matrix/accounts.ts +++ b/extensions/matrix/src/matrix/accounts.ts @@ -1,5 +1,5 @@ import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-id"; -import { hasConfiguredSecretInput } from "openclaw/plugin-sdk/secret-input"; +import { hasConfiguredSecretInput } from "openclaw/plugin-sdk/secret-input-runtime"; import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime"; import { resolveConfiguredMatrixAccountIds, diff --git a/extensions/matrix/src/matrix/client/config.ts b/extensions/matrix/src/matrix/client/config.ts index e1a9183be33..376e4b7502c 100644 --- a/extensions/matrix/src/matrix/client/config.ts +++ b/extensions/matrix/src/matrix/client/config.ts @@ -3,7 +3,7 @@ import { retryAsync } from "openclaw/plugin-sdk/retry-runtime"; import { coerceSecretRef, normalizeResolvedSecretInputString, -} from "openclaw/plugin-sdk/secret-input"; +} from "openclaw/plugin-sdk/secret-input-runtime"; import type { PinnedDispatcherPolicy } from "openclaw/plugin-sdk/ssrf-dispatcher"; import { requiresExplicitMatrixDefaultAccount, diff --git a/package.json b/package.json index 077917bc926..a41cee4fb7f 100644 --- a/package.json +++ b/package.json @@ -420,6 +420,10 @@ "types": "./dist/plugin-sdk/account-resolution.d.ts", "default": "./dist/plugin-sdk/account-resolution.js" }, + "./plugin-sdk/account-resolution-runtime": { + "types": "./dist/plugin-sdk/account-resolution-runtime.d.ts", + "default": "./dist/plugin-sdk/account-resolution-runtime.js" + }, "./plugin-sdk/agent-config-primitives": { "types": "./dist/plugin-sdk/agent-config-primitives.d.ts", "default": "./dist/plugin-sdk/agent-config-primitives.js" diff --git a/scripts/lib/plugin-sdk-entrypoints.json b/scripts/lib/plugin-sdk-entrypoints.json index 1ae4f1822a0..1a60d63b34b 100644 --- a/scripts/lib/plugin-sdk-entrypoints.json +++ b/scripts/lib/plugin-sdk-entrypoints.json @@ -91,6 +91,7 @@ "account-core", "account-id", "account-resolution", + "account-resolution-runtime", "agent-config-primitives", "allow-from", "allowlist-config-edit", diff --git a/src/plugin-sdk/account-resolution-runtime.ts b/src/plugin-sdk/account-resolution-runtime.ts new file mode 100644 index 00000000000..771307700a1 --- /dev/null +++ b/src/plugin-sdk/account-resolution-runtime.ts @@ -0,0 +1,20 @@ +export { resolveMergedAccountConfig } from "../channels/plugins/account-helpers.js"; +export { resolveNormalizedAccountEntry } from "../routing/account-lookup.js"; + +/** List normalized configured account ids from a raw channel account record map. */ +export function listConfiguredAccountIds(params: { + accounts: Record | undefined; + normalizeAccountId: (accountId: string) => string; +}): string[] { + if (!params.accounts) { + return []; + } + const ids = new Set(); + for (const key of Object.keys(params.accounts)) { + if (!key) { + continue; + } + ids.add(params.normalizeAccountId(key)); + } + return [...ids]; +}