21 lines
611 B
TypeScript
21 lines
611 B
TypeScript
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);
|
|
},
|
|
});
|
|
}
|