mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 05:20:43 +00:00
* fix commitments safety and coverage * Repair commitments safety PR review blockers * fix(clawsweeper): address review for automerge-openclaw-openclaw-75302 (1) * Repair commitments safety PR review blocker --------- Co-authored-by: clawsweeper-repair <clawsweeper-repair@users.noreply.github.com>
52 lines
1.9 KiB
TypeScript
52 lines
1.9 KiB
TypeScript
import { resolveUserTimezone } from "../agents/date-time.js";
|
|
import type { OpenClawConfig } from "../config/config.js";
|
|
|
|
export const DEFAULT_COMMITMENT_EXTRACTION_DEBOUNCE_MS = 15_000;
|
|
export const DEFAULT_COMMITMENT_BATCH_MAX_ITEMS = 8;
|
|
export const DEFAULT_COMMITMENT_EXTRACTION_QUEUE_MAX_ITEMS = 64;
|
|
export const DEFAULT_COMMITMENT_CONFIDENCE_THRESHOLD = 0.72;
|
|
export const DEFAULT_COMMITMENT_CARE_CONFIDENCE_THRESHOLD = 0.86;
|
|
export const DEFAULT_COMMITMENT_EXTRACTION_TIMEOUT_SECONDS = 45;
|
|
export const DEFAULT_COMMITMENT_MAX_PER_HEARTBEAT = 3;
|
|
export const DEFAULT_COMMITMENT_EXPIRE_AFTER_HOURS = 72;
|
|
export const DEFAULT_COMMITMENT_MAX_PER_DAY = 3;
|
|
|
|
export type ResolvedCommitmentsConfig = {
|
|
enabled: boolean;
|
|
maxPerDay: number;
|
|
extraction: {
|
|
debounceMs: number;
|
|
batchMaxItems: number;
|
|
queueMaxItems: number;
|
|
confidenceThreshold: number;
|
|
careConfidenceThreshold: number;
|
|
timeoutSeconds: number;
|
|
};
|
|
};
|
|
|
|
function positiveInt(value: unknown, fallback: number): number {
|
|
return typeof value === "number" && Number.isFinite(value) && value > 0
|
|
? Math.floor(value)
|
|
: fallback;
|
|
}
|
|
|
|
export function resolveCommitmentsConfig(cfg?: OpenClawConfig): ResolvedCommitmentsConfig {
|
|
const raw = cfg?.commitments;
|
|
return {
|
|
enabled: raw?.enabled === true,
|
|
maxPerDay: positiveInt(raw?.maxPerDay, DEFAULT_COMMITMENT_MAX_PER_DAY),
|
|
extraction: {
|
|
debounceMs: DEFAULT_COMMITMENT_EXTRACTION_DEBOUNCE_MS,
|
|
batchMaxItems: DEFAULT_COMMITMENT_BATCH_MAX_ITEMS,
|
|
queueMaxItems: DEFAULT_COMMITMENT_EXTRACTION_QUEUE_MAX_ITEMS,
|
|
confidenceThreshold: DEFAULT_COMMITMENT_CONFIDENCE_THRESHOLD,
|
|
careConfidenceThreshold: DEFAULT_COMMITMENT_CARE_CONFIDENCE_THRESHOLD,
|
|
timeoutSeconds: DEFAULT_COMMITMENT_EXTRACTION_TIMEOUT_SECONDS,
|
|
},
|
|
};
|
|
}
|
|
|
|
export function resolveCommitmentTimezone(cfg?: OpenClawConfig): string {
|
|
return resolveUserTimezone(cfg?.agents?.defaults?.userTimezone);
|
|
}
|