fix: models review feedback #2

Merged
xiaonuo merged 1 commits from fix/models-review-feedback into main 2026-04-21 02:50:38 +00:00

View File

@ -36,7 +36,7 @@ interface Config {
[key: string]: unknown; [key: string]: unknown;
} }
const AUXILIARY_TASKS = [ const DEFAULT_AUXILIARY_TASKS = [
"vision", "vision",
"web_extract", "web_extract",
"compression", "compression",
@ -47,6 +47,18 @@ const AUXILIARY_TASKS = [
"approval", "approval",
]; ];
function getAuxiliaryTasks(): string[] {
try {
const config = loadConfig();
const aux = config.auxiliary || {};
const tasks = Object.keys(aux).filter(
(k) => typeof aux[k] === "object" && aux[k]?.provider !== undefined
);
if (tasks.length > 0) return tasks;
} catch {}
return DEFAULT_AUXILIARY_TASKS;
}
// ── Helpers ──────────────────────────────────────────────────────────── // ── Helpers ────────────────────────────────────────────────────────────
function loadConfig(): Config { function loadConfig(): Config {
@ -324,7 +336,7 @@ function switchConfig(opts: SwitchOptions) {
} }
saveConfig(config); saveConfig(config);
console.log("\nConfig saved. New sessions will use the updated settings."); console.log("\nConfig saved. Run 'hermes gateway restart' or start a new session to apply.");
} }
async function switchTelegram(opts: SwitchOptions) { async function switchTelegram(opts: SwitchOptions) {
@ -386,16 +398,19 @@ async function switchTelegram(opts: SwitchOptions) {
if (result.ok) { if (result.ok) {
console.log(`Sent: ${command}`); console.log(`Sent: ${command}`);
console.log(opts.global ? "Persistent change (--global)." : "Current session only."); console.log(opts.global ? "Persistent change (--global)." : "Current session only.");
// Clean up the command message // Clean up the command message after a delay so hermes can process it
if (result.result?.message_id) { if (result.result?.message_id) {
const msgId = result.result.message_id;
setTimeout(async () => {
await fetch(`https://api.telegram.org/bot${token}/deleteMessage`, { await fetch(`https://api.telegram.org/bot${token}/deleteMessage`, {
method: "POST", method: "POST",
headers: { "Content-Type": "application/json" }, headers: { "Content-Type": "application/json" },
body: JSON.stringify({ body: JSON.stringify({
chat_id: chatId, chat_id: chatId,
message_id: result.result.message_id, message_id: msgId,
}), }),
}).catch(() => {}); }).catch(() => {});
}, 3000);
} }
} else { } else {
console.error(`Telegram API error: ${result.description}`); console.error(`Telegram API error: ${result.description}`);
@ -476,9 +491,10 @@ export async function models(args: string[]) {
i++; i++;
} else if (args[i] === "--aux" && i + 1 < args.length) { } else if (args[i] === "--aux" && i + 1 < args.length) {
const task = args[i + 1]; const task = args[i + 1];
if (!AUXILIARY_TASKS.includes(task)) { const knownTasks = getAuxiliaryTasks();
if (!knownTasks.includes(task)) {
console.error(`Unknown auxiliary task: ${task}`); console.error(`Unknown auxiliary task: ${task}`);
console.error(`Available: ${AUXILIARY_TASKS.join(", ")}`); console.error(`Available: ${knownTasks.join(", ")}`);
process.exit(1); process.exit(1);
} }
auxTasks.push(task); auxTasks.push(task);