Spaces:
Paused
Paused
| import type { AgentCommandOpts, AgentRunContext } from "./types.js"; | |
| import { normalizeAccountId } from "../../utils/account-id.js"; | |
| import { resolveMessageChannel } from "../../utils/message-channel.js"; | |
| export function resolveAgentRunContext(opts: AgentCommandOpts): AgentRunContext { | |
| const merged: AgentRunContext = opts.runContext ? { ...opts.runContext } : {}; | |
| const normalizedChannel = resolveMessageChannel( | |
| merged.messageChannel ?? opts.messageChannel, | |
| opts.replyChannel ?? opts.channel, | |
| ); | |
| if (normalizedChannel) { | |
| merged.messageChannel = normalizedChannel; | |
| } | |
| const normalizedAccountId = normalizeAccountId(merged.accountId ?? opts.accountId); | |
| if (normalizedAccountId) { | |
| merged.accountId = normalizedAccountId; | |
| } | |
| const groupId = (merged.groupId ?? opts.groupId)?.toString().trim(); | |
| if (groupId) { | |
| merged.groupId = groupId; | |
| } | |
| const groupChannel = (merged.groupChannel ?? opts.groupChannel)?.toString().trim(); | |
| if (groupChannel) { | |
| merged.groupChannel = groupChannel; | |
| } | |
| const groupSpace = (merged.groupSpace ?? opts.groupSpace)?.toString().trim(); | |
| if (groupSpace) { | |
| merged.groupSpace = groupSpace; | |
| } | |
| if ( | |
| merged.currentThreadTs == null && | |
| opts.threadId != null && | |
| opts.threadId !== "" && | |
| opts.threadId !== null | |
| ) { | |
| merged.currentThreadTs = String(opts.threadId); | |
| } | |
| return merged; | |
| } | |