feat: show routing decisions in footer status bar instead of hidden messages
This commit is contained in:
@@ -86,11 +86,7 @@ export default function (pi: ExtensionAPI) {
|
|||||||
// Pass-through if user locked the model manually
|
// Pass-through if user locked the model manually
|
||||||
if (isLocked && lockedModel) {
|
if (isLocked && lockedModel) {
|
||||||
pi.setModel(lockedModel);
|
pi.setModel(lockedModel);
|
||||||
pi.sendMessage({
|
ctx.ui.setStatus("router", `🔒 ${lockedModel.id || "unknown"}`);
|
||||||
customType: "router-status",
|
|
||||||
content: `🔒 Locked → ${lockedModel.id || "unknown"}`,
|
|
||||||
display: false,
|
|
||||||
});
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -98,20 +94,12 @@ export default function (pi: ExtensionAPI) {
|
|||||||
if (prompt.trim().length < 15) {
|
if (prompt.trim().length < 15) {
|
||||||
const model = getModel(ctx, "router-eval");
|
const model = getModel(ctx, "router-eval");
|
||||||
if (model) pi.setModel(model);
|
if (model) pi.setModel(model);
|
||||||
pi.sendMessage({
|
ctx.ui.setStatus("router", `⚡ ${modelLabel("router-eval")}`);
|
||||||
customType: "router-status",
|
|
||||||
content: `⚡ Short prompt → ${modelLabel("router-eval")}`,
|
|
||||||
display: false,
|
|
||||||
});
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Show analyzing indicator
|
// Show analyzing indicator in status bar
|
||||||
pi.sendMessage({
|
ctx.ui.setStatus("router", "🤔 Analyzing...");
|
||||||
customType: "router-status",
|
|
||||||
content: "🤔 Analyzing prompt intent...",
|
|
||||||
display: false,
|
|
||||||
});
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const OPENROUTER_API_KEY = process.env["OPENROUTER_API_KEY"] || "";
|
const OPENROUTER_API_KEY = process.env["OPENROUTER_API_KEY"] || "";
|
||||||
@@ -142,11 +130,7 @@ export default function (pi: ExtensionAPI) {
|
|||||||
if (!content) {
|
if (!content) {
|
||||||
const fallback = getModel(ctx, "free-core");
|
const fallback = getModel(ctx, "free-core");
|
||||||
if (fallback) pi.setModel(fallback);
|
if (fallback) pi.setModel(fallback);
|
||||||
pi.sendMessage({
|
ctx.ui.setStatus("router", `⚠️ fallback ${modelLabel("free-core")}`);
|
||||||
customType: "router-status",
|
|
||||||
content: `⚠️ Analysis failed → fallback ${modelLabel("free-core")}`,
|
|
||||||
display: false,
|
|
||||||
});
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -189,22 +173,14 @@ export default function (pi: ExtensionAPI) {
|
|||||||
pi.setModel(model);
|
pi.setModel(model);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Show routing decision
|
// Show routing decision in status bar
|
||||||
pi.sendMessage({
|
ctx.ui.setStatus("router", `🎯 ${tag} → ${modelLabel(modelKey)}`);
|
||||||
customType: "router-status",
|
|
||||||
content: `🎯 ${tag} (${lang}) → ${modelLabel(modelKey)}`,
|
|
||||||
display: false,
|
|
||||||
});
|
|
||||||
|
|
||||||
} catch (_error) {
|
} catch (_error) {
|
||||||
// Fallback gracefully on network drops
|
// Fallback gracefully on network drops
|
||||||
const fallback = getModel(ctx, "free-core");
|
const fallback = getModel(ctx, "free-core");
|
||||||
if (fallback) pi.setModel(fallback);
|
if (fallback) pi.setModel(fallback);
|
||||||
pi.sendMessage({
|
ctx.ui.setStatus("router", `⚠️ fallback ${modelLabel("free-core")}`);
|
||||||
customType: "router-status",
|
|
||||||
content: `⚠️ Error → fallback ${modelLabel("free-core")}`,
|
|
||||||
display: false,
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user