File size: 1,099 Bytes
eb3f11e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import "./context-engine-maintenance.js";

type DeferredTurnMaintenanceProcessLike = Pick<NodeJS.Process, "on" | "off"> &
  Partial<Pick<NodeJS.Process, "listenerCount" | "kill" | "pid">> & {
    [key: symbol]: unknown;
  };

type ContextEngineMaintenanceTestApi = {
  createDeferredTurnMaintenanceAbortSignal(params?: {
    processLike?: DeferredTurnMaintenanceProcessLike;
  }): {
    abortSignal?: AbortSignal;
    dispose: () => void;
  };
  resetDeferredTurnMaintenanceStateForTest(): void;
};

function getTestApi(): ContextEngineMaintenanceTestApi {
  return (globalThis as Record<PropertyKey, unknown>)[
    Symbol.for("openclaw.contextEngineMaintenanceTestApi")
  ] as ContextEngineMaintenanceTestApi;
}

export function createDeferredTurnMaintenanceAbortSignal(params?: {
  processLike?: DeferredTurnMaintenanceProcessLike;
}): {
  abortSignal?: AbortSignal;
  dispose: () => void;
} {
  return getTestApi().createDeferredTurnMaintenanceAbortSignal(params);
}

export function resetDeferredTurnMaintenanceStateForTest(): void {
  getTestApi().resetDeferredTurnMaintenanceStateForTest();
}