File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -11,6 +11,7 @@ import { patchSessionEntry } from "../../config/sessions/session-accessor.js";
1111import { resolveMaintenanceConfigFromInput } from "../../config/sessions/store-maintenance.js" ;
1212import type { OpenClawConfig } from "../../config/types.openclaw.js" ;
1313import { createLazyImportLoader } from "../../shared/lazy-promise.js" ;
14+ import { resolveNonNegativeNumber } from "../../shared/number-coercion.js" ;
1415import { clearCliSession , setCliSessionBinding , setCliSessionId } from "../cli-session.js" ;
1516import { DEFAULT_CONTEXT_TOKENS } from "../defaults.js" ;
1617import { isCliProvider } from "../model-selection.js" ;
@@ -29,10 +30,6 @@ async function getContextModule() {
2930 return await contextModuleLoader . load ( ) ;
3031}
3132
32- function resolveNonNegativeNumber ( value : number | undefined ) : number | undefined {
33- return typeof value === "number" && Number . isFinite ( value ) && value >= 0 ? value : undefined ;
34- }
35-
3633function resolvePositiveInteger ( value : number | undefined ) : number | undefined {
3734 if ( typeof value !== "number" || ! Number . isFinite ( value ) || value <= 0 ) {
3835 return undefined ;
Original file line number Diff line number Diff line change @@ -18,6 +18,7 @@ import {
1818import { updateSessionEntry } from "../../config/sessions/session-accessor.js" ;
1919import type { OpenClawConfig } from "../../config/types.openclaw.js" ;
2020import { logVerbose } from "../../globals.js" ;
21+ import { resolveNonNegativeNumber } from "../../shared/number-coercion.js" ;
2122import { estimateUsageCost , resolveModelCostConfig } from "../../utils/usage-format.js" ;
2223
2324function applyCliSessionIdToSessionPatch (
@@ -67,10 +68,6 @@ function applyCliSessionIdToSessionPatch(
6768 return patch ;
6869}
6970
70- function resolveNonNegativeNumber ( value : number | undefined ) : number | undefined {
71- return typeof value === "number" && Number . isFinite ( value ) && value >= 0 ? value : undefined ;
72- }
73-
7471function resolveNonNegativeTokenCount ( value : number | undefined ) : number | undefined {
7572 const resolved = resolveNonNegativeNumber ( value ) ;
7673 return resolved === undefined ? undefined : Math . floor ( resolved ) ;
Original file line number Diff line number Diff line change @@ -39,6 +39,7 @@ import { createDiagnosticMessageLifecycle } from "../../logging/message-lifecycl
3939import { isCommandLaneTaskTimeoutError } from "../../process/command-queue.js" ;
4040import { CommandLane } from "../../process/lanes.js" ;
4141import { createLazyImportLoader } from "../../shared/lazy-promise.js" ;
42+ import { resolveNonNegativeNumber } from "../../shared/number-coercion.js" ;
4243import { resolveCronSkillsSnapshot } from "../../skills/runtime/cron-snapshot.js" ;
4344import type { SkillSnapshot } from "../../skills/types.js" ;
4445import {
@@ -175,10 +176,6 @@ function hasConfiguredAuthProfiles(cfg: OpenClawConfig): boolean {
175176 ) ;
176177}
177178
178- function resolveNonNegativeNumber ( value : number | undefined ) : number | undefined {
179- return typeof value === "number" && Number . isFinite ( value ) && value >= 0 ? value : undefined ;
180- }
181-
182179function isCronNestedLaneTaskTimeoutError ( err : unknown ) : boolean {
183180 return isCommandLaneTaskTimeoutError ( err , CommandLane . CronNested ) ;
184181}
Original file line number Diff line number Diff line change @@ -91,6 +91,7 @@ import {
9191 isWorkspaceRelativeAvatarPath ,
9292 resolveAvatarMime ,
9393} from "../shared/avatar-policy.js" ;
94+ import { resolveNonNegativeNumber } from "../shared/number-coercion.js" ;
9495import { normalizeSessionDeliveryFields } from "../utils/delivery-context.shared.js" ;
9596import type { ModelCostConfig } from "../utils/usage-format.js" ;
9697import { estimateUsageCost , resolveModelCostConfig } from "../utils/usage-format.js" ;
@@ -274,10 +275,6 @@ function resolvePositiveNumber(value: number | null | undefined): number | undef
274275 return typeof value === "number" && Number . isFinite ( value ) && value > 0 ? value : undefined ;
275276}
276277
277- function resolveNonNegativeNumber ( value : number | null | undefined ) : number | undefined {
278- return typeof value === "number" && Number . isFinite ( value ) && value >= 0 ? value : undefined ;
279- }
280-
281278type SessionCompactionCheckpointEntry = NonNullable < SessionEntry [ "compactionCheckpoints" ] > [ number ] ;
282279
283280function isProjectableCompactionCheckpoint (
Original file line number Diff line number Diff line change 11/** Shared numeric coercion facade for legacy imports inside core. */
22export * from "@openclaw/normalization-core/number-coercion" ;
3+
4+ export function resolveNonNegativeNumber ( value : number | null | undefined ) : number | undefined {
5+ return typeof value === "number" && Number . isFinite ( value ) && value >= 0 ? value : undefined ;
6+ }
You can’t perform that action at this time.
0 commit comments