fix: honor plugin disablement in provider index rows · openclaw/openclaw@78fb0ad
shakkernerd
·
2026-04-26
·
via Recent Commits to openclaw:main
| Original file line number | Diff line number | Diff line change |
|---|
@@ -76,7 +76,7 @@ export async function modelsListCommand(
|
76 | 76 | if (!useManifestCatalogFastPath && !useProviderCatalogFastPath && opts.all && providerFilter) { |
77 | 77 | const { loadProviderIndexCatalogRowsForList } = |
78 | 78 | await import("./list.provider-index-catalog.js"); |
79 | | -providerIndexCatalogRows = loadProviderIndexCatalogRowsForList({ providerFilter }); |
| 79 | +providerIndexCatalogRows = loadProviderIndexCatalogRowsForList({ cfg, providerFilter }); |
80 | 80 | } |
81 | 81 | const useProviderIndexCatalogFastPath = providerIndexCatalogRows.length > 0; |
82 | 82 | const shouldLoadRegistry = modelRowSourcesRequireRegistry({ |
|
| Original file line number | Diff line number | Diff line change |
|---|
|
| 1 | +import { describe, expect, it } from "vitest"; |
| 2 | +import type { OpenClawConfig } from "../../config/types.openclaw.js"; |
| 3 | +import { loadProviderIndexCatalogRowsForList } from "./list.provider-index-catalog.js"; |
| 4 | + |
| 5 | +const baseConfig = {} satisfies OpenClawConfig; |
| 6 | + |
| 7 | +describe("loadProviderIndexCatalogRowsForList", () => { |
| 8 | +it("returns provider-index preview rows when the provider plugin is enabled", () => { |
| 9 | +expect( |
| 10 | +loadProviderIndexCatalogRowsForList({ |
| 11 | +cfg: baseConfig, |
| 12 | +providerFilter: "moonshot", |
| 13 | +}).map((row) => row.ref), |
| 14 | +).toContain("moonshot/kimi-k2.6"); |
| 15 | +}); |
| 16 | + |
| 17 | +it("suppresses provider-index preview rows when the provider plugin is disabled", () => { |
| 18 | +expect( |
| 19 | +loadProviderIndexCatalogRowsForList({ |
| 20 | +cfg: { |
| 21 | +plugins: { |
| 22 | +entries: { |
| 23 | +moonshot: { enabled: false }, |
| 24 | +}, |
| 25 | +}, |
| 26 | +}, |
| 27 | +providerFilter: "moonshot", |
| 28 | +}), |
| 29 | +).toEqual([]); |
| 30 | +}); |
| 31 | +}); |
| Original file line number | Diff line number | Diff line change |
|---|
|
| 1 | +import type { OpenClawConfig } from "../../config/types.openclaw.js"; |
1 | 2 | import { |
2 | 3 | loadOpenClawProviderIndex, |
3 | 4 | normalizeModelCatalogProviderId, |
4 | 5 | planProviderIndexModelCatalogRows, |
5 | 6 | } from "../../model-catalog/index.js"; |
6 | 7 | import type { NormalizedModelCatalogRow } from "../../model-catalog/index.js"; |
| 8 | +import { normalizePluginsConfig, resolveEffectiveEnableState } from "../../plugins/config-state.js"; |
7 | 9 | |
8 | 10 | export function loadProviderIndexCatalogRowsForList(params: { |
9 | 11 | providerFilter: string; |
| 12 | +cfg: OpenClawConfig; |
10 | 13 | }): readonly NormalizedModelCatalogRow[] { |
11 | 14 | const providerFilter = normalizeModelCatalogProviderId(params.providerFilter); |
12 | 15 | if (!providerFilter) { |
13 | 16 | return []; |
14 | 17 | } |
| 18 | +const index = loadOpenClawProviderIndex(); |
15 | 19 | return planProviderIndexModelCatalogRows({ |
16 | | -index: loadOpenClawProviderIndex(), |
| 20 | + index, |
17 | 21 | providerFilter, |
18 | | -}).rows; |
| 22 | +}) |
| 23 | +.entries.filter( |
| 24 | +(entry) => |
| 25 | +resolveEffectiveEnableState({ |
| 26 | +id: entry.pluginId, |
| 27 | +origin: "bundled", |
| 28 | +config: normalizePluginsConfig(params.cfg.plugins), |
| 29 | +rootConfig: params.cfg, |
| 30 | +enabledByDefault: true, |
| 31 | +}).enabled, |
| 32 | +) |
| 33 | +.flatMap((entry) => entry.rows); |
19 | 34 | } |
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。