fix(cli): reject malformed infer model refs (#115225)

This commit is contained in:
Peter Steinberger
2026-07-28 12:03:58 -04:00
committed by GitHub
parent b2859cec4b
commit 964c5abbde
4 changed files with 35 additions and 4 deletions
+5 -4
View File
@@ -16,8 +16,8 @@ import {
formatEnvelopeForText,
providerHasGenericConfig,
providerSummaryText,
requireProviderModelOverride,
resolveLocalCapabilityRuntimeConfig,
resolveModelRefOverride,
} from "./shared.js";
async function closeEmbeddingProviderWithRetry(provider: {
@@ -40,18 +40,19 @@ async function runMemoryEmbeddingCreate(params: {
provider?: string;
model?: string;
}) {
const modelRef = requireProviderModelOverride(params.model);
const cfg = await resolveLocalCapabilityRuntimeConfig({
commandName: "infer embedding create",
targetIds: getMemoryEmbeddingCommandSecretTargetIds(),
});
const modelRef = resolveModelRefOverride(params.model);
const requestedProvider = normalizeOptionalString(params.provider) || modelRef.provider || "auto";
const requestedProvider =
normalizeOptionalString(params.provider) || modelRef?.provider || "auto";
const result = await createEmbeddingProvider({
config: cfg,
agentDir: resolveAgentDir(cfg, resolveDefaultAgentId(cfg)),
provider: requestedProvider,
fallback: "none",
model: modelRef.model ?? "",
model: modelRef?.model ?? "",
});
if (!result.provider) {
throw new Error(result.providerUnavailableReason ?? "No embedding provider available.");
+1
View File
@@ -64,6 +64,7 @@ async function runImageGenerate(params: {
output?: string;
timeoutMs?: number;
}) {
requireProviderModelOverride(params.model);
const cfg = await resolveLocalCapabilityRuntimeConfig({
commandName: `infer ${params.capability}`,
targetIds: getModelsCommandSecretTargetIds(),
+1
View File
@@ -109,6 +109,7 @@ async function runVideoGenerate(params: {
watermark?: boolean;
timeoutMs?: number;
}) {
requireProviderModelOverride(params.model);
const cfg = await resolveLocalCapabilityRuntimeConfig({
commandName: "infer video.generate",
targetIds: getModelsCommandSecretTargetIds(),