MCPcopy Create free account
hub / github.com/AnukarOP/claude-code-leaked / userMessageToMessageParam

Function userMessageToMessageParam

source code/services/api/claude.ts:590–633  ·  view source on GitHub ↗
(
  message: UserMessage,
  addCache = false,
  enablePromptCaching: boolean,
  querySource?: QuerySource,
)

Source from the content-addressed store, hash-verified

588}
589
590export function userMessageToMessageParam(
591 message: UserMessage,
592 addCache = false,
593 enablePromptCaching: boolean,
594 querySource?: QuerySource,
595): MessageParam {
596 if (addCache) {
597 if (typeof message.message.content === 'string') {
598 return {
599 role: 'user',
600 content: [
601 {
602 type: 'text',
603 text: message.message.content,
604 ...(enablePromptCaching && {
605 cache_control: getCacheControl({ querySource }),
606 }),
607 },
608 ],
609 }
610 } else {
611 return {
612 role: 'user',
613 content: message.message.content.map((_, i) => ({
614 ..._,
615 ...(i === message.message.content.length - 1
616 ? enablePromptCaching
617 ? { cache_control: getCacheControl({ querySource }) }
618 : {}
619 : {}),
620 })),
621 }
622 }
623 }
624 // Clone array content to prevent in-place mutations (e.g., insertCacheEditsBlock's
625 // splice) from contaminating the original message. Without cloning, multiple calls
626 // to addCacheBreakpoints share the same array and each splices in duplicate cache_edits.
627 return {
628 role: 'user',
629 content: Array.isArray(message.message.content)
630 ? [...message.message.content]
631 : message.message.content,
632 }
633}
634
635export function assistantMessageToMessageParam(
636 message: AssistantMessage,

Callers 1

addCacheBreakpointsFunction · 0.85

Calls 1

getCacheControlFunction · 0.85

Tested by

no test coverage detected