MCPcopy Create free account
hub / github.com/anomalyco/opencode / handleToolPart

Method handleToolPart

packages/opencode/src/acp/event.ts:235–279  ·  view source on GitHub ↗
(sessionId: string, part: ToolPart, cwd: string)

Source from the content-addressed store, hash-verified

233 }
234
235 private async handleToolPart(sessionId: string, part: ToolPart, cwd: string) {
236 await this.toolStart(sessionId, part, cwd)
237
238 switch (part.state.status) {
239 case "pending":
240 this.shellSnapshots.delete(part.callID)
241 return
242
243 case "running":
244 await this.runningTool(sessionId, part, cwd)
245 return
246
247 case "completed":
248 this.clearTool(part.callID)
249 await this.input.connection.sessionUpdate({
250 sessionId,
251 update: {
252 sessionUpdate: "tool_call_update",
253 ...completedToolUpdate({
254 toolCallId: part.callID,
255 toolName: part.tool,
256 state: part.state,
257 cwd,
258 }),
259 },
260 })
261 return
262
263 case "error":
264 this.clearTool(part.callID)
265 await this.input.connection.sessionUpdate({
266 sessionId,
267 update: {
268 sessionUpdate: "tool_call_update",
269 ...errorToolUpdate({
270 toolCallId: part.callID,
271 toolName: part.tool,
272 state: part.state,
273 cwd,
274 }),
275 },
276 })
277 return
278 }
279 }
280
281 private async runningTool(sessionId: string, part: ToolPart, cwd: string) {
282 if (part.state.status !== "running") return

Callers 2

replayMessageMethod · 0.95
handlePartUpdatedMethod · 0.95

Calls 6

toolStartMethod · 0.95
runningToolMethod · 0.95
clearToolMethod · 0.95
completedToolUpdateFunction · 0.90
errorToolUpdateFunction · 0.90
deleteMethod · 0.45

Tested by

no test coverage detected