MCPcopy Index your code
hub / github.com/codeaashu/claude-code / userMessageToMessageParam

Function userMessageToMessageParam

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

Source from the content-addressed store, hash-verified

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

Callers 1

addCacheBreakpointsFunction · 0.85

Calls 1

getCacheControlFunction · 0.85

Tested by

no test coverage detected