openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
31 lines (30 loc) • 2.26 kB
JavaScript
import { c as normalizeOptionalLowercaseString, o as normalizeLowercaseStringOrEmpty } from "./string-coerce-1VuiLaaR.mjs";
//#region src/llm/providers/stream-wrappers/anthropic-family-cache-semantics.ts
function isAnthropicModelRef(modelId) {
return normalizeLowercaseStringOrEmpty(modelId).startsWith("anthropic/");
}
/** Matches Application Inference Profile ARNs across all AWS partitions with Bedrock. */
const BEDROCK_APP_INFERENCE_PROFILE_ARN_RE = /^arn:aws(-cn|-us-gov)?:bedrock:/;
function isAnthropicBedrockModel(modelId) {
const normalized = normalizeLowercaseStringOrEmpty(modelId);
if (normalized.includes("anthropic.claude") || normalized.includes("anthropic/claude")) return true;
if (BEDROCK_APP_INFERENCE_PROFILE_ARN_RE.test(normalized) && normalized.includes(":application-inference-profile/")) return (normalized.split(":application-inference-profile/")[1] ?? "").includes("claude");
return false;
}
function isAnthropicFamilyCacheTtlEligible(params) {
const normalizedProvider = normalizeOptionalLowercaseString(params.provider);
if (normalizedProvider === "anthropic" || normalizedProvider === "anthropic-vertex") return true;
if (normalizedProvider === "amazon-bedrock") return isAnthropicBedrockModel(params.modelId);
return params.modelApi === "anthropic-messages";
}
function resolveAnthropicCacheRetentionFamily(params) {
const normalizedProvider = normalizeOptionalLowercaseString(params.provider);
if (normalizedProvider === "anthropic" || normalizedProvider === "anthropic-vertex") return "anthropic-direct";
if (normalizedProvider === "amazon-bedrock" && params.hasExplicitCacheConfig && typeof params.modelId === "string") {
if (isAnthropicBedrockModel(params.modelId)) return "anthropic-bedrock";
if (BEDROCK_APP_INFERENCE_PROFILE_ARN_RE.test(normalizeLowercaseStringOrEmpty(params.modelId)) && normalizeLowercaseStringOrEmpty(params.modelId).includes(":application-inference-profile/")) return "anthropic-bedrock";
}
if (normalizedProvider !== "amazon-bedrock" && params.hasExplicitCacheConfig && params.modelApi === "anthropic-messages") return "custom-anthropic-api";
}
//#endregion
export { isAnthropicModelRef as n, resolveAnthropicCacheRetentionFamily as r, isAnthropicFamilyCacheTtlEligible as t };