openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
36 lines (35 loc) • 1.64 kB
JavaScript
import { l as normalizeOptionalString } from "./string-coerce-1VuiLaaR.mjs";
import { t as ErrorCodes } from "./gateway-error-details-DIefe7Zy.mjs";
import { f as errorShape } from "./error-codes-Dh56LniQ.mjs";
//#region src/gateway/server-json.ts
/** Safely parses an optional JSON string, returning a payloadJSON wrapper on parse failure. */
function parseGatewayPayload(value) {
const trimmed = normalizeOptionalString(value);
if (!trimmed) return;
try {
return JSON.parse(trimmed);
} catch {
return { payloadJSON: value };
}
}
//#endregion
//#region src/gateway/server-methods/nodes.helpers.ts
/** Narrows successful node invoke results or responds with the node error details. */
function respondUnavailableOnNodeInvokeError(respond, res) {
return respondUnavailableOnNodeInvokeErrorWithProvenance(respond, res);
}
function respondUnavailableOnNodeInvokeErrorWithProvenance(respond, res, provenance) {
if (res.ok) return true;
const nodeError = res.error && typeof res.error === "object" ? res.error : null;
const nodeCode = normalizeOptionalString(nodeError?.code) ?? "";
const nodeMessage = normalizeOptionalString(nodeError?.message) ?? "node invoke failed";
const message = nodeCode ? `${nodeCode}: ${nodeMessage}` : nodeMessage;
const details = {
nodeError: res.error ?? null,
...provenance ? { nodeCommandDispatched: provenance.nodeCommandDispatched } : {}
};
respond(false, void 0, errorShape(ErrorCodes.UNAVAILABLE, message, { details }));
return false;
}
//#endregion
export { respondUnavailableOnNodeInvokeErrorWithProvenance as n, parseGatewayPayload as r, respondUnavailableOnNodeInvokeError as t };