


























@@ -45,7 +45,12 @@ import {
4545recordRecentMediaGenerationTaskStartForSession,
4646} from "../media-generation-task-status-shared.js";
4747import { optionalStringEnum } from "../schema/string-enum.js";
48-import { ToolInputError, readNumberParam, readStringParam } from "./common.js";
48+import {
49+ToolInputError,
50+readNonNegativeIntegerParam,
51+readPositiveIntegerParam,
52+readStringParam,
53+} from "./common.js";
4954import {
5055completeImageGenerationTaskRun,
5156createImageGenerationTaskRun,
@@ -236,11 +241,13 @@ function resolveAction(args: Record<string, unknown>): "generate" | "list" | "st
236241}
237242238243function resolveRequestedCount(args: Record<string, unknown>): number {
239-const count = readNumberParam(args, "count", { positiveInteger: true });
244+if (readSnakeCaseParamRaw(args, "count") === null) {
245+throw new ToolInputError(`count must be between 1 and ${MAX_COUNT}`);
246+}
247+const count = readPositiveIntegerParam(args, "count", {
248+message: `count must be between 1 and ${MAX_COUNT}`,
249+});
240250if (count === undefined) {
241-if (readSnakeCaseParamRaw(args, "count") !== undefined) {
242-throw new ToolInputError(`count must be between 1 and ${MAX_COUNT}`);
243-}
244251return DEFAULT_COUNT;
245252}
246253if (count < 1 || count > MAX_COUNT) {
@@ -343,14 +350,13 @@ function normalizeOpenAIOptions(args: Record<string, unknown>): ImageGenerationO
343350const raw = readRecordParam(args, "openai");
344351const background = normalizeOpenAIBackground(readStringParam(raw, "background"));
345352const moderation = normalizeOpenAIModeration(readStringParam(raw, "moderation"));
346-const outputCompression = readNumberParam(raw, "outputCompression", { nonNegativeInteger: true });
347-const user = readStringParam(raw, "user");
348-if (
349-outputCompression === undefined &&
350-readSnakeCaseParamRaw(raw, "outputCompression") !== undefined
351-) {
353+if (readSnakeCaseParamRaw(raw, "outputCompression") === null) {
352354throw new ToolInputError("openai.outputCompression must be between 0 and 100");
353355}
356+const outputCompression = readNonNegativeIntegerParam(raw, "outputCompression", {
357+message: "openai.outputCompression must be between 0 and 100",
358+});
359+const user = readStringParam(raw, "user");
354360if (outputCompression !== undefined && (outputCompression < 0 || outputCompression > 100)) {
355361throw new ToolInputError("openai.outputCompression must be between 0 and 100");
356362}
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。