diff --git a/src/main/services/agents/services/claudecode/transform.ts b/src/main/services/agents/services/claudecode/transform.ts index deacc30de6..d5d1185dbb 100644 --- a/src/main/services/agents/services/claudecode/transform.ts +++ b/src/main/services/agents/services/claudecode/transform.ts @@ -3,7 +3,7 @@ import { SDKMessage } from '@anthropic-ai/claude-code' import { MessageParam } from '@anthropic-ai/sdk/resources' import { loggerService } from '@logger' -import { UIMessageChunk } from 'ai' +import { ProviderMetadata, UIMessageChunk } from 'ai' import { v4 as uuidv4 } from 'uuid' const logger = loggerService.withContext('ClaudeCodeTransform') @@ -72,6 +72,13 @@ export function transformSDKMessageToUIChunk(sdkMessage: SDKMessage): UIMessageC return chunks } +function sdkMessageToProviderMetadata(message: SDKMessage): ProviderMetadata { + const meta: ProviderMetadata = { + raw: message as Record + } + return meta +} + // Handle assistant messages function handleAssistantMessage(message: Extract): UIMessageChunk[] { const chunks: UIMessageChunk[] = [] @@ -88,7 +95,8 @@ function handleAssistantMessage(message: Extract): cwd: message.cwd, tools: message.tools, model: message.model, - mcp_servers: message.mcp_servers + mcp_servers: message.mcp_servers, + raw: message } }) } else if (message.subtype === 'compact_boundary') { @@ -285,7 +299,8 @@ function handleSystemMessage(message: Extract): type: 'data-system' as any, data: { type: 'compact_boundary', - metadata: message.compact_metadata + metadata: message.compact_metadata, + raw: message } }) } @@ -310,7 +325,8 @@ function handleResultMessage(message: Extract): uuid: message.uuid, session_id: message.session_id, final_result: true - } + }, + raw: sdkMessageToProviderMetadata(message) } }, { @@ -322,7 +338,8 @@ function handleResultMessage(message: Extract): uuid: message.uuid, session_id: message.session_id, final_result: true - } + }, + raw: sdkMessageToProviderMetadata(message) } }, { @@ -333,7 +350,8 @@ function handleResultMessage(message: Extract): uuid: message.uuid, session_id: message.session_id, final_result: true - } + }, + raw: sdkMessageToProviderMetadata(message) } } )