import type { LanguageModelV1Prompt } from "ai"
import { unique } from "remeda"

export namespace ProviderTransform {
  export function message(
    msgs: LanguageModelV1Prompt,
    providerID: string,
    modelID: string,
  ) {
    if (providerID === "anthropic" || modelID.includes("anthropic")) {
      const system = msgs.filter((msg) => msg.role === "system").slice(0, 2)
      const final = msgs.filter((msg) => msg.role !== "system").slice(-2)

      for (const msg of unique([...system, ...final])) {
        msg.providerMetadata = {
          ...msg.providerMetadata,
          anthropic: {
            cacheControl: { type: "ephemeral" },
          },
        }
      }
    }
    return msgs
  }
}
