MCPcopy
hub / github.com/codeaashu/claude-code / killInProcessTeammate

Function killInProcessTeammate

src/utils/swarm/spawnInProcess.ts:227–328  ·  view source on GitHub ↗
(
  taskId: string,
  setAppState: SetAppStateFn,
)

Source from the content-addressed store, hash-verified

225 * @returns true if killed successfully
226 */
227export function killInProcessTeammate(
228 taskId: string,
229 setAppState: SetAppStateFn,
230): boolean {
231 let killed = false
232 let teamName: string | null = null
233 let agentId: string | null = null
234 let toolUseId: string | undefined
235 let description: string | undefined
236
237 setAppState((prev: AppState) => {
238 const task = prev.tasks[taskId]
239 if (!task || task.type !== 'in_process_teammate') {
240 return prev
241 }
242
243 const teammateTask = task as InProcessTeammateTaskState
244
245 if (teammateTask.status !== 'running') {
246 return prev
247 }
248
249 // Capture identity for cleanup after state update
250 teamName = teammateTask.identity.teamName
251 agentId = teammateTask.identity.agentId
252 toolUseId = teammateTask.toolUseId
253 description = teammateTask.description
254
255 // Abort the controller to stop execution
256 teammateTask.abortController?.abort()
257
258 // Call cleanup handler
259 teammateTask.unregisterCleanup?.()
260
261 // Update task state and remove from teamContext.teammates
262 killed = true
263
264 // Call pending idle callbacks to unblock any waiters (e.g., engine.waitForIdle)
265 teammateTask.onIdleCallbacks?.forEach(cb => cb())
266
267 // Remove from teamContext.teammates using the agentId
268 let updatedTeamContext = prev.teamContext
269 if (prev.teamContext && prev.teamContext.teammates && agentId) {
270 const { [agentId]: _, ...remainingTeammates } = prev.teamContext.teammates
271 updatedTeamContext = {
272 ...prev.teamContext,
273 teammates: remainingTeammates,
274 }
275 }
276
277 return {
278 ...prev,
279 teamContext: updatedTeamContext,
280 tasks: {
281 ...prev.tasks,
282 [taskId]: {
283 ...teammateTask,
284 status: 'killed' as const,

Callers 2

killMethod · 0.85
killFunction · 0.85

Calls 4

removeMemberByAgentIdFunction · 0.85
evictTaskOutputFunction · 0.85
emitTaskTerminatedSdkFunction · 0.85
forEachMethod · 0.80

Tested by

no test coverage detected