Files
openclaw/src/tasks/detached-task-runtime-state.ts
2026-05-01 06:55:26 +01:00

52 lines
1.5 KiB
TypeScript

import type {
DetachedTaskLifecycleRuntime,
DetachedTaskLifecycleRuntimeRegistration,
} from "./detached-task-runtime-contract.js";
export type { DetachedTaskLifecycleRuntime, DetachedTaskLifecycleRuntimeRegistration };
let detachedTaskLifecycleRuntimeRegistration: DetachedTaskLifecycleRuntimeRegistration | undefined;
export function registerDetachedTaskLifecycleRuntime(
pluginId: string,
runtime: DetachedTaskLifecycleRuntime,
): void {
detachedTaskLifecycleRuntimeRegistration = {
pluginId,
runtime,
};
}
export function getDetachedTaskLifecycleRuntimeRegistration():
| DetachedTaskLifecycleRuntimeRegistration
| undefined {
if (!detachedTaskLifecycleRuntimeRegistration) {
return undefined;
}
return {
pluginId: detachedTaskLifecycleRuntimeRegistration.pluginId,
runtime: detachedTaskLifecycleRuntimeRegistration.runtime,
};
}
export function getRegisteredDetachedTaskLifecycleRuntime():
| DetachedTaskLifecycleRuntime
| undefined {
return detachedTaskLifecycleRuntimeRegistration?.runtime;
}
export function restoreDetachedTaskLifecycleRuntimeRegistration(
registration: DetachedTaskLifecycleRuntimeRegistration | undefined,
): void {
detachedTaskLifecycleRuntimeRegistration = registration
? {
pluginId: registration.pluginId,
runtime: registration.runtime,
}
: undefined;
}
export function clearDetachedTaskLifecycleRuntimeRegistration(): void {
detachedTaskLifecycleRuntimeRegistration = undefined;
}