From 24edb82eced99f9be3c5faaf1e37dc6d9e449bcd Mon Sep 17 00:00:00 2001 From: Shakker Date: Wed, 1 Apr 2026 17:23:43 +0100 Subject: [PATCH] refactor: split delivery target runtime seams --- src/cron/isolated-agent/delivery-target.ts | 38 ++++++++-------------- 1 file changed, 13 insertions(+), 25 deletions(-) diff --git a/src/cron/isolated-agent/delivery-target.ts b/src/cron/isolated-agent/delivery-target.ts index 0ec6a3d9181..04e42bd9f3d 100644 --- a/src/cron/isolated-agent/delivery-target.ts +++ b/src/cron/isolated-agent/delivery-target.ts @@ -41,6 +41,17 @@ async function loadTargetsRuntime() { return await targetsRuntimePromise; } +async function resolveOutboundTargetWithRuntime( + params: Parameters[0], +) { + const loaded = tryResolveLoadedOutboundTarget(params); + if (loaded) { + return loaded; + } + const { resolveOutboundTarget } = await loadTargetsRuntime(); + return resolveOutboundTarget(params); +} + let channelSelectionRuntimePromise: | Promise | undefined; @@ -49,7 +60,6 @@ async function loadChannelSelectionRuntime() { channelSelectionRuntimePromise ??= import("../../infra/outbound/channel-selection.runtime.js"); return await channelSelectionRuntimePromise; } - export async function resolveDeliveryTarget( cfg: OpenClawConfig, agentId: string, @@ -182,7 +192,7 @@ export async function resolveDeliveryTarget( const effectiveAllowFrom = mode === "implicit" ? allowFromOverride : undefined; if (toCandidate && mode === "implicit" && allowFromOverride.length > 0) { - let currentTargetResolution = tryResolveLoadedOutboundTarget({ + const currentTargetResolution = await resolveOutboundTargetWithRuntime({ channel, to: toCandidate, cfg, @@ -190,23 +200,12 @@ export async function resolveDeliveryTarget( mode, allowFrom: effectiveAllowFrom, }); - if (!currentTargetResolution) { - const { resolveOutboundTarget } = await loadTargetsRuntime(); - currentTargetResolution = resolveOutboundTarget({ - channel, - to: toCandidate, - cfg, - accountId, - mode, - allowFrom: effectiveAllowFrom, - }); - } if (!currentTargetResolution.ok) { toCandidate = allowFromOverride[0]; } } - let docked = tryResolveLoadedOutboundTarget({ + const docked = await resolveOutboundTargetWithRuntime({ channel, to: toCandidate, cfg, @@ -214,17 +213,6 @@ export async function resolveDeliveryTarget( mode, allowFrom: effectiveAllowFrom, }); - if (!docked) { - const { resolveOutboundTarget } = await loadTargetsRuntime(); - docked = resolveOutboundTarget({ - channel, - to: toCandidate, - cfg, - accountId, - mode, - allowFrom: effectiveAllowFrom, - }); - } if (!docked.ok) { return { ok: false,