mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-08-19 08:01:25 +00:00
75 lines
1.8 KiB
TypeScript
75 lines
1.8 KiB
TypeScript
import type { EvalMode } from "./types";
|
|
import {
|
|
parsePositiveInteger,
|
|
resolveWindmillBackendSettings,
|
|
} from "./windmillBackendSettings";
|
|
|
|
export const BACKEND_VALIDATION_MODES = ["off", "preview"] as const;
|
|
|
|
export type BackendValidationMode = (typeof BACKEND_VALIDATION_MODES)[number];
|
|
|
|
export interface BackendValidationSettings {
|
|
mode: BackendValidationMode;
|
|
baseUrl: string;
|
|
email: string;
|
|
password: string;
|
|
workspaceOverride?: string;
|
|
pollIntervalMs: number;
|
|
maxWaitMs: number;
|
|
}
|
|
|
|
export function parseBackendValidationMode(
|
|
value?: string | null,
|
|
): BackendValidationMode {
|
|
const normalized = value?.trim().toLowerCase();
|
|
|
|
if (
|
|
!normalized ||
|
|
normalized === "off" ||
|
|
normalized === "false" ||
|
|
normalized === "0"
|
|
) {
|
|
return "off";
|
|
}
|
|
|
|
if (normalized === "preview" || normalized === "true" || normalized === "1") {
|
|
return "preview";
|
|
}
|
|
|
|
throw new Error(
|
|
`Unsupported backend validation mode: ${value}. Use one of: ${BACKEND_VALIDATION_MODES.join(", ")}`,
|
|
);
|
|
}
|
|
|
|
export function resolveBackendValidationSettings(input: {
|
|
evalMode: EvalMode;
|
|
requestedMode?: string | null;
|
|
}): BackendValidationSettings {
|
|
const mode = parseBackendValidationMode(
|
|
input.requestedMode ?? process.env.WMILL_AI_EVAL_BACKEND_VALIDATION,
|
|
);
|
|
|
|
if (
|
|
mode !== "off" &&
|
|
input.evalMode !== "flow" &&
|
|
input.evalMode !== "script"
|
|
) {
|
|
throw new Error(
|
|
`Backend validation mode "${mode}" is only supported for flow and script evals`,
|
|
);
|
|
}
|
|
|
|
return {
|
|
mode,
|
|
...resolveWindmillBackendSettings(),
|
|
pollIntervalMs: parsePositiveInteger(
|
|
process.env.WMILL_AI_EVAL_BACKEND_POLL_INTERVAL_MS,
|
|
2000,
|
|
),
|
|
maxWaitMs: parsePositiveInteger(
|
|
process.env.WMILL_AI_EVAL_BACKEND_MAX_WAIT_MS,
|
|
120000,
|
|
),
|
|
};
|
|
}
|