OpenClawBot / src /commands /agent /run-context.ts
darkfire514's picture
Upload 2526 files
fb4d8fe verified
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;
}