mirror of
https://github.com/openclaw/openclaw.git
synced 2026-06-24 17:59:32 +00:00
refactor(numbers): share non-negative finite guard
This commit is contained in:
@@ -11,6 +11,7 @@ import { patchSessionEntry } from "../../config/sessions/session-accessor.js";
|
||||
import { resolveMaintenanceConfigFromInput } from "../../config/sessions/store-maintenance.js";
|
||||
import type { OpenClawConfig } from "../../config/types.openclaw.js";
|
||||
import { createLazyImportLoader } from "../../shared/lazy-promise.js";
|
||||
import { resolveNonNegativeNumber } from "../../shared/number-coercion.js";
|
||||
import { clearCliSession, setCliSessionBinding, setCliSessionId } from "../cli-session.js";
|
||||
import { DEFAULT_CONTEXT_TOKENS } from "../defaults.js";
|
||||
import { isCliProvider } from "../model-selection.js";
|
||||
@@ -29,10 +30,6 @@ async function getContextModule() {
|
||||
return await contextModuleLoader.load();
|
||||
}
|
||||
|
||||
function resolveNonNegativeNumber(value: number | undefined): number | undefined {
|
||||
return typeof value === "number" && Number.isFinite(value) && value >= 0 ? value : undefined;
|
||||
}
|
||||
|
||||
function resolvePositiveInteger(value: number | undefined): number | undefined {
|
||||
if (typeof value !== "number" || !Number.isFinite(value) || value <= 0) {
|
||||
return undefined;
|
||||
|
||||
@@ -18,6 +18,7 @@ import {
|
||||
import { updateSessionEntry } from "../../config/sessions/session-accessor.js";
|
||||
import type { OpenClawConfig } from "../../config/types.openclaw.js";
|
||||
import { logVerbose } from "../../globals.js";
|
||||
import { resolveNonNegativeNumber } from "../../shared/number-coercion.js";
|
||||
import { estimateUsageCost, resolveModelCostConfig } from "../../utils/usage-format.js";
|
||||
|
||||
function applyCliSessionIdToSessionPatch(
|
||||
@@ -67,10 +68,6 @@ function applyCliSessionIdToSessionPatch(
|
||||
return patch;
|
||||
}
|
||||
|
||||
function resolveNonNegativeNumber(value: number | undefined): number | undefined {
|
||||
return typeof value === "number" && Number.isFinite(value) && value >= 0 ? value : undefined;
|
||||
}
|
||||
|
||||
function resolveNonNegativeTokenCount(value: number | undefined): number | undefined {
|
||||
const resolved = resolveNonNegativeNumber(value);
|
||||
return resolved === undefined ? undefined : Math.floor(resolved);
|
||||
|
||||
@@ -39,6 +39,7 @@ import { createDiagnosticMessageLifecycle } from "../../logging/message-lifecycl
|
||||
import { isCommandLaneTaskTimeoutError } from "../../process/command-queue.js";
|
||||
import { CommandLane } from "../../process/lanes.js";
|
||||
import { createLazyImportLoader } from "../../shared/lazy-promise.js";
|
||||
import { resolveNonNegativeNumber } from "../../shared/number-coercion.js";
|
||||
import { resolveCronSkillsSnapshot } from "../../skills/runtime/cron-snapshot.js";
|
||||
import type { SkillSnapshot } from "../../skills/types.js";
|
||||
import {
|
||||
@@ -175,10 +176,6 @@ function hasConfiguredAuthProfiles(cfg: OpenClawConfig): boolean {
|
||||
);
|
||||
}
|
||||
|
||||
function resolveNonNegativeNumber(value: number | undefined): number | undefined {
|
||||
return typeof value === "number" && Number.isFinite(value) && value >= 0 ? value : undefined;
|
||||
}
|
||||
|
||||
function isCronNestedLaneTaskTimeoutError(err: unknown): boolean {
|
||||
return isCommandLaneTaskTimeoutError(err, CommandLane.CronNested);
|
||||
}
|
||||
|
||||
@@ -91,6 +91,7 @@ import {
|
||||
isWorkspaceRelativeAvatarPath,
|
||||
resolveAvatarMime,
|
||||
} from "../shared/avatar-policy.js";
|
||||
import { resolveNonNegativeNumber } from "../shared/number-coercion.js";
|
||||
import { normalizeSessionDeliveryFields } from "../utils/delivery-context.shared.js";
|
||||
import type { ModelCostConfig } from "../utils/usage-format.js";
|
||||
import { estimateUsageCost, resolveModelCostConfig } from "../utils/usage-format.js";
|
||||
@@ -274,10 +275,6 @@ function resolvePositiveNumber(value: number | null | undefined): number | undef
|
||||
return typeof value === "number" && Number.isFinite(value) && value > 0 ? value : undefined;
|
||||
}
|
||||
|
||||
function resolveNonNegativeNumber(value: number | null | undefined): number | undefined {
|
||||
return typeof value === "number" && Number.isFinite(value) && value >= 0 ? value : undefined;
|
||||
}
|
||||
|
||||
type SessionCompactionCheckpointEntry = NonNullable<SessionEntry["compactionCheckpoints"]>[number];
|
||||
|
||||
function isProjectableCompactionCheckpoint(
|
||||
|
||||
@@ -1,2 +1,6 @@
|
||||
/** Shared numeric coercion facade for legacy imports inside core. */
|
||||
export * from "@openclaw/normalization-core/number-coercion";
|
||||
|
||||
export function resolveNonNegativeNumber(value: number | null | undefined): number | undefined {
|
||||
return typeof value === "number" && Number.isFinite(value) && value >= 0 ? value : undefined;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user