



























@@ -587,6 +587,49 @@ describe("modelsListCommand forward-compat", () => {
587587]);
588588});
589589590+it("does not load broad provider runtime catalogs for unfiltered all-model lists", async () => {
591+mocks.resolveConfiguredEntries.mockReturnValueOnce({ entries: [] });
592+mocks.loadModelRegistry.mockResolvedValueOnce({
593+models: [{ ...OPENAI_CODEX_MODEL }],
594+availableKeys: new Set(["openai-codex/gpt-5.4"]),
595+registry: {
596+getAll: () => [{ ...OPENAI_CODEX_MODEL }],
597+},
598+});
599+mocks.loadStaticManifestCatalogRowsForList.mockReturnValueOnce([
600+{
601+provider: "moonshot",
602+id: "kimi-k2.6",
603+ref: "moonshot/kimi-k2.6",
604+mergeKey: "moonshot::kimi-k2.6",
605+name: "Kimi K2.6",
606+source: "manifest",
607+input: ["text", "image"],
608+reasoning: false,
609+status: "available",
610+baseUrl: "https://api.moonshot.ai/v1",
611+contextWindow: 262_144,
612+},
613+]);
614+mocks.loadModelCatalog.mockResolvedValueOnce([]);
615+const runtime = createRuntime();
616+617+await modelsListCommand({ all: true, json: true }, runtime as never);
618+619+expect(mocks.loadModelRegistry).toHaveBeenCalledWith(mocks.resolvedConfig, {
620+providerFilter: undefined,
621+});
622+expect(mocks.loadProviderCatalogModelsForList).not.toHaveBeenCalled();
623+expect(lastPrintedRows<{ key: string }>()).toEqual([
624+expect.objectContaining({
625+key: "openai-codex/gpt-5.4",
626+}),
627+expect.objectContaining({
628+key: "moonshot/kimi-k2.6",
629+}),
630+]);
631+});
632+590633it("falls back to registry-backed rows when the fast-path catalog is empty", async () => {
591634mocks.resolveConfiguredEntries.mockReturnValueOnce({ entries: [] });
592635mocks.hasProviderStaticCatalogForFilter.mockResolvedValueOnce(true);
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。