diff --git a/extensions/matrix/src/matrix/monitor/ack-config.ts b/extensions/matrix/src/matrix/monitor/ack-config.ts index a79d0a15968..6a6c9de3b8c 100644 --- a/extensions/matrix/src/matrix/monitor/ack-config.ts +++ b/extensions/matrix/src/matrix/monitor/ack-config.ts @@ -1,6 +1,6 @@ -import { resolveAckReaction, type OpenClawConfig } from "../../runtime-api.js"; import type { CoreConfig } from "../../types.js"; import { resolveMatrixAccountConfig } from "../accounts.js"; +import { resolveAckReaction, type OpenClawConfig } from "./runtime-api.js"; type MatrixAckReactionScope = "group-mentions" | "group-all" | "direct" | "all" | "none" | "off"; diff --git a/extensions/matrix/src/matrix/monitor/auto-join.ts b/extensions/matrix/src/matrix/monitor/auto-join.ts index e2f7eb7fa0f..e8096a1bbdb 100644 --- a/extensions/matrix/src/matrix/monitor/auto-join.ts +++ b/extensions/matrix/src/matrix/monitor/auto-join.ts @@ -1,7 +1,7 @@ -import type { RuntimeEnv } from "../../runtime-api.js"; import { getMatrixRuntime } from "../../runtime.js"; import type { MatrixConfig } from "../../types.js"; import type { MatrixClient } from "../sdk.js"; +import type { RuntimeEnv } from "./runtime-api.js"; export function registerMatrixAutoJoin(params: { client: MatrixClient; diff --git a/extensions/matrix/src/matrix/monitor/config.ts b/extensions/matrix/src/matrix/monitor/config.ts index 9995c1546ce..a8f92c758b6 100644 --- a/extensions/matrix/src/matrix/monitor/config.ts +++ b/extensions/matrix/src/matrix/monitor/config.ts @@ -1,4 +1,6 @@ import { resolveMatrixTargets } from "../../resolve-targets.js"; +import type { CoreConfig, MatrixRoomConfig } from "../../types.js"; +import { normalizeMatrixUserId } from "./allowlist.js"; import { addAllowlistUserEntriesFromConfigEntry, buildAllowlistResolutionSummary, @@ -6,9 +8,7 @@ import { patchAllowlistUsersInConfigEntries, summarizeMapping, type RuntimeEnv, -} from "../../runtime-api.js"; -import type { CoreConfig, MatrixRoomConfig } from "../../types.js"; -import { normalizeMatrixUserId } from "./allowlist.js"; +} from "./runtime-api.js"; type MatrixRoomsConfig = Record; type ResolveMatrixTargetsFn = typeof resolveMatrixTargets; diff --git a/extensions/matrix/src/matrix/monitor/handler.ts b/extensions/matrix/src/matrix/monitor/handler.ts index b354938fee7..d2fa1203660 100644 --- a/extensions/matrix/src/matrix/monitor/handler.ts +++ b/extensions/matrix/src/matrix/monitor/handler.ts @@ -1,18 +1,5 @@ import { resolveControlCommandGate } from "openclaw/plugin-sdk/command-auth"; import { getSessionBindingService } from "openclaw/plugin-sdk/conversation-runtime"; -import { - createReplyPrefixOptions, - createTypingCallbacks, - formatAllowlistMatchMeta, - getAgentScopedMediaLocalRoots, - logInboundDrop, - logTypingFailure, - ensureConfiguredAcpBindingReady, - type PluginRuntime, - type ReplyPayload, - type RuntimeEnv, - type RuntimeLogger, -} from "../../runtime-api.js"; import type { CoreConfig, MatrixRoomConfig, ReplyToMode } from "../../types.js"; import { createMatrixDraftStream } from "../draft-stream.js"; import { @@ -49,6 +36,19 @@ import { createRoomHistoryTracker } from "./room-history.js"; import type { HistoryEntry } from "./room-history.js"; import { resolveMatrixRoomConfig } from "./rooms.js"; import { resolveMatrixInboundRoute } from "./route.js"; +import { + createReplyPrefixOptions, + createTypingCallbacks, + ensureConfiguredAcpBindingReady, + formatAllowlistMatchMeta, + getAgentScopedMediaLocalRoots, + logInboundDrop, + logTypingFailure, + type PluginRuntime, + type ReplyPayload, + type RuntimeEnv, + type RuntimeLogger, +} from "./runtime-api.js"; import { createMatrixThreadContextResolver } from "./thread-context.js"; import { resolveMatrixReplyToEventId, diff --git a/extensions/matrix/src/matrix/monitor/location.ts b/extensions/matrix/src/matrix/monitor/location.ts index e12565cb70c..fd01e82909f 100644 --- a/extensions/matrix/src/matrix/monitor/location.ts +++ b/extensions/matrix/src/matrix/monitor/location.ts @@ -1,9 +1,5 @@ -import { - formatLocationText, - toLocationContext, - type NormalizedLocation, -} from "../../runtime-api.js"; import type { LocationMessageEventContent } from "../sdk.js"; +import { formatLocationText, toLocationContext, type NormalizedLocation } from "./runtime-api.js"; import { EventType } from "./types.js"; export type MatrixLocationPayload = { diff --git a/extensions/matrix/src/matrix/monitor/reaction-events.ts b/extensions/matrix/src/matrix/monitor/reaction-events.ts index 6d0c468f653..a6604682dc8 100644 --- a/extensions/matrix/src/matrix/monitor/reaction-events.ts +++ b/extensions/matrix/src/matrix/monitor/reaction-events.ts @@ -1,10 +1,10 @@ import { getSessionBindingService } from "openclaw/plugin-sdk/conversation-runtime"; -import type { PluginRuntime } from "../../runtime-api.js"; import type { CoreConfig } from "../../types.js"; import { resolveMatrixAccountConfig } from "../accounts.js"; import { extractMatrixReactionAnnotation } from "../reaction-common.js"; import type { MatrixClient } from "../sdk.js"; import { resolveMatrixInboundRoute } from "./route.js"; +import type { PluginRuntime } from "./runtime-api.js"; import { resolveMatrixThreadRootId, resolveMatrixThreadRouting } from "./threads.js"; import type { MatrixRawEvent, RoomMessageEventContent } from "./types.js"; diff --git a/extensions/matrix/src/matrix/monitor/replies.ts b/extensions/matrix/src/matrix/monitor/replies.ts index 5e4f5d3f821..1bce2333f84 100644 --- a/extensions/matrix/src/matrix/monitor/replies.ts +++ b/extensions/matrix/src/matrix/monitor/replies.ts @@ -1,12 +1,7 @@ -import type { - MarkdownTableMode, - OpenClawConfig, - ReplyPayload, - RuntimeEnv, -} from "../../runtime-api.js"; import { getMatrixRuntime } from "../../runtime.js"; import type { MatrixClient } from "../sdk.js"; import { chunkMatrixText, sendMessageMatrix } from "../send.js"; +import type { MarkdownTableMode, OpenClawConfig, ReplyPayload, RuntimeEnv } from "./runtime-api.js"; const THINKING_TAG_RE = /<\s*\/?\s*(?:think(?:ing)?|thought|antthinking)\b[^<>]*>/gi; const THINKING_BLOCK_RE = diff --git a/extensions/matrix/src/matrix/monitor/rooms.ts b/extensions/matrix/src/matrix/monitor/rooms.ts index 9ee5091acf7..159e51766d8 100644 --- a/extensions/matrix/src/matrix/monitor/rooms.ts +++ b/extensions/matrix/src/matrix/monitor/rooms.ts @@ -1,5 +1,5 @@ -import { buildChannelKeyCandidates, resolveChannelEntryMatch } from "../../runtime-api.js"; import type { MatrixRoomConfig } from "../../types.js"; +import { buildChannelKeyCandidates, resolveChannelEntryMatch } from "./runtime-api.js"; export type MatrixRoomConfigResolved = { allowed: boolean; diff --git a/extensions/matrix/src/matrix/monitor/runtime-api.ts b/extensions/matrix/src/matrix/monitor/runtime-api.ts new file mode 100644 index 00000000000..77b3bb81d7e --- /dev/null +++ b/extensions/matrix/src/matrix/monitor/runtime-api.ts @@ -0,0 +1,30 @@ +// Narrow Matrix monitor helper seam. +// Keep monitor internals off the broad package runtime-api barrel so monitor +// tests and shared workers do not pull unrelated Matrix helper surfaces. + +export { + addAllowlistUserEntriesFromConfigEntry, + buildAllowlistResolutionSummary, + buildChannelKeyCandidates, + canonicalizeAllowlistWithResolvedIds, + createReplyPrefixOptions, + createTypingCallbacks, + formatAllowlistMatchMeta, + formatLocationText, + getAgentScopedMediaLocalRoots, + logInboundDrop, + logTypingFailure, + patchAllowlistUsersInConfigEntries, + resolveAckReaction, + resolveChannelEntryMatch, + summarizeMapping, + toLocationContext, + type MarkdownTableMode, + type NormalizedLocation, + type OpenClawConfig, + type PluginRuntime, + type ReplyPayload, + type RuntimeEnv, + type RuntimeLogger, +} from "openclaw/plugin-sdk/matrix"; +export { ensureConfiguredAcpBindingReady } from "openclaw/plugin-sdk/matrix-runtime-heavy";