MCPcopy
hub / github.com/simstudioai/sim / buildTraceSpans

Function buildTraceSpans

apps/sim/lib/logs/execution/trace-spans/trace-spans.ts:59–76  ·  view source on GitHub ↗
(result: ExecutionResult)

Source from the content-addressed store, hash-verified

57 * relative timestamps + total duration derived from the earliest start / latest end.
58 */
59export function buildTraceSpans(result: ExecutionResult): {
60 traceSpans: TraceSpan[]
61 totalDuration: number
62} {
63 if (!result.logs?.length) {
64 return { traceSpans: [], totalDuration: 0 }
65 }
66
67 const spans = buildRootSpansFromLogs(result.logs)
68 const grouped = groupIterationBlocks(spans)
69
70 if (grouped.length === 0 || !result.metadata) {
71 const totalDuration = grouped.reduce((sum, span) => sum + span.duration, 0)
72 return { traceSpans: grouped, totalDuration }
73 }
74
75 return wrapInWorkflowRoot(grouped, spans)
76}
77
78/** Converts each BlockLog into a TraceSpan, sorted chronologically by start time. */
79function buildRootSpansFromLogs(logs: BlockLog[]): TraceSpan[] {

Callers 10

completeLoggingSessionFunction · 0.90
finalizeExecutionOutcomeFunction · 0.90
finalizeExecutionErrorFunction · 0.90
persistLogsFunction · 0.90
route.tsFile · 0.90
executeWorkflowJobFunction · 0.90
runWorkflowExecutionFunction · 0.90

Calls 3

groupIterationBlocksFunction · 0.90
buildRootSpansFromLogsFunction · 0.85
wrapInWorkflowRootFunction · 0.85

Tested by

no test coverage detected