mirror of
https://github.com/openclaw/openclaw.git
synced 2026-06-06 05:51:15 +08:00
fix(gateway): fail closed for unknown model auth
This commit is contained in:
@@ -239,7 +239,10 @@ async function buildPublicModelsListEntry(params: {
|
||||
}): Promise<ModelsListEntry> {
|
||||
const publicEntry = omitRuntimeModelParams(params.entry);
|
||||
if (modelCatalogEntryHasUnknownSecretRefAvailability(params.cfg, params.entry)) {
|
||||
return publicEntry;
|
||||
return {
|
||||
...publicEntry,
|
||||
available: false,
|
||||
};
|
||||
}
|
||||
if (!params.providerAuthChecker) {
|
||||
return publicEntry;
|
||||
@@ -248,12 +251,9 @@ async function buildPublicModelsListEntry(params: {
|
||||
params.providerAuthChecker,
|
||||
params.entry,
|
||||
);
|
||||
if (available === undefined) {
|
||||
return publicEntry;
|
||||
}
|
||||
return {
|
||||
...publicEntry,
|
||||
available,
|
||||
available: available ?? false,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -126,6 +126,7 @@ describe("models.list", () => {
|
||||
id: "llama-secure",
|
||||
name: "Llama Secure",
|
||||
provider: "vllm",
|
||||
available: false,
|
||||
},
|
||||
],
|
||||
},
|
||||
@@ -317,7 +318,7 @@ describe("models.list", () => {
|
||||
);
|
||||
});
|
||||
|
||||
it("keeps file SecretRef provider availability unknown instead of forcing unavailable", async () => {
|
||||
it("marks file SecretRef provider unavailable when read-only auth cannot prove availability", async () => {
|
||||
const catalog = [{ id: "llama-secure", name: "Llama Secure", provider: "vllm" }];
|
||||
const cfg = {
|
||||
agents: {
|
||||
@@ -350,12 +351,14 @@ describe("models.list", () => {
|
||||
|
||||
expect(respond).toHaveBeenCalledWith(
|
||||
true,
|
||||
{ models: [{ id: "llama-secure", name: "Llama Secure", provider: "vllm" }] },
|
||||
{
|
||||
models: [{ id: "llama-secure", name: "Llama Secure", provider: "vllm", available: false }],
|
||||
},
|
||||
undefined,
|
||||
);
|
||||
});
|
||||
|
||||
it("keeps managed SecretRef provider availability unknown instead of forcing unavailable", async () => {
|
||||
it("marks managed SecretRef provider unavailable when read-only auth cannot prove availability", async () => {
|
||||
const catalog = [{ id: "llama-managed", name: "Llama Managed", provider: "vllm" }];
|
||||
const cfg = {
|
||||
agents: {
|
||||
@@ -384,7 +387,11 @@ describe("models.list", () => {
|
||||
|
||||
expect(respond).toHaveBeenCalledWith(
|
||||
true,
|
||||
{ models: [{ id: "llama-managed", name: "Llama Managed", provider: "vllm" }] },
|
||||
{
|
||||
models: [
|
||||
{ id: "llama-managed", name: "Llama Managed", provider: "vllm", available: false },
|
||||
],
|
||||
},
|
||||
undefined,
|
||||
);
|
||||
});
|
||||
@@ -532,6 +539,7 @@ describe("models.list", () => {
|
||||
id: "demo-model",
|
||||
name: "Demo Model",
|
||||
provider: "demo-provider",
|
||||
available: false,
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user