( state: EventHandlerState, event: PrintModeSubagentStart, )
| 163 | } |
| 164 | |
| 165 | const handleSubagentStart = ( |
| 166 | state: EventHandlerState, |
| 167 | event: PrintModeSubagentStart, |
| 168 | ) => { |
| 169 | if (shouldHideAgent(event.agentType)) { |
| 170 | return |
| 171 | } |
| 172 | |
| 173 | state.subagents.addActiveSubagent(event.agentId) |
| 174 | |
| 175 | const spawnAgentMatch = findMatchingSpawnAgent( |
| 176 | state.streaming.streamRefs.state.spawnAgentsMap, |
| 177 | event.agentType || '', |
| 178 | ) |
| 179 | |
| 180 | if (spawnAgentMatch) { |
| 181 | state.message.updater.updateAiMessageBlocks((blocks) => |
| 182 | resolveSpawnAgentToReal({ |
| 183 | blocks, |
| 184 | match: spawnAgentMatch, |
| 185 | realAgentId: event.agentId, |
| 186 | realAgentType: event.agentType, |
| 187 | parentAgentId: event.parentAgentId, |
| 188 | params: event.params, |
| 189 | prompt: event.prompt, |
| 190 | }), |
| 191 | ) |
| 192 | |
| 193 | updateStreamingAgents(state, { |
| 194 | remove: spawnAgentMatch.tempId, |
| 195 | add: event.agentId, |
| 196 | }) |
| 197 | state.streaming.streamRefs.setters.removeSpawnAgentInfo( |
| 198 | spawnAgentMatch.tempId, |
| 199 | ) |
| 200 | return |
| 201 | } |
| 202 | |
| 203 | state.logger.info( |
| 204 | { |
| 205 | agentId: event.agentId, |
| 206 | agentType: event.agentType, |
| 207 | parentAgentId: event.parentAgentId || 'ROOT', |
| 208 | }, |
| 209 | 'Creating new agent block (no spawn_agents match)', |
| 210 | ) |
| 211 | |
| 212 | state.message.updater.updateAiMessageBlocks((blocks) => { |
| 213 | // Look up the parent agent's type if there's a parent agent ID |
| 214 | const parentAgentType = event.parentAgentId |
| 215 | ? findAgentTypeById(blocks, event.parentAgentId) |
| 216 | : undefined |
| 217 | |
| 218 | const newAgentBlock = createAgentBlock({ |
| 219 | agentId: event.agentId, |
| 220 | agentType: event.agentType || '', |
| 221 | prompt: event.prompt, |
| 222 | params: event.params, |
no test coverage detected