( toolName: string, args?: Record<string, unknown>, )
| 688 | * Start a tool execution span |
| 689 | */ |
| 690 | export function startToolPerfettoSpan( |
| 691 | toolName: string, |
| 692 | args?: Record<string, unknown>, |
| 693 | ): string { |
| 694 | if (!isEnabled) return '' |
| 695 | |
| 696 | const spanId = generateSpanId() |
| 697 | const agentInfo = getCurrentAgentInfo() |
| 698 | |
| 699 | pendingSpans.set(spanId, { |
| 700 | name: `Tool: ${toolName}`, |
| 701 | category: 'tool', |
| 702 | startTime: getTimestamp(), |
| 703 | agentInfo, |
| 704 | args: { |
| 705 | tool_name: toolName, |
| 706 | ...args, |
| 707 | }, |
| 708 | }) |
| 709 | |
| 710 | // Emit begin event |
| 711 | events.push({ |
| 712 | name: `Tool: ${toolName}`, |
| 713 | cat: 'tool', |
| 714 | ph: 'B', |
| 715 | ts: pendingSpans.get(spanId)!.startTime, |
| 716 | pid: agentInfo.processId, |
| 717 | tid: agentInfo.threadId, |
| 718 | args: pendingSpans.get(spanId)!.args, |
| 719 | }) |
| 720 | |
| 721 | return spanId |
| 722 | } |
| 723 | |
| 724 | /** |
| 725 | * End a tool execution span |
no test coverage detected