@workflow/web-shared 4.1.0-beta.52 → 4.1.0-beta.53

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/dist/components/error-boundary.d.ts +15 -20
  2. package/dist/components/error-boundary.d.ts.map +1 -1
  3. package/dist/components/error-boundary.js +17 -31
  4. package/dist/components/error-boundary.js.map +1 -1
  5. package/dist/components/event-list-view.d.ts +7 -6
  6. package/dist/components/event-list-view.d.ts.map +1 -1
  7. package/dist/components/event-list-view.js +492 -109
  8. package/dist/components/event-list-view.js.map +1 -1
  9. package/dist/components/index.d.ts +1 -0
  10. package/dist/components/index.d.ts.map +1 -1
  11. package/dist/components/index.js +1 -0
  12. package/dist/components/index.js.map +1 -1
  13. package/dist/components/run-trace-view.d.ts +2 -1
  14. package/dist/components/run-trace-view.d.ts.map +1 -1
  15. package/dist/components/run-trace-view.js +2 -2
  16. package/dist/components/run-trace-view.js.map +1 -1
  17. package/dist/components/sidebar/attribute-panel.d.ts +2 -1
  18. package/dist/components/sidebar/attribute-panel.d.ts.map +1 -1
  19. package/dist/components/sidebar/attribute-panel.js +53 -142
  20. package/dist/components/sidebar/attribute-panel.js.map +1 -1
  21. package/dist/components/sidebar/conversation-view.d.ts.map +1 -1
  22. package/dist/components/sidebar/conversation-view.js +3 -17
  23. package/dist/components/sidebar/conversation-view.js.map +1 -1
  24. package/dist/components/sidebar/entity-detail-panel.d.ts +3 -1
  25. package/dist/components/sidebar/entity-detail-panel.d.ts.map +1 -1
  26. package/dist/components/sidebar/entity-detail-panel.js +63 -10
  27. package/dist/components/sidebar/entity-detail-panel.js.map +1 -1
  28. package/dist/components/sidebar/events-list.d.ts.map +1 -1
  29. package/dist/components/sidebar/events-list.js +4 -8
  30. package/dist/components/sidebar/events-list.js.map +1 -1
  31. package/dist/components/sidebar/resolve-hook-modal.d.ts +3 -0
  32. package/dist/components/sidebar/resolve-hook-modal.d.ts.map +1 -1
  33. package/dist/components/sidebar/resolve-hook-modal.js +152 -3
  34. package/dist/components/sidebar/resolve-hook-modal.js.map +1 -1
  35. package/dist/components/stream-viewer.d.ts +7 -5
  36. package/dist/components/stream-viewer.d.ts.map +1 -1
  37. package/dist/components/stream-viewer.js +54 -22
  38. package/dist/components/stream-viewer.js.map +1 -1
  39. package/dist/components/trace-viewer/components/markers.d.ts +2 -1
  40. package/dist/components/trace-viewer/components/markers.d.ts.map +1 -1
  41. package/dist/components/trace-viewer/components/markers.js +59 -20
  42. package/dist/components/trace-viewer/components/markers.js.map +1 -1
  43. package/dist/components/trace-viewer/components/node.d.ts +5 -1
  44. package/dist/components/trace-viewer/components/node.d.ts.map +1 -1
  45. package/dist/components/trace-viewer/components/node.js +250 -68
  46. package/dist/components/trace-viewer/components/node.js.map +1 -1
  47. package/dist/components/trace-viewer/components/span-content.d.ts +19 -0
  48. package/dist/components/trace-viewer/components/span-content.d.ts.map +1 -0
  49. package/dist/components/trace-viewer/components/span-content.js +137 -0
  50. package/dist/components/trace-viewer/components/span-content.js.map +1 -0
  51. package/dist/components/trace-viewer/components/span-detail-panel.d.ts.map +1 -1
  52. package/dist/components/trace-viewer/components/span-detail-panel.js +3 -2
  53. package/dist/components/trace-viewer/components/span-detail-panel.js.map +1 -1
  54. package/dist/components/trace-viewer/components/span-segments.d.ts +50 -0
  55. package/dist/components/trace-viewer/components/span-segments.d.ts.map +1 -0
  56. package/dist/components/trace-viewer/components/span-segments.js +392 -0
  57. package/dist/components/trace-viewer/components/span-segments.js.map +1 -0
  58. package/dist/components/trace-viewer/components/span-strategies.d.ts +46 -0
  59. package/dist/components/trace-viewer/components/span-strategies.d.ts.map +1 -0
  60. package/dist/components/trace-viewer/components/span-strategies.js +108 -0
  61. package/dist/components/trace-viewer/components/span-strategies.js.map +1 -0
  62. package/dist/components/trace-viewer/context.d.ts +7 -6
  63. package/dist/components/trace-viewer/context.d.ts.map +1 -1
  64. package/dist/components/trace-viewer/context.js +47 -18
  65. package/dist/components/trace-viewer/context.js.map +1 -1
  66. package/dist/components/trace-viewer/trace-viewer.d.ts +5 -1
  67. package/dist/components/trace-viewer/trace-viewer.d.ts.map +1 -1
  68. package/dist/components/trace-viewer/trace-viewer.js +87 -11
  69. package/dist/components/trace-viewer/trace-viewer.js.map +1 -1
  70. package/dist/components/trace-viewer/trace-viewer.module.css +179 -6
  71. package/dist/components/trace-viewer/util/timing.d.ts +5 -0
  72. package/dist/components/trace-viewer/util/timing.d.ts.map +1 -1
  73. package/dist/components/trace-viewer/util/timing.js +12 -0
  74. package/dist/components/trace-viewer/util/timing.js.map +1 -1
  75. package/dist/components/trace-viewer/util/use-streaming-spans.d.ts +1 -1
  76. package/dist/components/trace-viewer/util/use-streaming-spans.d.ts.map +1 -1
  77. package/dist/components/trace-viewer/util/use-streaming-spans.js +29 -17
  78. package/dist/components/trace-viewer/util/use-streaming-spans.js.map +1 -1
  79. package/dist/components/trace-viewer/worker.js +3 -1
  80. package/dist/components/trace-viewer/worker.js.map +1 -1
  81. package/dist/components/ui/alert.js +3 -3
  82. package/dist/components/ui/alert.js.map +1 -1
  83. package/dist/components/ui/card.d.ts.map +1 -1
  84. package/dist/components/ui/card.js +2 -2
  85. package/dist/components/ui/card.js.map +1 -1
  86. package/dist/components/ui/data-inspector.d.ts +17 -0
  87. package/dist/components/ui/data-inspector.d.ts.map +1 -0
  88. package/dist/components/ui/data-inspector.js +184 -0
  89. package/dist/components/ui/data-inspector.js.map +1 -0
  90. package/dist/components/ui/error-card.d.ts.map +1 -1
  91. package/dist/components/ui/error-card.js +4 -1
  92. package/dist/components/ui/error-card.js.map +1 -1
  93. package/dist/components/ui/inspector-theme.d.ts +39 -24
  94. package/dist/components/ui/inspector-theme.d.ts.map +1 -1
  95. package/dist/components/ui/inspector-theme.js +90 -38
  96. package/dist/components/ui/inspector-theme.js.map +1 -1
  97. package/dist/components/ui/skeleton.d.ts +1 -1
  98. package/dist/components/ui/skeleton.d.ts.map +1 -1
  99. package/dist/components/ui/skeleton.js +2 -2
  100. package/dist/components/ui/skeleton.js.map +1 -1
  101. package/dist/components/workflow-trace-view.d.ts +3 -1
  102. package/dist/components/workflow-trace-view.d.ts.map +1 -1
  103. package/dist/components/workflow-trace-view.js +435 -21
  104. package/dist/components/workflow-trace-view.js.map +1 -1
  105. package/dist/components/workflow-traces/trace-span-construction.d.ts +1 -1
  106. package/dist/components/workflow-traces/trace-span-construction.d.ts.map +1 -1
  107. package/dist/components/workflow-traces/trace-span-construction.js +2 -2
  108. package/dist/components/workflow-traces/trace-span-construction.js.map +1 -1
  109. package/dist/lib/hydration.d.ts.map +1 -1
  110. package/dist/lib/hydration.js +17 -3
  111. package/dist/lib/hydration.js.map +1 -1
  112. package/dist/styles.css +186 -0
  113. package/package.json +8 -7
  114. package/src/components/error-boundary.tsx +29 -40
  115. package/src/components/event-list-view.tsx +1000 -287
  116. package/src/components/index.ts +1 -0
  117. package/src/components/run-trace-view.tsx +3 -0
  118. package/src/components/sidebar/attribute-panel.tsx +58 -258
  119. package/src/components/sidebar/conversation-view.tsx +30 -27
  120. package/src/components/sidebar/entity-detail-panel.tsx +86 -20
  121. package/src/components/sidebar/events-list.tsx +4 -11
  122. package/src/components/sidebar/resolve-hook-modal.tsx +206 -47
  123. package/src/components/stream-viewer.tsx +138 -61
  124. package/src/components/trace-viewer/components/markers.tsx +69 -21
  125. package/src/components/trace-viewer/components/node.tsx +346 -100
  126. package/src/components/trace-viewer/components/span-content.tsx +247 -0
  127. package/src/components/trace-viewer/components/span-detail-panel.tsx +7 -2
  128. package/src/components/trace-viewer/components/span-segments.ts +516 -0
  129. package/src/components/trace-viewer/components/span-strategies.ts +205 -0
  130. package/src/components/trace-viewer/context.tsx +92 -40
  131. package/src/components/trace-viewer/trace-viewer.module.css +179 -6
  132. package/src/components/trace-viewer/trace-viewer.tsx +115 -11
  133. package/src/components/trace-viewer/util/timing.ts +13 -0
  134. package/src/components/trace-viewer/util/use-streaming-spans.ts +28 -17
  135. package/src/components/trace-viewer/worker.ts +4 -1
  136. package/src/components/ui/alert.tsx +3 -3
  137. package/src/components/ui/card.tsx +3 -5
  138. package/src/components/ui/data-inspector.tsx +318 -0
  139. package/src/components/ui/error-card.tsx +17 -6
  140. package/src/components/ui/inspector-theme.ts +127 -39
  141. package/src/components/ui/skeleton.tsx +3 -1
  142. package/src/components/workflow-trace-view.tsx +625 -26
  143. package/src/components/workflow-traces/trace-span-construction.ts +3 -2
  144. package/src/lib/hydration.ts +17 -8
  145. package/src/styles.css +186 -0
@@ -0,0 +1,392 @@
1
+ // ──────────────────────────────────────────────────────────────────────────
2
+ // CSS class mapping (segment status → module CSS class name)
3
+ // ──────────────────────────────────────────────────────────────────────────
4
+ /**
5
+ * Maps a SegmentStatus to the CSS module class name to use.
6
+ * These class names must exist in trace-viewer.module.css.
7
+ */
8
+ export const SEGMENT_CLASS_MAP = {
9
+ queued: 'segQueued',
10
+ running: 'segRunning',
11
+ failed: 'segFailed',
12
+ retrying: 'segRetrying',
13
+ succeeded: 'segSucceeded',
14
+ waiting: 'segWaiting',
15
+ sleeping: 'segSleeping',
16
+ received: 'segReceived',
17
+ };
18
+ // ──────────────────────────────────────────────────────────────────────────
19
+ // Helpers
20
+ // ──────────────────────────────────────────────────────────────────────────
21
+ function clampFraction(value) {
22
+ return Math.max(0, Math.min(1, value));
23
+ }
24
+ function timeToFraction(time, spanStart, spanDuration) {
25
+ if (spanDuration <= 0)
26
+ return 0;
27
+ return clampFraction((time - spanStart) / spanDuration);
28
+ }
29
+ /**
30
+ * Sort events by timestamp ascending.
31
+ */
32
+ function sortedEvents(events) {
33
+ return [...events].sort((a, b) => a.timestamp - b.timestamp);
34
+ }
35
+ // ──────────────────────────────────────────────────────────────────────────
36
+ // Step segments
37
+ // ──────────────────────────────────────────────────────────────────────────
38
+ /**
39
+ * Compute segments for a step span.
40
+ *
41
+ * Timeline: [queued] → [attempt₁ (fail)] → [retry wait] → [attempt₂ (fail)] → ... → [attemptₙ (success)]
42
+ *
43
+ * Events used: step_started, step_retrying, step_failed, step_completed
44
+ * The final segment is 'succeeded' if no trailing step_retrying/step_failed.
45
+ */
46
+ function computeStepSegments(node) {
47
+ const events = node.events ? sortedEvents(node.events) : [];
48
+ const { startTime, duration } = node;
49
+ const segments = [];
50
+ if (duration <= 0)
51
+ return segments;
52
+ const marks = events
53
+ .filter((e) => [
54
+ 'step_started',
55
+ 'step_retrying',
56
+ 'step_failed',
57
+ 'step_completed',
58
+ ].includes(e.event.name))
59
+ .map((e) => ({ time: e.timestamp, type: e.event.name }));
60
+ if (marks.length === 0) {
61
+ // No events — show entire span as running
62
+ segments.push({ startFraction: 0, endFraction: 1, status: 'running' });
63
+ return segments;
64
+ }
65
+ // Queued period: from span start to first event
66
+ const firstMark = marks[0];
67
+ const firstFraction = timeToFraction(firstMark.time, startTime, duration);
68
+ if (firstFraction > 0.001) {
69
+ segments.push({
70
+ startFraction: 0,
71
+ endFraction: firstFraction,
72
+ status: 'queued',
73
+ });
74
+ }
75
+ // Walk through events to build attempt/retry segments
76
+ for (let i = 0; i < marks.length; i++) {
77
+ const mark = marks[i];
78
+ const markFraction = timeToFraction(mark.time, startTime, duration);
79
+ const nextMark = marks[i + 1];
80
+ const nextFraction = nextMark
81
+ ? timeToFraction(nextMark.time, startTime, duration)
82
+ : 1;
83
+ if (mark.type === 'step_started') {
84
+ // This is the start of an execution attempt.
85
+ // It runs until the next event (step_retrying or step_failed) or end of span.
86
+ const isLastMark = i === marks.length - 1;
87
+ if (isLastMark) {
88
+ // Last event is step_started — this attempt is either still running or succeeded
89
+ segments.push({
90
+ startFraction: markFraction,
91
+ endFraction: 1,
92
+ status: 'succeeded',
93
+ });
94
+ }
95
+ else {
96
+ // Attempt runs until the next event
97
+ const nextType = nextMark.type;
98
+ const attemptStatus = nextType === 'step_retrying' || nextType === 'step_failed'
99
+ ? 'failed'
100
+ : nextType === 'step_completed'
101
+ ? 'succeeded'
102
+ : 'running';
103
+ segments.push({
104
+ startFraction: markFraction,
105
+ endFraction: nextFraction,
106
+ status: attemptStatus,
107
+ });
108
+ }
109
+ }
110
+ else if (mark.type === 'step_retrying') {
111
+ // Retry wait: from this event to the next step_started (or end)
112
+ segments.push({
113
+ startFraction: markFraction,
114
+ endFraction: nextFraction,
115
+ status: 'retrying',
116
+ });
117
+ }
118
+ else if (mark.type === 'step_failed') {
119
+ // Terminal failure: from this event to the end
120
+ if (markFraction < 0.999) {
121
+ segments.push({
122
+ startFraction: markFraction,
123
+ endFraction: 1,
124
+ status: 'failed',
125
+ });
126
+ }
127
+ }
128
+ else if (mark.type === 'step_completed') {
129
+ // Terminal success: do nothing here since the preceding step_started
130
+ // segment already terminates at this marker.
131
+ }
132
+ }
133
+ return segments;
134
+ }
135
+ // ──────────────────────────────────────────────────────────────────────────
136
+ // Hook segments
137
+ // ──────────────────────────────────────────────────────────────────────────
138
+ /**
139
+ * Compute segments for a hook span.
140
+ *
141
+ * Timeline: [waiting] → [received] → [disposed]
142
+ */
143
+ function computeHookSegments(node) {
144
+ const events = node.events ? sortedEvents(node.events) : [];
145
+ const { startTime, duration } = node;
146
+ const segments = [];
147
+ if (duration <= 0)
148
+ return segments;
149
+ const receivedEvent = events.find((e) => e.event.name === 'hook_received');
150
+ const disposedEvent = events.find((e) => e.event.name === 'hook_disposed');
151
+ if (!receivedEvent && !disposedEvent) {
152
+ // Still waiting
153
+ segments.push({ startFraction: 0, endFraction: 1, status: 'waiting' });
154
+ return segments;
155
+ }
156
+ const receivedFraction = receivedEvent
157
+ ? timeToFraction(receivedEvent.timestamp, startTime, duration)
158
+ : null;
159
+ const disposedFraction = disposedEvent
160
+ ? timeToFraction(disposedEvent.timestamp, startTime, duration)
161
+ : null;
162
+ // Waiting period (before received)
163
+ if (receivedFraction !== null && receivedFraction > 0.001) {
164
+ segments.push({
165
+ startFraction: 0,
166
+ endFraction: receivedFraction,
167
+ status: 'waiting',
168
+ });
169
+ }
170
+ else if (receivedFraction === null && disposedFraction !== null) {
171
+ // Disposed without receiving — waiting the whole time
172
+ segments.push({
173
+ startFraction: 0,
174
+ endFraction: disposedFraction,
175
+ status: 'waiting',
176
+ });
177
+ }
178
+ // Received period
179
+ if (receivedFraction !== null) {
180
+ const end = disposedFraction ?? 1;
181
+ segments.push({
182
+ startFraction: receivedFraction,
183
+ endFraction: end,
184
+ status: 'received',
185
+ });
186
+ }
187
+ // Post-disposed (if there's remaining span after disposal)
188
+ if (disposedFraction !== null && disposedFraction < 0.999) {
189
+ segments.push({
190
+ startFraction: disposedFraction,
191
+ endFraction: 1,
192
+ status: 'succeeded',
193
+ });
194
+ }
195
+ return segments;
196
+ }
197
+ // ──────────────────────────────────────────────────────────────────────────
198
+ // Sleep segments
199
+ // ──────────────────────────────────────────────────────────────────────────
200
+ /**
201
+ * Compute segments for a sleep span.
202
+ *
203
+ * Timeline: [sleeping] → [completed]
204
+ */
205
+ function computeSleepSegments(node) {
206
+ const events = node.events ? sortedEvents(node.events) : [];
207
+ const { startTime, duration } = node;
208
+ const segments = [];
209
+ if (duration <= 0)
210
+ return segments;
211
+ const completedEvent = events.find((e) => e.event.name === 'wait_completed');
212
+ if (!completedEvent) {
213
+ // Still sleeping
214
+ segments.push({ startFraction: 0, endFraction: 1, status: 'sleeping' });
215
+ return segments;
216
+ }
217
+ const completedFraction = timeToFraction(completedEvent.timestamp, startTime, duration);
218
+ if (completedFraction > 0.001) {
219
+ segments.push({
220
+ startFraction: 0,
221
+ endFraction: completedFraction,
222
+ status: 'sleeping',
223
+ });
224
+ }
225
+ segments.push({
226
+ startFraction: completedFraction,
227
+ endFraction: 1,
228
+ status: 'succeeded',
229
+ });
230
+ return segments;
231
+ }
232
+ // ──────────────────────────────────────────────────────────────────────────
233
+ // Run segments
234
+ // ──────────────────────────────────────────────────────────────────────────
235
+ /**
236
+ * Compute segments for a run span.
237
+ *
238
+ * Timeline: [queued] → [running] → [completed/failed]
239
+ *
240
+ * The queued period is derived from activeStartTime (run.startedAt).
241
+ * A synthetic run_started event is injected at that timestamp so
242
+ * the boundary is hoverable in the trace viewer.
243
+ */
244
+ function computeRunSegments(node) {
245
+ const events = node.events ? sortedEvents(node.events) : [];
246
+ const { startTime, duration, activeStartTime } = node;
247
+ const segments = [];
248
+ if (duration <= 0)
249
+ return segments;
250
+ const failedEvent = events.find((e) => e.event.name === 'run_failed');
251
+ const completedEvent = events.find((e) => e.event.name === 'run_completed');
252
+ // Queued period (from span start to activeStartTime)
253
+ let cursor = 0;
254
+ if (activeStartTime && activeStartTime > startTime) {
255
+ const queuedFraction = timeToFraction(activeStartTime, startTime, duration);
256
+ if (queuedFraction > 0.001) {
257
+ segments.push({
258
+ startFraction: 0,
259
+ endFraction: queuedFraction,
260
+ status: 'queued',
261
+ });
262
+ cursor = queuedFraction;
263
+ }
264
+ }
265
+ if (failedEvent) {
266
+ const failedFraction = timeToFraction(failedEvent.timestamp, startTime, duration);
267
+ // Running until failure
268
+ if (failedFraction > cursor + 0.001) {
269
+ segments.push({
270
+ startFraction: cursor,
271
+ endFraction: failedFraction,
272
+ status: 'running',
273
+ });
274
+ }
275
+ segments.push({
276
+ startFraction: failedFraction,
277
+ endFraction: 1,
278
+ status: 'failed',
279
+ });
280
+ }
281
+ else if (completedEvent) {
282
+ const completedFraction = timeToFraction(completedEvent.timestamp, startTime, duration);
283
+ if (completedFraction > cursor + 0.001) {
284
+ segments.push({
285
+ startFraction: cursor,
286
+ endFraction: completedFraction,
287
+ status: 'running',
288
+ });
289
+ }
290
+ segments.push({
291
+ startFraction: completedFraction,
292
+ endFraction: 1,
293
+ status: 'succeeded',
294
+ });
295
+ }
296
+ else {
297
+ // Running to completion
298
+ segments.push({
299
+ startFraction: cursor,
300
+ endFraction: 1,
301
+ status: 'running',
302
+ });
303
+ }
304
+ return segments;
305
+ }
306
+ // ──────────────────────────────────────────────────────────────────────────
307
+ // Boundary computation
308
+ // ──────────────────────────────────────────────────────────────────────────
309
+ /** Event names to human-readable labels */
310
+ const EVENT_LABELS = {
311
+ step_started: 'Started',
312
+ step_retrying: 'Retrying',
313
+ step_failed: 'Failed',
314
+ hook_created: 'Created',
315
+ hook_received: 'Received',
316
+ hook_disposed: 'Resolved',
317
+ wait_created: 'Sleep started',
318
+ wait_completed: 'Sleep completed',
319
+ run_completed: 'Completed',
320
+ run_failed: 'Run failed',
321
+ step_completed: 'Completed',
322
+ };
323
+ /**
324
+ * Extract boundaries from a span's events. Each boundary sits at the
325
+ * fractional position of a relevant event within the span duration.
326
+ * Only includes events that are used as segment boundaries (not at the
327
+ * very start or very end of the span, to avoid edge clutter).
328
+ */
329
+ function computeBoundaries(node, relevantEventNames) {
330
+ const events = node.events ? sortedEvents(node.events) : [];
331
+ const { startTime, duration } = node;
332
+ if (duration <= 0)
333
+ return [];
334
+ const boundaries = [];
335
+ for (const e of events) {
336
+ if (!relevantEventNames.includes(e.event.name))
337
+ continue;
338
+ const fraction = timeToFraction(e.timestamp, startTime, duration);
339
+ // Skip boundaries at the very edges (< 1% or > 99%) to avoid clutter
340
+ if (fraction < 0.01 || fraction > 0.99)
341
+ continue;
342
+ boundaries.push({
343
+ fraction,
344
+ label: EVENT_LABELS[e.event.name] ?? e.event.name,
345
+ offsetMs: e.timestamp - startTime,
346
+ });
347
+ }
348
+ return boundaries;
349
+ }
350
+ // ──────────────────────────────────────────────────────────────────────────
351
+ // Dispatcher
352
+ // ──────────────────────────────────────────────────────────────────────────
353
+ /**
354
+ * Compute the event-based segments and boundaries for a span based on its resource type.
355
+ * Returns empty arrays for 'default' (generic OTEL) spans.
356
+ */
357
+ export function computeSegments(resourceType, node) {
358
+ switch (resourceType) {
359
+ case 'step':
360
+ return {
361
+ segments: computeStepSegments(node),
362
+ boundaries: computeBoundaries(node, [
363
+ 'step_started',
364
+ 'step_retrying',
365
+ 'step_failed',
366
+ 'step_completed',
367
+ ]),
368
+ };
369
+ case 'hook':
370
+ return {
371
+ segments: computeHookSegments(node),
372
+ boundaries: computeBoundaries(node, [
373
+ 'hook_created',
374
+ 'hook_received',
375
+ 'hook_disposed',
376
+ ]),
377
+ };
378
+ case 'sleep':
379
+ return {
380
+ segments: computeSleepSegments(node),
381
+ boundaries: computeBoundaries(node, ['wait_created', 'wait_completed']),
382
+ };
383
+ case 'run':
384
+ return {
385
+ segments: computeRunSegments(node),
386
+ boundaries: computeBoundaries(node, ['run_completed', 'run_failed']),
387
+ };
388
+ default:
389
+ return { segments: [], boundaries: [] };
390
+ }
391
+ }
392
+ //# sourceMappingURL=span-segments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"span-segments.js","sourceRoot":"","sources":["../../../../src/components/trace-viewer/components/span-segments.ts"],"names":[],"mappings":"AAmDA,6EAA6E;AAC7E,6DAA6D;AAC7D,6EAA6E;AAE7E;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAkC;IAC9D,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;IACnB,QAAQ,EAAE,aAAa;IACvB,SAAS,EAAE,cAAc;IACzB,OAAO,EAAE,YAAY;IACrB,QAAQ,EAAE,aAAa;IACvB,QAAQ,EAAE,aAAa;CACxB,CAAC;AAEF,6EAA6E;AAC7E,UAAU;AACV,6EAA6E;AAE7E,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,cAAc,CACrB,IAAY,EACZ,SAAiB,EACjB,YAAoB;IAEpB,IAAI,YAAY,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IAChC,OAAO,aAAa,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,YAAY,CAAC,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,MAAuB;IAC3C,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;AAC/D,CAAC;AAED,6EAA6E;AAC7E,gBAAgB;AAChB,6EAA6E;AAE7E;;;;;;;GAOG;AACH,SAAS,mBAAmB,CAAC,IAAc;IACzC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IACrC,MAAM,QAAQ,GAAc,EAAE,CAAC;IAE/B,IAAI,QAAQ,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IAOnC,MAAM,KAAK,GAAgB,MAAM;SAC9B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACZ;QACE,cAAc;QACd,eAAe;QACf,aAAa;QACb,gBAAgB;KACjB,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CACzB;SACA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAE3D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,0CAA0C;QAC1C,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACvE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,gDAAgD;IAChD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,aAAa,GAAG,cAAc,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC1E,IAAI,aAAa,GAAG,KAAK,EAAE,CAAC;QAC1B,QAAQ,CAAC,IAAI,CAAC;YACZ,aAAa,EAAE,CAAC;YAChB,WAAW,EAAE,aAAa;YAC1B,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAC;IACL,CAAC;IAED,sDAAsD;IACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9B,MAAM,YAAY,GAAG,QAAQ;YAC3B,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;YACpD,CAAC,CAAC,CAAC,CAAC;QAEN,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YACjC,6CAA6C;YAC7C,8EAA8E;YAC9E,MAAM,UAAU,GAAG,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YAC1C,IAAI,UAAU,EAAE,CAAC;gBACf,iFAAiF;gBACjF,QAAQ,CAAC,IAAI,CAAC;oBACZ,aAAa,EAAE,YAAY;oBAC3B,WAAW,EAAE,CAAC;oBACd,MAAM,EAAE,WAAW;iBACpB,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,oCAAoC;gBACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;gBAC/B,MAAM,aAAa,GACjB,QAAQ,KAAK,eAAe,IAAI,QAAQ,KAAK,aAAa;oBACxD,CAAC,CAAC,QAAQ;oBACV,CAAC,CAAC,QAAQ,KAAK,gBAAgB;wBAC7B,CAAC,CAAC,WAAW;wBACb,CAAC,CAAC,SAAS,CAAC;gBAClB,QAAQ,CAAC,IAAI,CAAC;oBACZ,aAAa,EAAE,YAAY;oBAC3B,WAAW,EAAE,YAAY;oBACzB,MAAM,EAAE,aAAa;iBACtB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YACzC,gEAAgE;YAChE,QAAQ,CAAC,IAAI,CAAC;gBACZ,aAAa,EAAE,YAAY;gBAC3B,WAAW,EAAE,YAAY;gBACzB,MAAM,EAAE,UAAU;aACnB,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACvC,+CAA+C;YAC/C,IAAI,YAAY,GAAG,KAAK,EAAE,CAAC;gBACzB,QAAQ,CAAC,IAAI,CAAC;oBACZ,aAAa,EAAE,YAAY;oBAC3B,WAAW,EAAE,CAAC;oBACd,MAAM,EAAE,QAAQ;iBACjB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YAC1C,qEAAqE;YACrE,6CAA6C;QAC/C,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,6EAA6E;AAC7E,gBAAgB;AAChB,6EAA6E;AAE7E;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,IAAc;IACzC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IACrC,MAAM,QAAQ,GAAc,EAAE,CAAC;IAE/B,IAAI,QAAQ,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IAEnC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;IAC3E,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;IAE3E,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,EAAE,CAAC;QACrC,gBAAgB;QAChB,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACvE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,gBAAgB,GAAG,aAAa;QACpC,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC;QAC9D,CAAC,CAAC,IAAI,CAAC;IACT,MAAM,gBAAgB,GAAG,aAAa;QACpC,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC;QAC9D,CAAC,CAAC,IAAI,CAAC;IAET,mCAAmC;IACnC,IAAI,gBAAgB,KAAK,IAAI,IAAI,gBAAgB,GAAG,KAAK,EAAE,CAAC;QAC1D,QAAQ,CAAC,IAAI,CAAC;YACZ,aAAa,EAAE,CAAC;YAChB,WAAW,EAAE,gBAAgB;YAC7B,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,gBAAgB,KAAK,IAAI,IAAI,gBAAgB,KAAK,IAAI,EAAE,CAAC;QAClE,sDAAsD;QACtD,QAAQ,CAAC,IAAI,CAAC;YACZ,aAAa,EAAE,CAAC;YAChB,WAAW,EAAE,gBAAgB;YAC7B,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB;IAClB,IAAI,gBAAgB,KAAK,IAAI,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,gBAAgB,IAAI,CAAC,CAAC;QAClC,QAAQ,CAAC,IAAI,CAAC;YACZ,aAAa,EAAE,gBAAgB;YAC/B,WAAW,EAAE,GAAG;YAChB,MAAM,EAAE,UAAU;SACnB,CAAC,CAAC;IACL,CAAC;IAED,2DAA2D;IAC3D,IAAI,gBAAgB,KAAK,IAAI,IAAI,gBAAgB,GAAG,KAAK,EAAE,CAAC;QAC1D,QAAQ,CAAC,IAAI,CAAC;YACZ,aAAa,EAAE,gBAAgB;YAC/B,WAAW,EAAE,CAAC;YACd,MAAM,EAAE,WAAW;SACpB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,6EAA6E;AAC7E,iBAAiB;AACjB,6EAA6E;AAE7E;;;;GAIG;AACH,SAAS,oBAAoB,CAAC,IAAc;IAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IACrC,MAAM,QAAQ,GAAc,EAAE,CAAC;IAE/B,IAAI,QAAQ,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IAEnC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC;IAE7E,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,iBAAiB;QACjB,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;QACxE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,iBAAiB,GAAG,cAAc,CACtC,cAAc,CAAC,SAAS,EACxB,SAAS,EACT,QAAQ,CACT,CAAC;IAEF,IAAI,iBAAiB,GAAG,KAAK,EAAE,CAAC;QAC9B,QAAQ,CAAC,IAAI,CAAC;YACZ,aAAa,EAAE,CAAC;YAChB,WAAW,EAAE,iBAAiB;YAC9B,MAAM,EAAE,UAAU;SACnB,CAAC,CAAC;IACL,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC;QACZ,aAAa,EAAE,iBAAiB;QAChC,WAAW,EAAE,CAAC;QACd,MAAM,EAAE,WAAW;KACpB,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,6EAA6E;AAC7E,eAAe;AACf,6EAA6E;AAE7E;;;;;;;;GAQG;AACH,SAAS,kBAAkB,CAAC,IAAc;IACxC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;IACtD,MAAM,QAAQ,GAAc,EAAE,CAAC;IAE/B,IAAI,QAAQ,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IAEnC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;IACtE,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;IAE5E,qDAAqD;IACrD,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,eAAe,IAAI,eAAe,GAAG,SAAS,EAAE,CAAC;QACnD,MAAM,cAAc,GAAG,cAAc,CAAC,eAAe,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC5E,IAAI,cAAc,GAAG,KAAK,EAAE,CAAC;YAC3B,QAAQ,CAAC,IAAI,CAAC;gBACZ,aAAa,EAAE,CAAC;gBAChB,WAAW,EAAE,cAAc;gBAC3B,MAAM,EAAE,QAAQ;aACjB,CAAC,CAAC;YACH,MAAM,GAAG,cAAc,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,cAAc,GAAG,cAAc,CACnC,WAAW,CAAC,SAAS,EACrB,SAAS,EACT,QAAQ,CACT,CAAC;QACF,wBAAwB;QACxB,IAAI,cAAc,GAAG,MAAM,GAAG,KAAK,EAAE,CAAC;YACpC,QAAQ,CAAC,IAAI,CAAC;gBACZ,aAAa,EAAE,MAAM;gBACrB,WAAW,EAAE,cAAc;gBAC3B,MAAM,EAAE,SAAS;aAClB,CAAC,CAAC;QACL,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC;YACZ,aAAa,EAAE,cAAc;YAC7B,WAAW,EAAE,CAAC;YACd,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,cAAc,EAAE,CAAC;QAC1B,MAAM,iBAAiB,GAAG,cAAc,CACtC,cAAc,CAAC,SAAS,EACxB,SAAS,EACT,QAAQ,CACT,CAAC;QACF,IAAI,iBAAiB,GAAG,MAAM,GAAG,KAAK,EAAE,CAAC;YACvC,QAAQ,CAAC,IAAI,CAAC;gBACZ,aAAa,EAAE,MAAM;gBACrB,WAAW,EAAE,iBAAiB;gBAC9B,MAAM,EAAE,SAAS;aAClB,CAAC,CAAC;QACL,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC;YACZ,aAAa,EAAE,iBAAiB;YAChC,WAAW,EAAE,CAAC;YACd,MAAM,EAAE,WAAW;SACpB,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,wBAAwB;QACxB,QAAQ,CAAC,IAAI,CAAC;YACZ,aAAa,EAAE,MAAM;YACrB,WAAW,EAAE,CAAC;YACd,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAWD,6EAA6E;AAC7E,uBAAuB;AACvB,6EAA6E;AAE7E,2CAA2C;AAC3C,MAAM,YAAY,GAA2B;IAC3C,YAAY,EAAE,SAAS;IACvB,aAAa,EAAE,UAAU;IACzB,WAAW,EAAE,QAAQ;IACrB,YAAY,EAAE,SAAS;IACvB,aAAa,EAAE,UAAU;IACzB,aAAa,EAAE,UAAU;IACzB,YAAY,EAAE,eAAe;IAC7B,cAAc,EAAE,iBAAiB;IACjC,aAAa,EAAE,WAAW;IAC1B,UAAU,EAAE,YAAY;IACxB,cAAc,EAAE,WAAW;CAC5B,CAAC;AAEF;;;;;GAKG;AACH,SAAS,iBAAiB,CACxB,IAAc,EACd,kBAA4B;IAE5B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAErC,IAAI,QAAQ,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAE7B,MAAM,UAAU,GAAsB,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,SAAS;QAEzD,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAClE,qEAAqE;QACrE,IAAI,QAAQ,GAAG,IAAI,IAAI,QAAQ,GAAG,IAAI;YAAE,SAAS;QAEjD,UAAU,CAAC,IAAI,CAAC;YACd,QAAQ;YACR,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI;YACjD,QAAQ,EAAE,CAAC,CAAC,SAAS,GAAG,SAAS;SAClC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,6EAA6E;AAC7E,aAAa;AACb,6EAA6E;AAE7E;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,YAA0B,EAC1B,IAAc;IAEd,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,MAAM;YACT,OAAO;gBACL,QAAQ,EAAE,mBAAmB,CAAC,IAAI,CAAC;gBACnC,UAAU,EAAE,iBAAiB,CAAC,IAAI,EAAE;oBAClC,cAAc;oBACd,eAAe;oBACf,aAAa;oBACb,gBAAgB;iBACjB,CAAC;aACH,CAAC;QACJ,KAAK,MAAM;YACT,OAAO;gBACL,QAAQ,EAAE,mBAAmB,CAAC,IAAI,CAAC;gBACnC,UAAU,EAAE,iBAAiB,CAAC,IAAI,EAAE;oBAClC,cAAc;oBACd,eAAe;oBACf,eAAe;iBAChB,CAAC;aACH,CAAC;QACJ,KAAK,OAAO;YACV,OAAO;gBACL,QAAQ,EAAE,oBAAoB,CAAC,IAAI,CAAC;gBACpC,UAAU,EAAE,iBAAiB,CAAC,IAAI,EAAE,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;aACxE,CAAC;QACJ,KAAK,KAAK;YACR,OAAO;gBACL,QAAQ,EAAE,kBAAkB,CAAC,IAAI,CAAC;gBAClC,UAAU,EAAE,iBAAiB,CAAC,IAAI,EAAE,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;aACrE,CAAC;QACJ;YACE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IAC5C,CAAC;AACH,CAAC"}
@@ -0,0 +1,46 @@
1
+ import type { RefObject } from 'react';
2
+ import type { RootNode, ScrollSnapshot, VisibleSpan } from '../types';
3
+ /**
4
+ * The resource type of a workflow span, read from span.attributes.resource.
5
+ * Falls back to 'default' for non-workflow (generic OTEL) spans.
6
+ */
7
+ export type ResourceType = 'run' | 'step' | 'hook' | 'sleep' | 'default';
8
+ /**
9
+ * Layout result computed by a span strategy. Controls how the span
10
+ * is sized and positioned in the timeline.
11
+ */
12
+ export interface SpanLayout {
13
+ /** The rendered width in pixels */
14
+ width: number;
15
+ /** The actual duration-based width (before min-width clamping) */
16
+ actualWidth: number;
17
+ /** The rendered height in pixels */
18
+ height: number;
19
+ /** The y position in pixels */
20
+ top: number;
21
+ /** The x position in pixels (from left) */
22
+ left: number;
23
+ /** Whether the span is considered "small" (< 64px actual width) */
24
+ isSmall: boolean;
25
+ /** Whether the span is considered "huge" (>= 500px actual width) */
26
+ isHuge: boolean;
27
+ /** Whether the span is currently hovered (with hover eligibility) */
28
+ isHovered: boolean;
29
+ /** Whether the span is expanded (hovered or selected) — controls sizing */
30
+ isExpanded: boolean;
31
+ /** Whether the span is near the right side of the visible area */
32
+ isNearRightSide: boolean;
33
+ }
34
+ /**
35
+ * Reads the resource type from a span's attributes.
36
+ */
37
+ export declare function getResourceType(node: VisibleSpan): ResourceType;
38
+ export declare function getRunLayout(node: VisibleSpan, root: RootNode, scale: number, scrollSnapshotRef: RefObject<ScrollSnapshot | undefined>): SpanLayout;
39
+ export declare function getStepLayout(node: VisibleSpan, root: RootNode, scale: number, scrollSnapshotRef: RefObject<ScrollSnapshot | undefined>): SpanLayout;
40
+ export declare function getHookLayout(node: VisibleSpan, root: RootNode, scale: number, scrollSnapshotRef: RefObject<ScrollSnapshot | undefined>): SpanLayout;
41
+ export declare function getSleepLayout(node: VisibleSpan, root: RootNode, scale: number, scrollSnapshotRef: RefObject<ScrollSnapshot | undefined>): SpanLayout;
42
+ /**
43
+ * Computes the layout for a span based on its resource type.
44
+ */
45
+ export declare function getSpanLayout(resourceType: ResourceType, node: VisibleSpan, root: RootNode, scale: number, scrollSnapshotRef: RefObject<ScrollSnapshot | undefined>): SpanLayout;
46
+ //# sourceMappingURL=span-strategies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"span-strategies.d.ts","sourceRoot":"","sources":["../../../../src/components/trace-viewer/components/span-strategies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGtE;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAKzE;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,WAAW,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,OAAO,EAAE,OAAO,CAAC;IACjB,oEAAoE;IACpE,MAAM,EAAE,OAAO,CAAC;IAChB,qEAAqE;IACrE,SAAS,EAAE,OAAO,CAAC;IACnB,2EAA2E;IAC3E,UAAU,EAAE,OAAO,CAAC;IACpB,kEAAkE;IAClE,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,YAAY,CAW/D;AAwFD,wBAAgB,YAAY,CAC1B,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,MAAM,EACb,iBAAiB,EAAE,SAAS,CAAC,cAAc,GAAG,SAAS,CAAC,GACvD,UAAU,CAEZ;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,MAAM,EACb,iBAAiB,EAAE,SAAS,CAAC,cAAc,GAAG,SAAS,CAAC,GACvD,UAAU,CAEZ;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,MAAM,EACb,iBAAiB,EAAE,SAAS,CAAC,cAAc,GAAG,SAAS,CAAC,GACvD,UAAU,CAEZ;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,MAAM,EACb,iBAAiB,EAAE,SAAS,CAAC,cAAc,GAAG,SAAS,CAAC,GACvD,UAAU,CAEZ;AAMD;;GAEG;AACH,wBAAgB,aAAa,CAC3B,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,MAAM,EACb,iBAAiB,EAAE,SAAS,CAAC,cAAc,GAAG,SAAS,CAAC,GACvD,UAAU,CAaZ"}
@@ -0,0 +1,108 @@
1
+ import { MARKER_HEIGHT, ROW_HEIGHT, ROW_PADDING } from '../util/constants';
2
+ /** Minimum rendered width so very short spans are always visible */
3
+ const MIN_SPAN_WIDTH = 4;
4
+ /**
5
+ * Reads the resource type from a span's attributes.
6
+ */
7
+ export function getResourceType(node) {
8
+ const resource = node.span.attributes?.resource;
9
+ if (resource === 'run' ||
10
+ resource === 'step' ||
11
+ resource === 'hook' ||
12
+ resource === 'sleep') {
13
+ return resource;
14
+ }
15
+ return 'default';
16
+ }
17
+ // ──────────────────────────────────────────────────────────────────────────
18
+ // Shared helpers
19
+ // ──────────────────────────────────────────────────────────────────────────
20
+ function computeIsSmall(actualWidth) {
21
+ return actualWidth < 64;
22
+ }
23
+ function computeIsHuge(actualWidth) {
24
+ return actualWidth >= 500;
25
+ }
26
+ function computeIsHovered(node, isHuge) {
27
+ return node.isHovered && !isHuge && node.isHighlighted !== false;
28
+ }
29
+ function computeIsNearRightSide(node, root, scrollSnapshotRef, isHovered) {
30
+ if (!isHovered)
31
+ return false;
32
+ let visibleDuration = root.duration;
33
+ let visibleEndTime = root.endTime;
34
+ const snapshot = scrollSnapshotRef.current;
35
+ if (snapshot) {
36
+ visibleDuration = snapshot.endTime - snapshot.startTime;
37
+ visibleEndTime = snapshot.endTime;
38
+ }
39
+ return visibleEndTime - node.startTime < 0.25 * visibleDuration;
40
+ }
41
+ // ──────────────────────────────────────────────────────────────────────────
42
+ // Default layout (used by step, hook, run, default — all behave the same today)
43
+ // ──────────────────────────────────────────────────────────────────────────
44
+ function computeDefaultLayout(node, root, scale, scrollSnapshotRef) {
45
+ const left = (node.startTime - root.startTime) * scale;
46
+ let top = MARKER_HEIGHT + (ROW_HEIGHT + ROW_PADDING) * node.row;
47
+ const actualWidth = node.duration * scale;
48
+ const width = Math.max(actualWidth, MIN_SPAN_WIDTH);
49
+ let height = ROW_HEIGHT;
50
+ const isHuge = computeIsHuge(actualWidth);
51
+ const isSmall = computeIsSmall(actualWidth);
52
+ const isHovered = computeIsHovered(node, isHuge);
53
+ const isExpanded = isHovered || Boolean(node.isSelected);
54
+ if (isSmall && !isExpanded) {
55
+ height *= 0.4;
56
+ top += (ROW_HEIGHT - height) * 0.5;
57
+ }
58
+ const isNearRightSide = computeIsNearRightSide(node, root, scrollSnapshotRef, isExpanded);
59
+ return {
60
+ width,
61
+ actualWidth,
62
+ height,
63
+ top,
64
+ left,
65
+ isSmall,
66
+ isHuge,
67
+ isHovered,
68
+ isExpanded,
69
+ isNearRightSide,
70
+ };
71
+ }
72
+ // ──────────────────────────────────────────────────────────────────────────
73
+ // Per-type layout functions
74
+ // Each returns the same result today but provides a clear extension point.
75
+ // ──────────────────────────────────────────────────────────────────────────
76
+ export function getRunLayout(node, root, scale, scrollSnapshotRef) {
77
+ return computeDefaultLayout(node, root, scale, scrollSnapshotRef);
78
+ }
79
+ export function getStepLayout(node, root, scale, scrollSnapshotRef) {
80
+ return computeDefaultLayout(node, root, scale, scrollSnapshotRef);
81
+ }
82
+ export function getHookLayout(node, root, scale, scrollSnapshotRef) {
83
+ return computeDefaultLayout(node, root, scale, scrollSnapshotRef);
84
+ }
85
+ export function getSleepLayout(node, root, scale, scrollSnapshotRef) {
86
+ return computeDefaultLayout(node, root, scale, scrollSnapshotRef);
87
+ }
88
+ // ──────────────────────────────────────────────────────────────────────────
89
+ // Dispatcher
90
+ // ──────────────────────────────────────────────────────────────────────────
91
+ /**
92
+ * Computes the layout for a span based on its resource type.
93
+ */
94
+ export function getSpanLayout(resourceType, node, root, scale, scrollSnapshotRef) {
95
+ switch (resourceType) {
96
+ case 'run':
97
+ return getRunLayout(node, root, scale, scrollSnapshotRef);
98
+ case 'step':
99
+ return getStepLayout(node, root, scale, scrollSnapshotRef);
100
+ case 'hook':
101
+ return getHookLayout(node, root, scale, scrollSnapshotRef);
102
+ case 'sleep':
103
+ return getSleepLayout(node, root, scale, scrollSnapshotRef);
104
+ default:
105
+ return computeDefaultLayout(node, root, scale, scrollSnapshotRef);
106
+ }
107
+ }
108
+ //# sourceMappingURL=span-strategies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"span-strategies.js","sourceRoot":"","sources":["../../../../src/components/trace-viewer/components/span-strategies.ts"],"names":[],"mappings":"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"}
@@ -86,12 +86,6 @@ export interface TraceViewerState {
86
86
  * Whether the trace viewer is small enough that it should be in mobile mode
87
87
  */
88
88
  isMobile: boolean;
89
- /**
90
- * @deprecated Panel rendering has been moved outside the context.
91
- * This field is kept for backwards compatibility but is no longer
92
- * used by the workflow trace viewer.
93
- */
94
- customPanelComponent: ReactNode | null;
95
89
  /**
96
90
  * A function to provide custom class names for spans.
97
91
  */
@@ -165,6 +159,12 @@ export type TraceViewerAction = {
165
159
  withPanel: boolean;
166
160
  } | {
167
161
  type: 'forceRender';
162
+ } | {
163
+ /** Like setRoot but preserves scroll position and memo cache (for incremental data updates) */
164
+ type: 'updateRoot';
165
+ root: RootNode;
166
+ spanMap: Record<string, SpanNode>;
167
+ resources: Resource[];
168
168
  };
169
169
  export interface TraceViewerContextProps {
170
170
  state: TraceViewerState;
@@ -181,4 +181,5 @@ export declare function TraceViewerContextProvider({ getQuickLinks, withPanel, c
181
181
  customPanelComponent?: ReactNode;
182
182
  }): ReactNode;
183
183
  export declare const useTraceViewer: () => TraceViewerContextProps;
184
+ export declare const useCustomPanelComponent: () => ReactNode | null;
184
185
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/components/trace-viewer/context.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/components/trace-viewer/context.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,SAAS,EAAW,MAAM,OAAO,CAAC;AAS5E,OAAO,KAAK,EACV,aAAa,EACb,SAAS,EAGT,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAYjB,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,IAAI,EAAE,QAAQ,CAAC;IACf;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAClC;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;IACpD;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,WAAW,EAAE,gBAAgB,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACrD;;OAEG;IACH,iBAAiB,EAAE,gBAAgB,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IAChE;;;OAGG;IACH,YAAY,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC1C;;OAEG;IACH,aAAa,EAAE,aAAa,CAAC;IAC7B;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,uBAAuB,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,MAAM,CAAC;IACrD;;OAEG;IACH,4BAA4B,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,MAAM,CAAC;CACpE;AAED,MAAM,MAAM,iBAAiB,GACzB;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAClC,SAAS,EAAE,QAAQ,EAAE,CAAC;CACvB,GACD;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,GACD;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf,GACD;IACE,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB,GACD;IACE,IAAI,EAAE,UAAU,CAAC;CAClB,GACD;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;CACZ,GACD;IACE,IAAI,EAAE,QAAQ,CAAC;CAChB,GACD;IACE,IAAI,EAAE,iBAAiB,CAAC;IACxB,EAAE,EAAE,MAAM,CAAC;CACZ,GACD;IACE,IAAI,EAAE,iBAAiB,CAAC;CACzB,GACD;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf,GACD;IACE,IAAI,EAAE,YAAY,CAAC;CACpB,GACD;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;CACZ,GACD;IACE,IAAI,EAAE,cAAc,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACZ,GACD;IACE,IAAI,EAAE,kBAAkB,CAAC;IACzB,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CACvB,GACD;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,GACD;IACE,IAAI,EAAE,UAAU,CAAC;CAClB,GACD;IACE,IAAI,EAAE,mBAAmB,CAAC;IAC1B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB,GACD;IACE,IAAI,EAAE,cAAc,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;CACpB,GACD;IACE,IAAI,EAAE,aAAa,CAAC;CACrB,GACD;IACE,+FAA+F;IAC/F,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAClC,SAAS,EAAE,QAAQ,EAAE,CAAC;CACvB,CAAC;AAEN,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,gBAAgB,CAAC;IACxB,QAAQ,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAC;CACvC;AAED,eAAO,MAAM,YAAY,EAAE,gBA4B1B,CAAC;AAMF,eAAO,MAAM,kBAAkB,kDAK7B,CAAC;AAuVH,wBAAgB,0BAA0B,CAAC,EACzC,aAAa,EACb,SAAiB,EACjB,QAAQ,EACR,uBAAuB,EACvB,4BAA4B,EAC5B,oBAA2B,GAC5B,EAAE;IACD,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,uBAAuB,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,MAAM,CAAC;IACrD,4BAA4B,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,MAAM,CAAC;IACnE,oBAAoB,CAAC,EAAE,SAAS,CAAC;CAClC,GAAG,SAAS,CAkDZ;AAED,eAAO,MAAM,cAAc,QAAO,uBACF,CAAC;AASjC,eAAO,MAAM,uBAAuB,QAAO,SAAS,GAAG,IACvB,CAAC"}