MCPcopy Index your code
hub / github.com/CodebuffAI/codebuff / handleSpawnAgentsToolCall

Function handleSpawnAgentsToolCall

cli/src/utils/sdk-event-handlers.ts:260–301  ·  view source on GitHub ↗
(
  state: EventHandlerState,
  event: PrintModeToolCall,
)

Source from the content-addressed store, hash-verified

258}
259
260const handleSpawnAgentsToolCall = (
261 state: EventHandlerState,
262 event: PrintModeToolCall,
263) => {
264 const agents = Array.isArray(event.input?.agents) ? event.input?.agents : []
265
266 agents.forEach((agent: any, index: number) => {
267 const tempAgentId = `${event.toolCallId}-${index}`
268 state.streaming.streamRefs.setters.setSpawnAgentInfo(tempAgentId, {
269 index,
270 agentType: agent.agent_type || 'unknown',
271 })
272 })
273
274 state.message.updater.updateAiMessageBlocks((blocks) => {
275 // Look up the parent agent's type if there's a parent agent ID
276 const parentAgentType = event.agentId
277 ? findAgentTypeById(blocks, event.agentId)
278 : undefined
279
280 const newAgentBlocks: ContentBlock[] = agents
281 .map((agent: any, originalIndex: number) => ({ agent, originalIndex }))
282 .filter(({ agent }) => !shouldHideAgent(agent.agent_type || ''))
283 .map(({ agent, originalIndex }) =>
284 createAgentBlock({
285 agentId: `${event.toolCallId}-${originalIndex}`,
286 agentType: agent.agent_type || '',
287 prompt: agent.prompt,
288 params: agent.params,
289 spawnToolCallId: event.toolCallId,
290 spawnIndex: originalIndex,
291 parentAgentType,
292 }),
293 )
294
295 return [...blocks, ...newAgentBlocks]
296 })
297
298 agents.forEach((_: any, index: number) => {
299 updateStreamingAgents(state, { add: `${event.toolCallId}-${index}` })
300 })
301}
302
303const handleRegularToolCall = (
304 state: EventHandlerState,

Callers 1

handleToolCallFunction · 0.85

Calls 4

findAgentTypeByIdFunction · 0.90
shouldHideAgentFunction · 0.90
createAgentBlockFunction · 0.90
updateStreamingAgentsFunction · 0.85

Tested by

no test coverage detected