consortium
Version:
Remote control and session sharing CLI for AI coding agents
37 lines (34 loc) • 1.18 kB
JavaScript
;
function hasIncompleteOptions(text) {
const hasOpeningTag = /<options>/i.test(text);
const hasClosingTag = /<\/options>/i.test(text);
return hasOpeningTag && !hasClosingTag;
}
function parseOptionsFromText(text) {
const optionsRegex = /<options>\s*([\s\S]*?)\s*<\/options>/i;
const match = text.match(optionsRegex);
if (!match) {
return { text: text.trim(), options: [] };
}
const optionsBlock = match[1];
const optionRegex = /<option>(.*?)<\/option>/gi;
const options = [];
let optionMatch;
while ((optionMatch = optionRegex.exec(optionsBlock)) !== null) {
const optionText = optionMatch[1].trim();
if (optionText) {
options.push(optionText);
}
}
const textWithoutOptions = text.replace(optionsRegex, "").trim();
return { text: textWithoutOptions, options };
}
function formatOptionsXml(options) {
if (options.length === 0) {
return "";
}
return "\n<options>\n" + options.map((opt) => ` <option>${opt}</option>`).join("\n") + "\n</options>";
}
exports.formatOptionsXml = formatOptionsXml;
exports.hasIncompleteOptions = hasIncompleteOptions;
exports.parseOptionsFromText = parseOptionsFromText;