openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
24 lines (23 loc) • 1.68 kB
JavaScript
import { r as supportsCurrentWorkerLaunch } from "./worker-build-identity-DrkJakIz.mjs";
//#region src/gateway/worker-environments/placement-target.ts
function matchesWorkerPlacementTarget(current, expected) {
return current?.state === expected?.state && current?.generation === expected?.generation && current?.environmentId === expected?.environmentId && current?.activeOwnerEpoch === expected?.activeOwnerEpoch;
}
function isExactAttachedEnvironment(environment, placement) {
return Boolean(environment && environment.environmentId === placement.environmentId && environment.state === "attached" && environment.destroyRequestedAtMs === null && environment.ownerEpoch === placement.activeOwnerEpoch && environment.attachedSessionIds.length === 1 && environment.attachedSessionIds[0] === placement.sessionId);
}
function isCurrentActiveWorkerEnvironment(placement, environment) {
return isExactAttachedEnvironment(environment, placement) && environment?.bootstrapReceipt?.bundleHash === placement.workerBundleHash && supportsCurrentWorkerLaunch(environment?.bootstrapReceipt);
}
function isFailedWorkerPlacementEnvironmentGone(params) {
if (params.placement.environmentId === null) return true;
if (!params.environmentService) return false;
try {
const environment = params.environmentService.get(params.placement.environmentId);
return environment === void 0 || environment.state === "destroyed" || environment.state === "failed" && environment.leaseId === null;
} catch {
return false;
}
}
//#endregion
export { matchesWorkerPlacementTarget as i, isExactAttachedEnvironment as n, isFailedWorkerPlacementEnvironmentGone as r, isCurrentActiveWorkerEnvironment as t };