UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

31 lines (30 loc) • 2.26 kB
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 };