feat(opencode): trace tool execution spans (#22531)

This commit is contained in:
Kit Langton
2026-04-15 10:49:47 -04:00
committed by GitHub
parent be9432a893
commit 685d79e953

View File

@@ -80,8 +80,14 @@ export namespace Tool {
Effect.gen(function* () {
const toolInfo = init instanceof Function ? { ...(yield* init()) } : { ...init }
const execute = toolInfo.execute
toolInfo.execute = (args, ctx) =>
Effect.gen(function* () {
toolInfo.execute = (args, ctx) => {
const attrs = {
"tool.name": id,
"session.id": ctx.sessionID,
"message.id": ctx.messageID,
...(ctx.callID ? { "tool.call_id": ctx.callID } : {}),
}
return Effect.gen(function* () {
yield* Effect.try({
try: () => toolInfo.parameters.parse(args),
catch: (error) => {
@@ -109,7 +115,8 @@ export namespace Tool {
...(truncated.truncated && { outputPath: truncated.outputPath }),
},
}
}).pipe(Effect.orDie)
}).pipe(Effect.orDie, Effect.withSpan("Tool.execute", { attributes: attrs }))
}
return toolInfo
})
}