MCPcopy Create free account
hub / github.com/codeaashu/claude-code / endToolPerfettoSpan

Function endToolPerfettoSpan

src/utils/telemetry/perfettoTracing.ts:727–763  ·  view source on GitHub ↗
(
  spanId: string,
  metadata?: {
    success?: boolean
    error?: string
    resultTokens?: number
  },
)

Source from the content-addressed store, hash-verified

725 * End a tool execution span
726 */
727export function endToolPerfettoSpan(
728 spanId: string,
729 metadata?: {
730 success?: boolean
731 error?: string
732 resultTokens?: number
733 },
734): void {
735 if (!isEnabled || !spanId) return
736
737 const pending = pendingSpans.get(spanId)
738 if (!pending) return
739
740 const endTime = getTimestamp()
741 const duration = endTime - pending.startTime
742
743 const args = {
744 ...pending.args,
745 success: metadata?.success ?? true,
746 error: metadata?.error,
747 result_tokens: metadata?.resultTokens,
748 duration_ms: duration / 1000,
749 }
750
751 // Emit end event
752 events.push({
753 name: pending.name,
754 cat: pending.category,
755 ph: 'E',
756 ts: endTime,
757 pid: pending.agentInfo.processId,
758 tid: pending.agentInfo.threadId,
759 args,
760 })
761
762 pendingSpans.delete(spanId)
763}
764
765/**
766 * Start a user input waiting span

Callers 1

endToolSpanFunction · 0.85

Calls 4

getTimestampFunction · 0.85
getMethod · 0.65
deleteMethod · 0.65
pushMethod · 0.45

Tested by

no test coverage detected