agent: allow deliver when json output

main
Peter Steinberger 2025-12-07 15:16:55 +01:00
parent eeee9625c1
commit 2dbef6105d
1 changed files with 18 additions and 14 deletions

View File

@ -316,6 +316,14 @@ export async function agentCommand(
} }
const payloads = result.payloads ?? []; const payloads = result.payloads ?? [];
const deliver = opts.deliver === true;
const targetTo = opts.to ? normalizeE164(opts.to) : allowFrom[0];
if (deliver && !targetTo) {
throw new Error(
"Delivering to WhatsApp requires --to <E.164> or inbound.allowFrom[0]",
);
}
if (opts.json) { if (opts.json) {
const normalizedPayloads = payloads.map((p) => ({ const normalizedPayloads = payloads.map((p) => ({
text: p.text ?? "", text: p.text ?? "",
@ -332,7 +340,9 @@ export async function agentCommand(
2, 2,
), ),
); );
return; // If JSON output was requested, suppress additional human-readable logs unless we're
// also delivering, in which case we still proceed to send below.
if (!deliver) return;
} }
if (payloads.length === 0) { if (payloads.length === 0) {
@ -340,23 +350,17 @@ export async function agentCommand(
return; return;
} }
const deliver = opts.deliver === true;
const targetTo = opts.to ? normalizeE164(opts.to) : allowFrom[0];
if (deliver && !targetTo) {
throw new Error(
"Delivering to WhatsApp requires --to <E.164> or inbound.allowFrom[0]",
);
}
for (const payload of payloads) { for (const payload of payloads) {
const lines: string[] = [];
if (payload.text) lines.push(payload.text.trimEnd());
const mediaList = const mediaList =
payload.mediaUrls ?? (payload.mediaUrl ? [payload.mediaUrl] : []); payload.mediaUrls ?? (payload.mediaUrl ? [payload.mediaUrl] : []);
if (!opts.json) {
const lines: string[] = [];
if (payload.text) lines.push(payload.text.trimEnd());
for (const url of mediaList) { for (const url of mediaList) {
lines.push(`MEDIA:${url}`); lines.push(`MEDIA:${url}`);
} }
runtime.log(lines.join("\n")); runtime.log(lines.join("\n"));
}
if (deliver && targetTo) { if (deliver && targetTo) {
const text = payload.text ?? ""; const text = payload.text ?? "";