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, ); } // Public stream-wrapper helpers for provider plugins. 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 { createAnthropicToolPayloadCompatibilityWrapper, createOpenAIAnthropicToolPayloadCompatibilityWrapper, } from "../agents/pi-embedded-runner/anthropic-family-tool-payload-compat.js"; export { createBedrockNoCacheWrapper, isAnthropicBedrockModel, } from "../agents/pi-embedded-runner/bedrock-stream-wrappers.js"; export { createGoogleThinkingPayloadWrapper, sanitizeGoogleThinkingPayload, } from "../agents/pi-embedded-runner/google-stream-wrappers.js"; export { createMinimaxFastModeWrapper } from "../agents/pi-embedded-runner/minimax-stream-wrappers.js"; export { createKilocodeWrapper, createOpenRouterSystemCacheWrapper, createOpenRouterWrapper, isProxyReasoningUnsupported, } from "../agents/pi-embedded-runner/proxy-stream-wrappers.js"; export { createMoonshotThinkingWrapper, resolveMoonshotThinkingType, } from "../agents/pi-embedded-runner/moonshot-thinking-stream-wrappers.js"; export { createOpenAIAttributionHeadersWrapper, createCodexNativeWebSearchWrapper, createOpenAIDefaultTransportWrapper, createOpenAIFastModeWrapper, createOpenAIReasoningCompatibilityWrapper, createOpenAIResponsesContextManagementWrapper, createOpenAIServiceTierWrapper, createOpenAITextVerbosityWrapper, resolveOpenAIFastMode, resolveOpenAIServiceTier, resolveOpenAITextVerbosity, } from "../agents/pi-embedded-runner/openai-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"; export { getOpenRouterModelCapabilities, loadOpenRouterModelCapabilities, } from "../agents/pi-embedded-runner/openrouter-model-capabilities.js";