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

Function runToolsConcurrently

src/services/tools/toolOrchestration.ts:152–177  ·  view source on GitHub ↗
(
  toolUseMessages: ToolUseBlock[],
  assistantMessages: AssistantMessage[],
  canUseTool: CanUseToolFn,
  toolUseContext: ToolUseContext,
)

Source from the content-addressed store, hash-verified

150}
151
152async function* runToolsConcurrently(
153 toolUseMessages: ToolUseBlock[],
154 assistantMessages: AssistantMessage[],
155 canUseTool: CanUseToolFn,
156 toolUseContext: ToolUseContext,
157): AsyncGenerator<MessageUpdateLazy, void> {
158 yield* all(
159 toolUseMessages.map(async function* (toolUse) {
160 toolUseContext.setInProgressToolUseIDs(prev =>
161 new Set(prev).add(toolUse.id),
162 )
163 yield* runToolUse(
164 toolUse,
165 assistantMessages.find(_ =>
166 _.message.content.some(
167 _ => _.type === 'tool_use' && _.id === toolUse.id,
168 ),
169 )!,
170 canUseTool,
171 toolUseContext,
172 )
173 markToolUseAsComplete(toolUseContext, toolUse.id)
174 }),
175 getMaxToolUseConcurrency(),
176 )
177}
178
179function markToolUseAsComplete(
180 toolUseContext: ToolUseContext,

Callers 1

runToolsFunction · 0.85

Calls 5

allFunction · 0.85
runToolUseFunction · 0.85
getMaxToolUseConcurrencyFunction · 0.85
markToolUseAsCompleteFunction · 0.70
addMethod · 0.45

Tested by

no test coverage detected