openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
137 lines (136 loc) • 5.26 kB
JavaScript
import { r as normalizeProviderId } from "./provider-id-DMd-TDFp.js";
import { r as isPluginEnabled, t as getPluginRecord } from "./plugin-registry-snapshot-Dy15Ew18.js";
import { o as resolvePluginContributionOwners } from "./plugin-registry-contributions-BwuDvm89.js";
import { c as loadManifestMetadataSnapshot } from "./manifest-contract-eligibility-BbV7X6pV.js";
import { t as planEffectiveModelCatalogRows } from "./model-catalog-BiOJ2EJd.js";
//#region src/commands/models/list.manifest-catalog.ts
/** Manifest-backed model catalog row loaders for `openclaw models list`. */
function planManifestCatalogRowsForPluginIds(params) {
if (params.pluginIds && params.pluginIds.length === 0) return [];
const pluginIdSet = params.pluginIds ? new Set(params.pluginIds) : void 0;
const registry = pluginIdSet ? {
...params.registry,
plugins: params.registry.plugins.filter((plugin) => pluginIdSet.has(plugin.id))
} : params.registry;
return planEffectiveModelCatalogRows({
registry,
config: params.cfg,
...params.providerFilter ? { providerFilter: params.providerFilter } : {},
...params.selection ? { selection: params.selection } : {}
}).rows;
}
function resolveConventionModelCatalogPluginIds(params) {
const record = getPluginRecord({
index: params.index,
pluginId: params.providerFilter
});
if (!record || !isPluginEnabled({
index: params.index,
pluginId: record.pluginId,
config: params.cfg
})) return [];
return [record.pluginId];
}
function resolveDeclaredModelCatalogPluginIds(params) {
return resolvePluginContributionOwners({
lookUpTable: params.snapshot,
config: params.cfg,
contribution: "modelCatalogProviders",
matches: params.providerFilter
});
}
function resolveModelCatalogPluginIdsForProvider(params) {
return [.../* @__PURE__ */ new Set([...resolveConventionModelCatalogPluginIds({
cfg: params.cfg,
index: params.snapshot.index,
providerFilter: params.provider
}), ...resolveDeclaredModelCatalogPluginIds({
cfg: params.cfg,
snapshot: params.snapshot,
providerFilter: params.provider
})])];
}
/**
* Resolves provider ownership and whether static manifest rows require runtime
* augmentation before they can be treated as complete catalog coverage.
*/
function resolveManifestCatalogCoverageForList(params) {
const snapshot = params.metadataSnapshot ?? loadManifestMetadataSnapshot({
config: params.cfg,
env: params.env ?? process.env
});
const ownedProviderIds = /* @__PURE__ */ new Set();
const completeProviderIds = /* @__PURE__ */ new Set();
for (const rawProvider of params.providerIds) {
const provider = normalizeProviderId(rawProvider);
if (!provider) continue;
const pluginIds = resolveModelCatalogPluginIdsForProvider({
cfg: params.cfg,
snapshot,
provider
});
if (pluginIds.length === 0) continue;
ownedProviderIds.add(provider);
if (pluginIds.every((pluginId) => {
const plugin = snapshot.byPluginId.get(pluginId);
if (!plugin) return false;
if (plugin.modelCatalog?.runtimeAugment === true || plugin.origin !== "bundled") return false;
const aliasTarget = plugin.modelCatalog?.aliases?.[provider]?.provider;
const discoveryProvider = normalizeProviderId(aliasTarget ?? provider);
return plugin.modelCatalog?.discovery?.[discoveryProvider] === "static";
})) completeProviderIds.add(provider);
}
if (params.cfg.models?.mode === "replace") for (const provider of params.providerIds) completeProviderIds.add(normalizeProviderId(provider));
return {
ownedProviderIds,
completeProviderIds
};
}
function loadManifestCatalogRowsForListSelection(params) {
const providerFilter = params.providerFilter ? normalizeProviderId(params.providerFilter) : void 0;
const snapshot = params.metadataSnapshot ?? loadManifestMetadataSnapshot({
config: params.cfg,
env: params.env ?? process.env
});
if (!providerFilter) return planManifestCatalogRowsForPluginIds({
cfg: params.cfg,
registry: snapshot.manifestRegistry,
...params.selection ? { selection: params.selection } : {}
});
const conventionRows = planManifestCatalogRowsForPluginIds({
cfg: params.cfg,
registry: snapshot.manifestRegistry,
pluginIds: resolveConventionModelCatalogPluginIds({
cfg: params.cfg,
index: snapshot.index,
providerFilter
}),
providerFilter,
...params.selection ? { selection: params.selection } : {}
});
if (conventionRows.length > 0) return conventionRows;
return planManifestCatalogRowsForPluginIds({
cfg: params.cfg,
registry: snapshot.manifestRegistry,
pluginIds: resolveDeclaredModelCatalogPluginIds({
cfg: params.cfg,
snapshot,
providerFilter
}),
providerFilter,
...params.selection ? { selection: params.selection } : {}
});
}
/** Loads manifest catalog rows without importing provider runtimes. */
function loadManifestCatalogRowsForList(params) {
return loadManifestCatalogRowsForListSelection(params);
}
/** Loads authoritative static manifest catalog rows for model-list output. */
function loadStaticManifestCatalogRowsForList(params) {
return loadManifestCatalogRowsForListSelection({
...params,
selection: "static"
});
}
//#endregion
export { loadStaticManifestCatalogRowsForList as n, resolveManifestCatalogCoverageForList as r, loadManifestCatalogRowsForList as t };