openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
59 lines (58 loc) • 2.42 kB
JavaScript
import { o as emitInternalDiagnosticEvent, t as areDiagnosticsEnabledForProcess } from "./diagnostic-events-DT4ejwoa.mjs";
import { t as createSubsystemLogger } from "./subsystem-4NzR43uz.mjs";
import { n as getDiagnosticSessionState } from "./diagnostic-session-state-tX9oTPd5.mjs";
//#region src/logging/diagnostic-runtime.ts
const diagnosticLogger = createSubsystemLogger("diagnostic");
let lastActivityAt = 0;
function markDiagnosticActivity() {
lastActivityAt = Date.now();
}
function getLastDiagnosticActivityAt() {
return lastActivityAt;
}
function resetDiagnosticActivityForTest() {
lastActivityAt = 0;
}
/** Records queue activity while letting internal run owners distinguish steering from backlog. */
function logMessageQueuedWithBacklogPolicy(params, countsTowardBacklog) {
if (!areDiagnosticsEnabledForProcess()) return;
const state = getDiagnosticSessionState(params);
if (countsTowardBacklog) state.queueDepth += 1;
state.lastActivity = Date.now();
state.generation = (state.generation ?? 0) + 1;
state.lastStuckWarnAgeMs = void 0;
state.lastLongRunningWarnAgeMs = void 0;
if (diagnosticLogger.isEnabled("debug")) diagnosticLogger.debug(`message queued: sessionId=${state.sessionId ?? "unknown"} sessionKey=${state.sessionKey ?? "unknown"} source=${params.source} queueDepth=${state.queueDepth} sessionState=${state.state}`);
emitInternalDiagnosticEvent({
type: "message.queued",
sessionId: state.sessionId,
sessionKey: state.sessionKey,
channel: params.channel,
source: params.source,
queueDepth: state.queueDepth
});
markDiagnosticActivity();
}
function logLaneEnqueue(lane, queueSize) {
if (!areDiagnosticsEnabledForProcess()) return;
diagnosticLogger.debug(`lane enqueue: lane=${lane} queueSize=${queueSize}`);
emitInternalDiagnosticEvent({
type: "queue.lane.enqueue",
lane,
queueSize
});
markDiagnosticActivity();
}
function logLaneDequeue(lane, waitMs, queueSize) {
if (!areDiagnosticsEnabledForProcess()) return;
diagnosticLogger.debug(`lane dequeue: lane=${lane} waitMs=${waitMs} queueSize=${queueSize}`);
emitInternalDiagnosticEvent({
type: "queue.lane.dequeue",
lane,
queueSize,
waitMs
});
markDiagnosticActivity();
}
//#endregion
export { logMessageQueuedWithBacklogPolicy as a, logLaneEnqueue as i, getLastDiagnosticActivityAt as n, markDiagnosticActivity as o, logLaneDequeue as r, resetDiagnosticActivityForTest as s, diagnosticLogger as t };