fix: treat /model status as model list

This commit is contained in:
Peter Steinberger
2025-12-27 12:10:44 +00:00
parent c0fb814658
commit cae78b3f91
3 changed files with 38 additions and 6 deletions

View File

@@ -554,6 +554,11 @@ export async function getReplyFromConfig(
alias
? `Model switched to ${alias} (${label}).`
: `Model switched to ${label}.`;
const isModelListAlias =
hasModelDirective && rawModelDirective?.trim().toLowerCase() === "status";
const effectiveModelDirective = isModelListAlias
? undefined
: rawModelDirective;
const directiveOnly = (() => {
if (
@@ -569,7 +574,7 @@ export async function getReplyFromConfig(
})();
if (directiveOnly) {
if (hasModelDirective && !rawModelDirective) {
if (hasModelDirective && (!rawModelDirective || isModelListAlias)) {
if (allowedModelCatalog.length === 0) {
cleanupTyping();
return { text: "No models available." };
@@ -620,16 +625,16 @@ export async function getReplyFromConfig(
let modelSelection:
| { provider: string; model: string; isDefault: boolean; alias?: string }
| undefined;
if (hasModelDirective && rawModelDirective) {
if (hasModelDirective && effectiveModelDirective) {
const resolved = resolveModelRefFromString({
raw: rawModelDirective,
raw: effectiveModelDirective,
defaultProvider,
aliasIndex,
});
if (!resolved) {
cleanupTyping();
return {
text: `Unrecognized model "${rawModelDirective}". Use /model to list available models.`,
text: `Unrecognized model "${effectiveModelDirective}". Use /model to list available models.`,
};
}
const key = modelKey(resolved.ref.provider, resolved.ref.model);
@@ -742,9 +747,9 @@ export async function getReplyFromConfig(
}
updated = true;
}
if (hasModelDirective && rawModelDirective) {
if (hasModelDirective && effectiveModelDirective) {
const resolved = resolveModelRefFromString({
raw: rawModelDirective,
raw: effectiveModelDirective,
defaultProvider,
aliasIndex,
});