Merge pull request 'fix: models review feedback' (#2) from fix/models-review-feedback into main

This commit is contained in:
xiaonuo 2026-04-21 02:50:37 +00:00
commit f1c65b2c1b

View File

@ -36,7 +36,7 @@ interface Config {
[key: string]: unknown;
}
const AUXILIARY_TASKS = [
const DEFAULT_AUXILIARY_TASKS = [
"vision",
"web_extract",
"compression",
@ -47,6 +47,18 @@ const AUXILIARY_TASKS = [
"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 ────────────────────────────────────────────────────────────
function loadConfig(): Config {
@ -324,7 +336,7 @@ function switchConfig(opts: SwitchOptions) {
}
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) {
@ -386,16 +398,19 @@ async function switchTelegram(opts: SwitchOptions) {
if (result.ok) {
console.log(`Sent: ${command}`);
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) {
const msgId = result.result.message_id;
setTimeout(async () => {
await fetch(`https://api.telegram.org/bot${token}/deleteMessage`, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
chat_id: chatId,
message_id: result.result.message_id,
message_id: msgId,
}),
}).catch(() => {});
}, 3000);
}
} else {
console.error(`Telegram API error: ${result.description}`);
@ -476,9 +491,10 @@ export async function models(args: string[]) {
i++;
} else if (args[i] === "--aux" && i + 1 < args.length) {
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(`Available: ${AUXILIARY_TASKS.join(", ")}`);
console.error(`Available: ${knownTasks.join(", ")}`);
process.exit(1);
}
auxTasks.push(task);