refactor(providers): share anthropic tool payload helper

This commit is contained in:
Vincent Koc
2026-04-04 11:30:05 +09:00
parent 87885b948a
commit e273753d45
4 changed files with 20 additions and 11 deletions

View File

@@ -54,7 +54,10 @@ import {
resolveExtraParams,
resolvePreparedExtraParams,
} from "./pi-embedded-runner.js";
import { createAnthropicToolPayloadCompatibilityWrapper } from "./pi-embedded-runner/anthropic-family-tool-payload-compat.js";
import {
createAnthropicToolPayloadCompatibilityWrapper,
createOpenAIAnthropicToolPayloadCompatibilityWrapper,
} from "./pi-embedded-runner/anthropic-family-tool-payload-compat.js";
import {
createBedrockNoCacheWrapper,
isAnthropicBedrockModel,
@@ -162,10 +165,7 @@ beforeEach(() => {
);
}
if (params.provider === "kimi") {
return createAnthropicToolPayloadCompatibilityWrapper(params.context.streamFn, {
toolSchemaMode: "openai-functions",
toolChoiceMode: "openai-string-modes",
});
return createOpenAIAnthropicToolPayloadCompatibilityWrapper(params.context.streamFn);
}
if (params.provider === "minimax" || params.provider === "minimax-portal") {
return createMinimaxFastModeWrapper(

View File

@@ -158,3 +158,12 @@ export function createAnthropicToolPayloadCompatibilityWrapper(
});
};
}
export function createOpenAIAnthropicToolPayloadCompatibilityWrapper(
baseStreamFn: StreamFn | undefined,
): StreamFn {
return createAnthropicToolPayloadCompatibilityWrapper(baseStreamFn, {
toolSchemaMode: "openai-functions",
toolChoiceMode: "openai-string-modes",
});
}

View File

@@ -27,7 +27,10 @@ export {
hasCopilotVisionInput,
} from "../agents/copilot-dynamic-headers.js";
export { applyAnthropicEphemeralCacheControlMarkers } from "../agents/pi-embedded-runner/anthropic-cache-control-payload.js";
export { createAnthropicToolPayloadCompatibilityWrapper } from "../agents/pi-embedded-runner/anthropic-family-tool-payload-compat.js";
export {
createAnthropicToolPayloadCompatibilityWrapper,
createOpenAIAnthropicToolPayloadCompatibilityWrapper,
} from "../agents/pi-embedded-runner/anthropic-family-tool-payload-compat.js";
export {
createBedrockNoCacheWrapper,
isAnthropicBedrockModel,