From a9dcd52a7eda38b130a314031b772b8ba1c9469e Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Mon, 20 Apr 2026 14:22:54 +0100 Subject: [PATCH] refactor: share message action discovery params --- .../plugins/message-action-discovery.ts | 72 +++++-------------- 1 file changed, 19 insertions(+), 53 deletions(-) diff --git a/src/channels/plugins/message-action-discovery.ts b/src/channels/plugins/message-action-discovery.ts index 16bf55329a0..46745ec83d6 100644 --- a/src/channels/plugins/message-action-discovery.ts +++ b/src/channels/plugins/message-action-discovery.ts @@ -32,6 +32,14 @@ export type ChannelMessageActionDiscoveryInput = { senderIsOwner?: boolean; }; +type ChannelMessageActionDiscoveryParams = ChannelMessageActionDiscoveryInput & { + cfg: OpenClawConfig; +}; + +type ChannelMessageToolMediaSourceParamKeyInput = ChannelMessageActionDiscoveryParams & { + action?: ChannelMessageActionName; +}; + const loggedMessageActionErrors = new Set(); export function resolveMessageActionDiscoveryChannelId(raw?: string | null): string | undefined { @@ -135,7 +143,7 @@ function normalizeMessageToolMediaSourceParams( ); } -export function resolveCurrentChannelMessageToolDiscoveryAdapter(channel?: string): { +export function resolveCurrentChannelMessageToolDiscoveryAdapter(channel?: string | null): { pluginId: string; actions: ChannelMessageToolDiscoveryAdapter; } | null { @@ -238,19 +246,9 @@ export function listChannelMessageCapabilities(cfg: OpenClawConfig): ChannelMess return Array.from(capabilities); } -export function listChannelMessageCapabilitiesForChannel(params: { - cfg: OpenClawConfig; - channel?: string; - currentChannelId?: string | null; - currentThreadTs?: string | null; - currentMessageId?: string | number | null; - accountId?: string | null; - sessionKey?: string | null; - sessionId?: string | null; - agentId?: string | null; - requesterSenderId?: string | null; - senderIsOwner?: boolean; -}): ChannelMessageCapability[] { +export function listChannelMessageCapabilitiesForChannel( + params: ChannelMessageActionDiscoveryParams, +): ChannelMessageCapability[] { const pluginActions = resolveCurrentChannelMessageToolDiscoveryAdapter(params.channel); if (!pluginActions) { return []; @@ -279,19 +277,9 @@ function mergeToolSchemaProperties( } } -export function resolveChannelMessageToolSchemaProperties(params: { - cfg: OpenClawConfig; - channel?: string; - currentChannelId?: string | null; - currentThreadTs?: string | null; - currentMessageId?: string | number | null; - accountId?: string | null; - sessionKey?: string | null; - sessionId?: string | null; - agentId?: string | null; - requesterSenderId?: string | null; - senderIsOwner?: boolean; -}): Record { +export function resolveChannelMessageToolSchemaProperties( + params: ChannelMessageActionDiscoveryParams, +): Record { const properties: Record = {}; const currentChannel = resolveMessageActionDiscoveryChannelId(params.channel); const discoveryBase = createMessageActionDiscoveryContext(params); @@ -338,20 +326,9 @@ export function resolveChannelMessageToolSchemaProperties(params: { return properties; } -export function resolveChannelMessageToolMediaSourceParamKeys(params: { - cfg: OpenClawConfig; - action?: ChannelMessageActionName; - channel?: string; - currentChannelId?: string | null; - currentThreadTs?: string | null; - currentMessageId?: string | number | null; - accountId?: string | null; - sessionKey?: string | null; - sessionId?: string | null; - agentId?: string | null; - requesterSenderId?: string | null; - senderIsOwner?: boolean; -}): string[] { +export function resolveChannelMessageToolMediaSourceParamKeys( + params: ChannelMessageToolMediaSourceParamKeyInput, +): string[] { const pluginActions = resolveCurrentChannelMessageToolDiscoveryAdapter(params.channel); if (!pluginActions) { return []; @@ -374,18 +351,7 @@ export function channelSupportsMessageCapability( } export function channelSupportsMessageCapabilityForChannel( - params: { - cfg: OpenClawConfig; - channel?: string; - currentChannelId?: string | null; - currentThreadTs?: string | null; - currentMessageId?: string | number | null; - accountId?: string | null; - sessionKey?: string | null; - sessionId?: string | null; - agentId?: string | null; - requesterSenderId?: string | null; - }, + params: ChannelMessageActionDiscoveryParams, capability: ChannelMessageCapability, ): boolean { return listChannelMessageCapabilitiesForChannel(params).includes(capability);