






















@@ -27,6 +27,7 @@ const modelRegistryState = {
2727available: [] as Array<Record<string, unknown>>,
2828getAllError: undefined as unknown,
2929getAvailableError: undefined as unknown,
30+findError: undefined as unknown,
3031};
3132let previousExitCode: typeof process.exitCode;
3233@@ -46,6 +47,9 @@ vi.mock("./models/load-config.js", () => ({
4647vi.mock("./models/list.runtime.js", () => {
4748class MockModelRegistry {
4849find(provider: string, id: string) {
50+if (modelRegistryState.findError !== undefined) {
51+throw modelRegistryState.findError;
52+}
4953return (
5054modelRegistryState.models.find((model) => model.provider === provider && model.id === id) ??
5155null
@@ -65,6 +69,12 @@ vi.mock("./models/list.runtime.js", () => {
6569}
6670return modelRegistryState.available;
6771}
72+73+hasConfiguredAuth(model: { provider: string; id: string }) {
74+return modelRegistryState.available.some(
75+(available) => available.provider === model.provider && available.id === model.id,
76+);
77+}
6878}
69797080return {
@@ -133,6 +143,7 @@ beforeEach(() => {
133143process.exitCode = undefined;
134144modelRegistryState.getAllError = undefined;
135145modelRegistryState.getAvailableError = undefined;
146+modelRegistryState.findError = undefined;
136147getRuntimeConfig.mockReset();
137148getRuntimeConfig.mockReturnValue({});
138149listProfilesForProvider.mockReturnValue([]);
@@ -390,22 +401,27 @@ describe("models list/status", () => {
390401expect(loadProviderCatalogModelsForList).not.toHaveBeenCalled();
391402});
392403393-it("models list does not treat availability-unavailable code as discovery fallback", async () => {
404+it("models list default does not enumerate all registry models", async () => {
394405configureGoogleAntigravityModel("claude-opus-4-6-thinking");
406+modelRegistryState.models = [
407+makeGoogleAntigravityTemplate("claude-opus-4-6-thinking", "Claude Opus 4.6 Thinking"),
408+];
409+modelRegistryState.available = modelRegistryState.models;
395410modelRegistryState.getAllError = Object.assign(new Error("model discovery failed"), {
396411code: "MODEL_AVAILABILITY_UNAVAILABLE",
397412});
398413const runtime = makeRuntime();
399414await modelsListCommand({ json: true }, runtime);
400415401-expectModelRegistryUnavailable(runtime, "model discovery failed");
402-expect(runtime.error.mock.calls[0]?.[0]).not.toContain("configured models may appear missing");
416+expect(runtime.error).not.toHaveBeenCalled();
417+const payload = parseJsonLog(runtime);
418+expect(payload.models[0]?.key).toBe("google-antigravity/claude-opus-4-6-thinking");
403419});
404420405-it("models list fails fast when registry model discovery is unavailable", async () => {
421+it("models list fails fast when configured registry lookup is unavailable", async () => {
406422configureGoogleAntigravityModel("claude-opus-4-6-thinking");
407423enableGoogleAntigravityAuthProfile();
408-modelRegistryState.getAllError = Object.assign(new Error("model discovery unavailable"), {
424+modelRegistryState.findError = Object.assign(new Error("model discovery unavailable"), {
409425code: "MODEL_DISCOVERY_UNAVAILABLE",
410426});
411427const runtime = makeRuntime();
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。