MCPcopy Create free account
hub / github.com/Noumena-Network/code / userMessageToMessageParam

Function userMessageToMessageParam

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

Source from the content-addressed store, hash-verified

613}
614
615export function userMessageToMessageParam(
616 message: UserMessage,
617 addCache = false,
618 enablePromptCaching: boolean,
619 querySource?: QuerySource,
620): MessageParam {
621 if (addCache) {
622 if (typeof message.message.content === 'string') {
623 return {
624 role: 'user',
625 content: [
626 {
627 type: 'text',
628 text: message.message.content,
629 ...(enablePromptCaching && {
630 cache_control: getCacheControl({ querySource }),
631 }),
632 },
633 ],
634 }
635 } else {
636 return {
637 role: 'user',
638 content: message.message.content.map((_, i) => ({
639 ..._,
640 ...(i === message.message.content.length - 1
641 ? enablePromptCaching
642 ? { cache_control: getCacheControl({ querySource }) }
643 : {}
644 : {}),
645 })),
646 }
647 }
648 }
649 // Clone array content to prevent in-place mutations (e.g., insertCacheEditsBlock's
650 // splice) from contaminating the original message. Without cloning, multiple calls
651 // to addCacheBreakpoints share the same array and each splices in duplicate cache_edits.
652 return {
653 role: 'user',
654 content: Array.isArray(message.message.content)
655 ? [...message.message.content]
656 : message.message.content,
657 }
658}
659
660export function assistantMessageToMessageParam(
661 message: AssistantMessage,

Callers 1

addCacheBreakpointsFunction · 0.85

Calls 1

getCacheControlFunction · 0.85

Tested by

no test coverage detected