openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
28 lines (27 loc) • 1.39 kB
JavaScript
import { a as asOptionalRecord } from "./record-coerce-DItp3I4t.js";
import { l as normalizeOptionalString } from "./string-coerce-CIXf7egm.js";
//#region src/agents/accepted-session-spawn.ts
/** Normalizes accepted child-session spawn results from loose tool payloads. */
/** Normalize a tool result that accepted a child session spawn. */
function normalizeAcceptedSessionSpawnResult(result) {
const details = asOptionalRecord(asOptionalRecord(result)?.details);
if (!details || details.status !== "accepted") return null;
const runId = normalizeOptionalString(details.runId);
const childSessionKey = normalizeOptionalString(details.childSessionKey);
if (!runId || !childSessionKey) return null;
return {
runId,
childSessionKey,
expectsCompletionMessage: details.expectsCompletionMessage === true
};
}
/** Return true when a collection contains at least one accepted child spawn. */
function hasAcceptedSessionSpawn(acceptedSessionSpawns) {
return Boolean(acceptedSessionSpawns?.length);
}
/** Return true when an accepted child owns the requester's terminal completion. */
function hasCompletionMessageSessionSpawn(acceptedSessionSpawns) {
return acceptedSessionSpawns?.some((spawn) => spawn.expectsCompletionMessage === true) === true;
}
//#endregion
export { hasCompletionMessageSessionSpawn as n, normalizeAcceptedSessionSpawnResult as r, hasAcceptedSessionSpawn as t };