| import type { StreamFn } from "@mariozechner/pi-agent-core"; | |
| export function streamWithPayloadPatch( | |
| underlying: StreamFn, | |
| model: Parameters<StreamFn>[0], | |
| context: Parameters<StreamFn>[1], | |
| options: Parameters<StreamFn>[2], | |
| patchPayload: (payload: Record<string, unknown>) => void, | |
| ) { | |
| const originalOnPayload = options?.onPayload; | |
| return underlying(model, context, { | |
| ...options, | |
| onPayload: (payload) => { | |
| if (payload && typeof payload === "object") { | |
| patchPayload(payload as Record<string, unknown>); | |
| } | |
| return originalOnPayload?.(payload, model); | |
| }, | |
| }); | |
| } | |