( item: Record<string, unknown>, )
| 297 | } |
| 298 | |
| 299 | export function parseCollabToolCallItem( |
| 300 | item: Record<string, unknown>, |
| 301 | ): Extract<ConversationItem, { kind: "tool" }> { |
| 302 | const tool = asString(item.tool ?? ""); |
| 303 | const status = asString(item.status ?? ""); |
| 304 | const senderThreadId = asString(item.senderThreadId ?? item.sender_thread_id ?? ""); |
| 305 | const sender = buildCollabAgentRef( |
| 306 | senderThreadId, |
| 307 | item.senderAgentNickname ?? |
| 308 | item.sender_agent_nickname ?? |
| 309 | item.agentNickname ?? |
| 310 | item.agent_nickname, |
| 311 | item.senderAgentRole ?? |
| 312 | item.sender_agent_role ?? |
| 313 | item.agentRole ?? |
| 314 | item.agent_role ?? |
| 315 | item.agentType ?? |
| 316 | item.agent_type, |
| 317 | ); |
| 318 | const receiverFromInteraction = buildCollabAgentRef( |
| 319 | item.receiverThreadId ?? item.receiver_thread_id, |
| 320 | item.receiverAgentNickname ?? item.receiver_agent_nickname, |
| 321 | item.receiverAgentRole ?? |
| 322 | item.receiver_agent_role ?? |
| 323 | item.receiverAgentType ?? |
| 324 | item.receiver_agent_type, |
| 325 | ); |
| 326 | const receiverFromSpawn = buildCollabAgentRef( |
| 327 | item.newThreadId ?? item.new_thread_id, |
| 328 | item.newAgentNickname ?? item.new_agent_nickname, |
| 329 | item.newAgentRole ?? item.new_agent_role ?? item.newAgentType ?? item.new_agent_type, |
| 330 | ); |
| 331 | const receiverIds = [ |
| 332 | ...normalizeStringList(item.receiverThreadId ?? item.receiver_thread_id), |
| 333 | ...normalizeStringList(item.receiverThreadIds ?? item.receiver_thread_ids), |
| 334 | ...normalizeStringList(item.newThreadId ?? item.new_thread_id), |
| 335 | ] |
| 336 | .map((entry) => buildCollabAgentRef(entry)) |
| 337 | .filter((entry): entry is CollabAgentRef => Boolean(entry)); |
| 338 | const receiverAgents = mergeCollabAgentRefs( |
| 339 | receiverIds, |
| 340 | parseCollabAgentRefs(item.receiverAgents ?? item.receiver_agents), |
| 341 | receiverFromInteraction ? [receiverFromInteraction] : [], |
| 342 | receiverFromSpawn ? [receiverFromSpawn] : [], |
| 343 | ); |
| 344 | const collabStatuses = withCollabAgentMetadata( |
| 345 | mergeCollabAgentStatuses( |
| 346 | parseCollabAgentStatuses(item.agentStatuses ?? item.agent_statuses), |
| 347 | parseCollabAgentStatusesFromMap(item.statuses), |
| 348 | parseCollabAgentStatusesFromMap( |
| 349 | item.agentStatus ?? item.agentsStates ?? item.agents_states, |
| 350 | ), |
| 351 | ), |
| 352 | receiverAgents, |
| 353 | ); |
| 354 | const prompt = asString(item.prompt ?? ""); |
| 355 | const primaryReceiver = receiverFromInteraction ?? receiverFromSpawn ?? receiverAgents[0]; |
| 356 | return { |
no test coverage detected