diff --git a/src/agents/tools/gateway-tool.ts b/src/agents/tools/gateway-tool.ts index c8f9570f3..0a71b8a39 100644 --- a/src/agents/tools/gateway-tool.ts +++ b/src/agents/tools/gateway-tool.ts @@ -138,6 +138,24 @@ export function createGatewayTool(opts?: { : undefined; const gatewayOpts = { gatewayUrl, gatewayToken, timeoutMs }; + const resolveGatewayWriteMeta = (): { + sessionKey: string | undefined; + note: string | undefined; + restartDelayMs: number | undefined; + } => { + const sessionKey = + typeof params.sessionKey === "string" && params.sessionKey.trim() + ? params.sessionKey.trim() + : opts?.agentSessionKey?.trim() || undefined; + const note = + typeof params.note === "string" && params.note.trim() ? params.note.trim() : undefined; + const restartDelayMs = + typeof params.restartDelayMs === "number" && Number.isFinite(params.restartDelayMs) + ? Math.floor(params.restartDelayMs) + : undefined; + return { sessionKey, note, restartDelayMs }; + }; + const resolveConfigWriteParams = async (): Promise<{ raw: string; baseHash: string; @@ -154,17 +172,7 @@ export function createGatewayTool(opts?: { if (!baseHash) { throw new Error("Missing baseHash from config snapshot."); } - const sessionKey = - typeof params.sessionKey === "string" && params.sessionKey.trim() - ? params.sessionKey.trim() - : opts?.agentSessionKey?.trim() || undefined; - const note = - typeof params.note === "string" && params.note.trim() ? params.note.trim() : undefined; - const restartDelayMs = - typeof params.restartDelayMs === "number" && Number.isFinite(params.restartDelayMs) - ? Math.floor(params.restartDelayMs) - : undefined; - return { raw, baseHash, sessionKey, note, restartDelayMs }; + return { raw, baseHash, ...resolveGatewayWriteMeta() }; }; if (action === "config.get") { @@ -200,16 +208,7 @@ export function createGatewayTool(opts?: { return jsonResult({ ok: true, result }); } if (action === "update.run") { - const sessionKey = - typeof params.sessionKey === "string" && params.sessionKey.trim() - ? params.sessionKey.trim() - : opts?.agentSessionKey?.trim() || undefined; - const note = - typeof params.note === "string" && params.note.trim() ? params.note.trim() : undefined; - const restartDelayMs = - typeof params.restartDelayMs === "number" && Number.isFinite(params.restartDelayMs) - ? Math.floor(params.restartDelayMs) - : undefined; + const { sessionKey, note, restartDelayMs } = resolveGatewayWriteMeta(); const updateGatewayOpts = { ...gatewayOpts, timeoutMs: timeoutMs ?? DEFAULT_UPDATE_TIMEOUT_MS,