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

Function stripToolReferenceBlocksFromUserMessage

src/utils/messages.ts:1677–1730  ·  view source on GitHub ↗
(
  message: UserMessage,
)

Source from the content-addressed store, hash-verified

1675 * When tool search is disabled, we need to remove these blocks to avoid API errors.
1676 */
1677export function stripToolReferenceBlocksFromUserMessage(
1678 message: UserMessage,
1679): UserMessage {
1680 const content = message.message.content
1681 if (!Array.isArray(content)) {
1682 return message
1683 }
1684
1685 const hasToolReference = content.some(
1686 block =>
1687 block.type === 'tool_result' &&
1688 Array.isArray(block.content) &&
1689 block.content.some(isToolReferenceBlock),
1690 )
1691
1692 if (!hasToolReference) {
1693 return message
1694 }
1695
1696 return {
1697 ...message,
1698 message: {
1699 ...message.message,
1700 content: content.map(block => {
1701 if (block.type !== 'tool_result' || !Array.isArray(block.content)) {
1702 return block
1703 }
1704
1705 // Filter out tool_reference blocks from tool_result content
1706 const filteredContent = block.content.filter(
1707 c => !isToolReferenceBlock(c),
1708 )
1709
1710 // If all content was tool_reference blocks, replace with a placeholder
1711 if (filteredContent.length === 0) {
1712 return {
1713 ...block,
1714 content: [
1715 {
1716 type: 'text' as const,
1717 text: '[Tool references removed - tool search not enabled]',
1718 },
1719 ],
1720 }
1721 }
1722
1723 return {
1724 ...block,
1725 content: filteredContent,
1726 }
1727 }),
1728 },
1729 }
1730}
1731
1732/**
1733 * Strips the 'caller' field from tool_use blocks in an assistant message.

Callers 2

normalizeMessagesForAPIFunction · 0.85
queryModelFunction · 0.85

Calls 1

isToolReferenceBlockFunction · 0.85

Tested by

no test coverage detected