Files
openclaw/src/plugin-sdk/provider-stream-shared.ts
2026-04-05 11:19:05 +01:00

41 lines
1.3 KiB
TypeScript

import type { StreamFn } from "@mariozechner/pi-agent-core";
export type ProviderStreamWrapperFactory =
| ((streamFn: StreamFn | undefined) => StreamFn | undefined)
| null
| undefined
| false;
export function composeProviderStreamWrappers(
baseStreamFn: StreamFn | undefined,
...wrappers: ProviderStreamWrapperFactory[]
): StreamFn | undefined {
return wrappers.reduce(
(streamFn, wrapper) => (wrapper ? wrapper(streamFn) : streamFn),
baseStreamFn,
);
}
export {
applyAnthropicPayloadPolicyToParams,
resolveAnthropicPayloadPolicy,
} from "../agents/anthropic-payload-policy.js";
export {
buildCopilotDynamicHeaders,
hasCopilotVisionInput,
} from "../agents/copilot-dynamic-headers.js";
export { applyAnthropicEphemeralCacheControlMarkers } from "../agents/pi-embedded-runner/anthropic-cache-control-payload.js";
export {
createBedrockNoCacheWrapper,
isAnthropicBedrockModel,
} from "../agents/pi-embedded-runner/bedrock-stream-wrappers.js";
export {
createMoonshotThinkingWrapper,
resolveMoonshotThinkingType,
} from "../agents/pi-embedded-runner/moonshot-thinking-stream-wrappers.js";
export { streamWithPayloadPatch } from "../agents/pi-embedded-runner/stream-payload-utils.js";
export {
createToolStreamWrapper,
createZaiToolStreamWrapper,
} from "../agents/pi-embedded-runner/zai-stream-wrappers.js";