Add tool ranker fallback policy tests

This commit is contained in:
2026-05-18 16:23:32 +03:00
parent c3481dfcfe
commit 58f5a645fd
13 changed files with 125 additions and 46 deletions
+11 -4
View File
@@ -6,9 +6,7 @@ import {z} from "zod";
import {appLogger} from "../logging/logger.js";
import type {BoundaryValue, ErrorLike} from "./boundary-types";
import {saveData} from "../db/database.js";
import {Answers} from "../model/answers.js";
import {ifTrue} from "../util/utils.js";
import {AiProvider} from "../model/ai-provider.js";
import {ImageHandleFallbackPolicy, ImageHandlePolicy, RateLimitFallbackPolicy} from "./policies.js";
import {ToolRankerFallbackPolicy} from "./policies.js";
@@ -16,6 +14,11 @@ import type {ToolCallData} from "../ai/unified-ai-runner.js";
import {PYTHON_INTERPRETER_TOOL_NAME} from "../ai/tools/python-interpretator.js";
import {Localization, type LocalizationParams} from "./localization.js";
function parseBooleanLike(value: string): boolean {
const normalized = value.trim().toLowerCase();
return ["true", "t", "y", "1"].includes(normalized);
}
type EnvRecord = Record<string, string>;
type StringEnumLike = Record<string, string>;
type StringEnumValue<T extends StringEnumLike> = T[keyof T];
@@ -53,7 +56,7 @@ function booleanWithDefaultSchema(defaultValue: boolean) {
return defaultValue;
}
return ifTrue(normalized);
return parseBooleanLike(normalized);
}, z.boolean())
.default(defaultValue)
.catch(defaultValue);
@@ -62,7 +65,7 @@ function booleanWithDefaultSchema(defaultValue: boolean) {
const optionalBooleanSchema = z
.preprocess(value => {
const normalized = normalizeString(value as BoundaryValue);
return normalized === undefined ? undefined : ifTrue(normalized);
return normalized === undefined ? undefined : parseBooleanLike(normalized);
}, z.boolean().optional())
.optional()
.catch(undefined);
@@ -1939,6 +1942,7 @@ export class Environment {
if (!has) {
this.ADMIN_IDS.add(id);
const {saveData} = await import("../db/database.js");
await saveData();
}
@@ -1950,6 +1954,7 @@ export class Environment {
if (has) {
this.ADMIN_IDS.delete(id);
const {saveData} = await import("../db/database.js");
await saveData();
}
@@ -1966,6 +1971,7 @@ export class Environment {
}
this.MUTED_IDS.add(id);
const {saveData} = await import("../db/database.js");
await saveData();
return true;
}
@@ -1976,6 +1982,7 @@ export class Environment {
}
this.MUTED_IDS.delete(id);
const {saveData} = await import("../db/database.js");
await saveData();
return true;
}
+1 -1
View File
@@ -1,7 +1,7 @@
import {AsyncLocalStorage} from "node:async_hooks";
import fs from "node:fs";
import path from "node:path";
import {appLogger} from "../logging/logger";
import {appLogger} from "../logging/logger.js";
const logger = appLogger.child("localization");