fix: normalize node invoke result payloadJSON

This commit is contained in:
Peter Steinberger
2026-01-21 04:17:31 +00:00
parent e97b4973bb
commit db88378ae3
2 changed files with 72 additions and 2 deletions

View File

@@ -38,6 +38,24 @@ function isNodeEntry(entry: { role?: string; roles?: string[] }) {
return false;
}
function normalizeNodeInvokeResultParams(params: unknown): unknown {
if (!params || typeof params !== "object") return params;
const raw = params as Record<string, unknown>;
const normalized: Record<string, unknown> = { ...raw };
if (normalized.payloadJSON === null) {
delete normalized.payloadJSON;
} else if (normalized.payloadJSON !== undefined && typeof normalized.payloadJSON !== "string") {
if (normalized.payload === undefined) {
normalized.payload = normalized.payloadJSON;
}
delete normalized.payloadJSON;
}
if (normalized.error === null) {
delete normalized.error;
}
return normalized;
}
export const nodeHandlers: GatewayRequestHandlers = {
"node.pair.request": async ({ params, respond, context }) => {
if (!validateNodePairRequestParams(params)) {
@@ -417,7 +435,8 @@ export const nodeHandlers: GatewayRequestHandlers = {
});
},
"node.invoke.result": async ({ params, respond, context, client }) => {
if (!validateNodeInvokeResultParams(params)) {
const normalizedParams = normalizeNodeInvokeResultParams(params);
if (!validateNodeInvokeResultParams(normalizedParams)) {
respondInvalidParams({
respond,
method: "node.invoke.result",
@@ -425,7 +444,7 @@ export const nodeHandlers: GatewayRequestHandlers = {
});
return;
}
const p = params as {
const p = normalizedParams as {
id: string;
nodeId: string;
ok: boolean;