openclaw / src /cli /capability-cli /output.ts
SaylorTwift's picture
SaylorTwift HF Staff
Add files using upload-large-folder tool
f778c12 verified
Raw
History Blame Contribute Delete
1.59 kB
import { writeRuntimeJson, type RuntimeEnv } from "../../runtime.js";
import type { CapabilityEnvelope } from "./metadata.js";
export function emitJsonOrText<T>(
runtime: RuntimeEnv,
json: boolean | undefined,
value: T,
textFormatter: (value: T) => string,
) {
if (json) {
writeRuntimeJson(runtime, value);
return;
}
runtime.log(textFormatter(value));
}
export function formatEnvelopeForText(envelope: CapabilityEnvelope): string {
if (!envelope.ok) {
return `${envelope.capability} failed: ${envelope.error ?? "unknown error"}`;
}
const lines = [
`${envelope.capability} via ${envelope.transport}`,
...(envelope.provider ? [`provider: ${envelope.provider}`] : []),
...(envelope.model ? [`model: ${envelope.model}`] : []),
...(envelope.ignoredOverrides && envelope.ignoredOverrides.length > 0
? [`ignoredOverrides: ${JSON.stringify(envelope.ignoredOverrides)}`]
: []),
`outputs: ${String(envelope.outputs.length)}`,
];
for (const output of envelope.outputs) {
const pathValue = typeof output.path === "string" ? output.path : undefined;
const textValue = typeof output.text === "string" ? output.text : undefined;
if (pathValue || textValue) {
lines.push(...[pathValue, textValue].filter((entry): entry is string => Boolean(entry)));
} else {
lines.push(JSON.stringify(output));
}
}
return lines.join("\n");
}
export function providerSummaryText(providers: readonly unknown[]): string {
return providers.map((entry) => JSON.stringify(entry)).join("\n") || "No results found.";
}