File size: 1,073 Bytes
34810d2 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | // CLI channel option formatter backed by generated startup metadata when available.
import { uniqueStrings } from "@openclaw/normalization-core/string-normalization";
import { readCliStartupMetadata } from "./startup-metadata.js";
function loadPrecomputedChannelOptions(): string[] | null {
try {
const parsed = readCliStartupMetadata(import.meta.url) as { channelOptions?: unknown } | null;
if (parsed && Array.isArray(parsed.channelOptions)) {
return uniqueStrings(
parsed.channelOptions.filter(
(value): value is string => typeof value === "string" && Boolean(value),
),
);
}
} catch {
// Source checkouts may not have generated startup metadata yet.
}
return null;
}
export function resolveCliChannelOptions(): string[] {
const precomputed = loadPrecomputedChannelOptions();
return precomputed ?? [];
}
export function formatCliChannelOptions(extra: string[] = []): string {
const options = [...extra, ...resolveCliChannelOptions()];
return options.length > 0 ? options.join("|") : "channel";
}
|