@motiadev/plugin-observability 0.17.0-beta.182-601862 → 0.17.0-beta.182-326905

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.
package/dist/index.js CHANGED
@@ -12,24 +12,88 @@ import "react18-json-view/src/style.css";
12
12
  import { useVirtualizer } from "@tanstack/react-virtual";
13
13
  import { formatDistanceToNow } from "date-fns";
14
14
 
15
+ //#region src/hooks/use-derive-trace-group.ts
16
+ const deriveTraceGroup = (meta, traces) => {
17
+ const completedSteps = traces.filter((t) => t.status === "completed").length;
18
+ const failedCount = traces.filter((t) => t.status === "failed").length;
19
+ const runningCount = traces.filter((t) => t.status === "running").length;
20
+ const status = failedCount > 0 ? "failed" : runningCount > 0 ? "running" : "completed";
21
+ const endTimes = traces.filter((t) => t.endTime).map((t) => t.endTime);
22
+ const endTime = status === "completed" && endTimes.length > 0 ? Math.max(...endTimes) : void 0;
23
+ const lastActivity = Math.max(meta.startTime, ...traces.map((t) => t.endTime || t.startTime), ...traces.flatMap((t) => t.events.map((e) => e.timestamp)));
24
+ return {
25
+ ...meta,
26
+ status,
27
+ endTime,
28
+ lastActivity,
29
+ metadata: {
30
+ completedSteps,
31
+ activeSteps: runningCount,
32
+ totalSteps: traces.length
33
+ }
34
+ };
35
+ };
36
+
37
+ //#endregion
15
38
  //#region src/stores/use-observability-store.ts
16
- const useObservabilityStore = create()((set) => ({
17
- traceGroups: [],
39
+ const useObservabilityStore = create()((set, get) => ({
40
+ traceGroupMetas: [],
18
41
  traces: [],
42
+ tracesByGroupId: {},
19
43
  selectedTraceGroupId: "",
20
44
  selectedTraceId: void 0,
21
45
  search: "",
22
- setTraceGroups: (groups) => {
23
- set({ traceGroups: Array.isArray(groups) ? groups : [] });
46
+ setTraceGroupMetas: (metas) => {
47
+ set({ traceGroupMetas: Array.isArray(metas) ? metas : [] });
24
48
  },
25
49
  setTraces: (traces) => {
26
- set({ traces: Array.isArray(traces) ? traces : [] });
50
+ const safeTraces = Array.isArray(traces) ? traces : [];
51
+ const state = get();
52
+ const groupId$1 = state.selectedTraceGroupId;
53
+ if (groupId$1) set({
54
+ traces: safeTraces,
55
+ tracesByGroupId: {
56
+ ...state.tracesByGroupId,
57
+ [groupId$1]: safeTraces
58
+ }
59
+ });
60
+ else set({ traces: safeTraces });
61
+ },
62
+ setTracesForGroup: (groupId$1, traces) => {
63
+ set({ tracesByGroupId: {
64
+ ...get().tracesByGroupId,
65
+ [groupId$1]: traces
66
+ } });
67
+ },
68
+ selectTraceGroupId: (groupId$1) => {
69
+ const state = get();
70
+ const traces = groupId$1 ? state.tracesByGroupId[groupId$1] || [] : [];
71
+ set({
72
+ selectedTraceGroupId: groupId$1 || "",
73
+ traces
74
+ });
27
75
  },
28
- selectTraceGroupId: (groupId$1) => set({ selectedTraceGroupId: groupId$1 }),
29
76
  selectTraceId: (traceId) => set({ selectedTraceId: traceId }),
30
77
  setSearch: (search) => set({ search }),
31
78
  clearTraces: () => {
32
79
  fetch("/__motia/trace/clear", { method: "POST" });
80
+ },
81
+ getTraceGroups: () => {
82
+ const state = get();
83
+ return state.traceGroupMetas.map((meta) => {
84
+ const traces = state.tracesByGroupId[meta.id] || [];
85
+ if (traces.length === 0) return {
86
+ ...meta,
87
+ status: "running",
88
+ lastActivity: meta.startTime,
89
+ metadata: {
90
+ completedSteps: 0,
91
+ activeSteps: 0,
92
+ totalSteps: 0
93
+ }
94
+ };
95
+ return deriveTraceGroup(meta, traces);
96
+ });
33
97
  }
34
98
  }));
35
99
 
@@ -43,7 +107,7 @@ const SearchBar = memo(() => {
43
107
  }
44
108
  const search = useObservabilityStore(_temp$7);
45
109
  const setSearch = useObservabilityStore(_temp2$4);
46
- const clearTraces = useObservabilityStore(_temp3$1);
110
+ const clearTraces = useObservabilityStore(_temp3$3);
47
111
  let t0;
48
112
  if ($[1] !== setSearch) {
49
113
  t0 = (e) => setSearch(e.target.value);
@@ -146,7 +210,7 @@ function _temp$7(state) {
146
210
  function _temp2$4(state_0) {
147
211
  return state_0.setSearch;
148
212
  }
149
- function _temp3$1(state_1) {
213
+ function _temp3$3(state_1) {
150
214
  return state_1.clearTraces;
151
215
  }
152
216
 
@@ -224,25 +288,37 @@ const useGetEndTime = (group) => {
224
288
  //#region src/hooks/use-traces-stream.ts
225
289
  const streamName$1 = "motia-trace";
226
290
  const useTracesStream = () => {
227
- const $ = c(4);
228
- if ($[0] !== "bcd1cb2c3d5b881ae86f74bb18d93ab6669b2358da38d97af969437f8354452c") {
229
- for (let $i = 0; $i < 4; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
230
- $[0] = "bcd1cb2c3d5b881ae86f74bb18d93ab6669b2358da38d97af969437f8354452c";
291
+ const $ = c(8);
292
+ if ($[0] !== "d3b628045fbae8fc0753f4cb34688523a49a93a082e8d6fcd0c5e2279e603ae7") {
293
+ for (let $i = 0; $i < 8; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
294
+ $[0] = "d3b628045fbae8fc0753f4cb34688523a49a93a082e8d6fcd0c5e2279e603ae7";
231
295
  }
232
296
  const groupId$1 = useObservabilityStore(_temp$5);
233
297
  const setData = useObservabilityStore(_temp2$3);
298
+ const setTracesForGroup = useObservabilityStore(_temp3$2);
234
299
  let t0;
235
- if ($[1] !== groupId$1 || $[2] !== setData) {
236
- t0 = {
237
- streamName: streamName$1,
238
- groupId: groupId$1,
239
- setData
300
+ if ($[1] !== groupId$1 || $[2] !== setData || $[3] !== setTracesForGroup) {
301
+ t0 = (traces) => {
302
+ setData(traces);
303
+ if (groupId$1) setTracesForGroup(groupId$1, traces);
240
304
  };
241
305
  $[1] = groupId$1;
242
306
  $[2] = setData;
243
- $[3] = t0;
244
- } else t0 = $[3];
245
- useStreamGroup(t0);
307
+ $[3] = setTracesForGroup;
308
+ $[4] = t0;
309
+ } else t0 = $[4];
310
+ let t1;
311
+ if ($[5] !== groupId$1 || $[6] !== t0) {
312
+ t1 = {
313
+ streamName: streamName$1,
314
+ groupId: groupId$1,
315
+ setData: t0
316
+ };
317
+ $[5] = groupId$1;
318
+ $[6] = t0;
319
+ $[7] = t1;
320
+ } else t1 = $[7];
321
+ useStreamGroup(t1);
246
322
  };
247
323
  function _temp$5(state) {
248
324
  return state.selectedTraceGroupId;
@@ -250,6 +326,9 @@ function _temp$5(state) {
250
326
  function _temp2$3(state_0) {
251
327
  return state_0.setTraces;
252
328
  }
329
+ function _temp3$2(state_1) {
330
+ return state_1.setTracesForGroup;
331
+ }
253
332
 
254
333
  //#endregion
255
334
  //#region src/lib/utils.ts
@@ -1382,9 +1461,9 @@ TraceItemDetail.displayName = "TraceItemDetail";
1382
1461
  //#region src/components/trace-timeline.tsx
1383
1462
  const TraceTimeline = memo(() => {
1384
1463
  const $ = c(3);
1385
- if ($[0] !== "8148f10395e8d4a4f6bf69c46ca41780936fccb5b43d5883c233f5bc10919674") {
1464
+ if ($[0] !== "0861cb6c9c7d40fb40c0b128d67452794264c9d58bd2fd2513753f1aaac123df") {
1386
1465
  for (let $i = 0; $i < 3; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
1387
- $[0] = "8148f10395e8d4a4f6bf69c46ca41780936fccb5b43d5883c233f5bc10919674";
1466
+ $[0] = "0861cb6c9c7d40fb40c0b128d67452794264c9d58bd2fd2513753f1aaac123df";
1388
1467
  }
1389
1468
  const groupId$1 = useObservabilityStore(_temp$3);
1390
1469
  if (!groupId$1) return null;
@@ -1398,84 +1477,105 @@ const TraceTimeline = memo(() => {
1398
1477
  });
1399
1478
  TraceTimeline.displayName = "TraceTimeline";
1400
1479
  const TraceTimelineComponent = memo((t0) => {
1401
- const $ = c(83);
1402
- if ($[0] !== "8148f10395e8d4a4f6bf69c46ca41780936fccb5b43d5883c233f5bc10919674") {
1403
- for (let $i = 0; $i < 83; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
1404
- $[0] = "8148f10395e8d4a4f6bf69c46ca41780936fccb5b43d5883c233f5bc10919674";
1480
+ const $ = c(84);
1481
+ if ($[0] !== "0861cb6c9c7d40fb40c0b128d67452794264c9d58bd2fd2513753f1aaac123df") {
1482
+ for (let $i = 0; $i < 84; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
1483
+ $[0] = "0861cb6c9c7d40fb40c0b128d67452794264c9d58bd2fd2513753f1aaac123df";
1405
1484
  }
1406
1485
  const { groupId: groupId$1 } = t0;
1407
1486
  useTracesStream();
1408
- const traceGroups = useObservabilityStore(_temp2$1);
1409
- const traces = useObservabilityStore(_temp3);
1487
+ const traceGroupMetas = useObservabilityStore(_temp2$1);
1488
+ const traces = useObservabilityStore(_temp3$1);
1410
1489
  let t1;
1411
- if ($[1] !== groupId$1 || $[2] !== traceGroups) {
1412
- let t2$1;
1413
- if ($[4] !== groupId$1) {
1414
- t2$1 = (traceGroup) => traceGroup.id === groupId$1;
1415
- $[4] = groupId$1;
1416
- $[5] = t2$1;
1417
- } else t2$1 = $[5];
1418
- t1 = traceGroups.find(t2$1);
1490
+ if ($[1] !== groupId$1 || $[2] !== traceGroupMetas || $[3] !== traces) {
1491
+ bb0: {
1492
+ let t2$1;
1493
+ if ($[5] !== groupId$1) {
1494
+ t2$1 = (m) => m.id === groupId$1;
1495
+ $[5] = groupId$1;
1496
+ $[6] = t2$1;
1497
+ } else t2$1 = $[6];
1498
+ const meta = traceGroupMetas.find(t2$1);
1499
+ if (!meta) {
1500
+ t1 = null;
1501
+ break bb0;
1502
+ }
1503
+ if (traces.length === 0) {
1504
+ t1 = {
1505
+ ...meta,
1506
+ status: "running",
1507
+ lastActivity: meta.startTime,
1508
+ metadata: {
1509
+ completedSteps: 0,
1510
+ activeSteps: 0,
1511
+ totalSteps: 0
1512
+ }
1513
+ };
1514
+ break bb0;
1515
+ }
1516
+ t1 = deriveTraceGroup(meta, traces);
1517
+ }
1419
1518
  $[1] = groupId$1;
1420
- $[2] = traceGroups;
1421
- $[3] = t1;
1422
- } else t1 = $[3];
1519
+ $[2] = traceGroupMetas;
1520
+ $[3] = traces;
1521
+ $[4] = t1;
1522
+ } else t1 = $[4];
1423
1523
  const group = t1;
1424
1524
  const endTime = useGetEndTime(group);
1425
1525
  const [zoom, setZoom] = useState(100);
1426
1526
  const selectedTraceId = useObservabilityStore(_temp4);
1427
1527
  const selectTraceId = useObservabilityStore(_temp5);
1428
1528
  let t2;
1429
- if ($[6] !== selectedTraceId || $[7] !== traces) {
1529
+ if ($[7] !== selectedTraceId || $[8] !== traces) {
1430
1530
  let t3$1;
1431
- if ($[9] !== selectedTraceId) {
1531
+ if ($[10] !== selectedTraceId) {
1432
1532
  t3$1 = (trace) => trace.id === selectedTraceId;
1433
- $[9] = selectedTraceId;
1434
- $[10] = t3$1;
1435
- } else t3$1 = $[10];
1533
+ $[10] = selectedTraceId;
1534
+ $[11] = t3$1;
1535
+ } else t3$1 = $[11];
1436
1536
  t2 = traces.find(t3$1);
1437
- $[6] = selectedTraceId;
1438
- $[7] = traces;
1439
- $[8] = t2;
1440
- } else t2 = $[8];
1537
+ $[7] = selectedTraceId;
1538
+ $[8] = traces;
1539
+ $[9] = t2;
1540
+ } else t2 = $[9];
1441
1541
  const selectedTrace = t2;
1442
1542
  let t3;
1443
- if ($[11] !== zoom) {
1543
+ if ($[12] !== zoom) {
1444
1544
  t3 = () => zoom > 100 && setZoom(_temp6);
1445
- $[11] = zoom;
1446
- $[12] = t3;
1447
- } else t3 = $[12];
1545
+ $[12] = zoom;
1546
+ $[13] = t3;
1547
+ } else t3 = $[13];
1448
1548
  const zoomMinus = t3;
1449
1549
  let t4;
1450
- if ($[13] !== zoom) {
1550
+ if ($[14] !== zoom) {
1451
1551
  t4 = () => zoom < 200 && setZoom(_temp7);
1452
- $[13] = zoom;
1453
- $[14] = t4;
1454
- } else t4 = $[14];
1552
+ $[14] = zoom;
1553
+ $[15] = t4;
1554
+ } else t4 = $[15];
1455
1555
  const zoomPlus = t4;
1456
1556
  if (!group) return null;
1457
1557
  const t5 = `${zoom}%`;
1458
1558
  let t6;
1459
- if ($[15] !== t5) {
1559
+ if ($[16] !== t5) {
1460
1560
  t6 = { width: t5 };
1461
- $[15] = t5;
1462
- $[16] = t6;
1463
- } else t6 = $[16];
1561
+ $[16] = t5;
1562
+ $[17] = t6;
1563
+ } else t6 = $[17];
1464
1564
  const t7 = `${zoom}%`;
1465
1565
  let t8;
1466
- if ($[17] !== t7) {
1566
+ if ($[18] !== t7) {
1467
1567
  t8 = { width: t7 };
1468
- $[17] = t7;
1469
- $[18] = t8;
1470
- } else t8 = $[18];
1568
+ $[18] = t7;
1569
+ $[19] = t8;
1570
+ } else t8 = $[19];
1471
1571
  const t9 = zoom <= 100;
1472
1572
  let t10;
1473
- if ($[19] === Symbol.for("react.memo_cache_sentinel")) {
1573
+ if ($[20] === Symbol.for("react.memo_cache_sentinel")) {
1474
1574
  t10 = /* @__PURE__ */ jsx(Minus, { className: "w-4 h-4 cursor-pointer" });
1475
- $[19] = t10;
1476
- } else t10 = $[19];
1575
+ $[20] = t10;
1576
+ } else t10 = $[20];
1477
1577
  let t11;
1478
- if ($[20] !== t9 || $[21] !== zoomMinus) {
1578
+ if ($[21] !== t9 || $[22] !== zoomMinus) {
1479
1579
  t11 = /* @__PURE__ */ jsx(Button, {
1480
1580
  variant: "icon",
1481
1581
  size: "sm",
@@ -1484,27 +1584,27 @@ const TraceTimelineComponent = memo((t0) => {
1484
1584
  disabled: t9,
1485
1585
  children: t10
1486
1586
  });
1487
- $[20] = t9;
1488
- $[21] = zoomMinus;
1489
- $[22] = t11;
1490
- } else t11 = $[22];
1587
+ $[21] = t9;
1588
+ $[22] = zoomMinus;
1589
+ $[23] = t11;
1590
+ } else t11 = $[23];
1491
1591
  let t12;
1492
- if ($[23] !== zoom) {
1592
+ if ($[24] !== zoom) {
1493
1593
  t12 = /* @__PURE__ */ jsxs("span", {
1494
1594
  className: "min-w-12 text-center select-none text-sm font-bold text-muted-foreground",
1495
1595
  children: [zoom, "%"]
1496
1596
  });
1497
- $[23] = zoom;
1498
- $[24] = t12;
1499
- } else t12 = $[24];
1597
+ $[24] = zoom;
1598
+ $[25] = t12;
1599
+ } else t12 = $[25];
1500
1600
  const t13 = zoom >= 200;
1501
1601
  let t14;
1502
- if ($[25] === Symbol.for("react.memo_cache_sentinel")) {
1602
+ if ($[26] === Symbol.for("react.memo_cache_sentinel")) {
1503
1603
  t14 = /* @__PURE__ */ jsx(Plus, { className: "w-4 h-4 cursor-pointer" });
1504
- $[25] = t14;
1505
- } else t14 = $[25];
1604
+ $[26] = t14;
1605
+ } else t14 = $[26];
1506
1606
  let t15;
1507
- if ($[26] !== t13 || $[27] !== zoomPlus) {
1607
+ if ($[27] !== t13 || $[28] !== zoomPlus) {
1508
1608
  t15 = /* @__PURE__ */ jsx(Button, {
1509
1609
  variant: "icon",
1510
1610
  size: "sm",
@@ -1513,12 +1613,12 @@ const TraceTimelineComponent = memo((t0) => {
1513
1613
  disabled: t13,
1514
1614
  children: t14
1515
1615
  });
1516
- $[26] = t13;
1517
- $[27] = zoomPlus;
1518
- $[28] = t15;
1519
- } else t15 = $[28];
1616
+ $[27] = t13;
1617
+ $[28] = zoomPlus;
1618
+ $[29] = t15;
1619
+ } else t15 = $[29];
1520
1620
  let t16;
1521
- if ($[29] !== t11 || $[30] !== t12 || $[31] !== t15) {
1621
+ if ($[30] !== t11 || $[31] !== t12 || $[32] !== t15) {
1522
1622
  t16 = /* @__PURE__ */ jsxs("div", {
1523
1623
  className: "shrink-0 w-[200px] h-[37px] flex items-center justify-center gap-2 sticky left-0 top-0 z-10 bg-card backdrop-blur-xs backdrop-filter",
1524
1624
  children: [
@@ -1527,70 +1627,70 @@ const TraceTimelineComponent = memo((t0) => {
1527
1627
  t15
1528
1628
  ]
1529
1629
  });
1530
- $[29] = t11;
1531
- $[30] = t12;
1532
- $[31] = t15;
1533
- $[32] = t16;
1534
- } else t16 = $[32];
1630
+ $[30] = t11;
1631
+ $[31] = t12;
1632
+ $[32] = t15;
1633
+ $[33] = t16;
1634
+ } else t16 = $[33];
1535
1635
  let t17;
1536
- if ($[33] === Symbol.for("react.memo_cache_sentinel")) {
1636
+ if ($[34] === Symbol.for("react.memo_cache_sentinel")) {
1537
1637
  t17 = /* @__PURE__ */ jsx("span", { children: "0ms" });
1538
- $[33] = t17;
1539
- } else t17 = $[33];
1638
+ $[34] = t17;
1639
+ } else t17 = $[34];
1540
1640
  const t18 = Math.floor((endTime - group.startTime) * .25);
1541
1641
  let t19;
1542
- if ($[34] !== t18) {
1642
+ if ($[35] !== t18) {
1543
1643
  t19 = formatDuration(t18);
1544
- $[34] = t18;
1545
- $[35] = t19;
1546
- } else t19 = $[35];
1644
+ $[35] = t18;
1645
+ $[36] = t19;
1646
+ } else t19 = $[36];
1547
1647
  let t20;
1548
- if ($[36] !== t19) {
1648
+ if ($[37] !== t19) {
1549
1649
  t20 = /* @__PURE__ */ jsx("span", { children: t19 });
1550
- $[36] = t19;
1551
- $[37] = t20;
1552
- } else t20 = $[37];
1650
+ $[37] = t19;
1651
+ $[38] = t20;
1652
+ } else t20 = $[38];
1553
1653
  const t21 = Math.floor((endTime - group.startTime) * .5);
1554
1654
  let t22;
1555
- if ($[38] !== t21) {
1655
+ if ($[39] !== t21) {
1556
1656
  t22 = formatDuration(t21);
1557
- $[38] = t21;
1558
- $[39] = t22;
1559
- } else t22 = $[39];
1657
+ $[39] = t21;
1658
+ $[40] = t22;
1659
+ } else t22 = $[40];
1560
1660
  let t23;
1561
- if ($[40] !== t22) {
1661
+ if ($[41] !== t22) {
1562
1662
  t23 = /* @__PURE__ */ jsx("span", { children: t22 });
1563
- $[40] = t22;
1564
- $[41] = t23;
1565
- } else t23 = $[41];
1663
+ $[41] = t22;
1664
+ $[42] = t23;
1665
+ } else t23 = $[42];
1566
1666
  const t24 = Math.floor((endTime - group.startTime) * .75);
1567
1667
  let t25;
1568
- if ($[42] !== t24) {
1668
+ if ($[43] !== t24) {
1569
1669
  t25 = formatDuration(t24);
1570
- $[42] = t24;
1571
- $[43] = t25;
1572
- } else t25 = $[43];
1670
+ $[43] = t24;
1671
+ $[44] = t25;
1672
+ } else t25 = $[44];
1573
1673
  let t26;
1574
- if ($[44] !== t25) {
1674
+ if ($[45] !== t25) {
1575
1675
  t26 = /* @__PURE__ */ jsx("span", { children: t25 });
1576
- $[44] = t25;
1577
- $[45] = t26;
1578
- } else t26 = $[45];
1676
+ $[45] = t25;
1677
+ $[46] = t26;
1678
+ } else t26 = $[46];
1579
1679
  const t27 = Math.floor(endTime - group.startTime);
1580
1680
  let t28;
1581
- if ($[46] !== t27) {
1681
+ if ($[47] !== t27) {
1582
1682
  t28 = formatDuration(t27);
1583
- $[46] = t27;
1584
- $[47] = t28;
1585
- } else t28 = $[47];
1683
+ $[47] = t27;
1684
+ $[48] = t28;
1685
+ } else t28 = $[48];
1586
1686
  let t29;
1587
- if ($[48] !== t28) {
1687
+ if ($[49] !== t28) {
1588
1688
  t29 = /* @__PURE__ */ jsx("span", { children: t28 });
1589
- $[48] = t28;
1590
- $[49] = t29;
1591
- } else t29 = $[49];
1689
+ $[49] = t28;
1690
+ $[50] = t29;
1691
+ } else t29 = $[50];
1592
1692
  let t30;
1593
- if ($[50] !== t20 || $[51] !== t23 || $[52] !== t26 || $[53] !== t29) {
1693
+ if ($[51] !== t20 || $[52] !== t23 || $[53] !== t26 || $[54] !== t29) {
1594
1694
  t30 = /* @__PURE__ */ jsxs("div", {
1595
1695
  className: "flex justify-between font-mono p-2 w-full text-xs text-muted-foreground bg-card",
1596
1696
  children: [
@@ -1601,35 +1701,35 @@ const TraceTimelineComponent = memo((t0) => {
1601
1701
  t29
1602
1702
  ]
1603
1703
  });
1604
- $[50] = t20;
1605
- $[51] = t23;
1606
- $[52] = t26;
1607
- $[53] = t29;
1608
- $[54] = t30;
1609
- } else t30 = $[54];
1704
+ $[51] = t20;
1705
+ $[52] = t23;
1706
+ $[53] = t26;
1707
+ $[54] = t29;
1708
+ $[55] = t30;
1709
+ } else t30 = $[55];
1610
1710
  let t31;
1611
- if ($[55] !== t16 || $[56] !== t30 || $[57] !== t8) {
1711
+ if ($[56] !== t16 || $[57] !== t30 || $[58] !== t8) {
1612
1712
  t31 = /* @__PURE__ */ jsxs("div", {
1613
1713
  className: "flex flex-1 bg-background",
1614
1714
  style: t8,
1615
1715
  children: [t16, t30]
1616
1716
  });
1617
- $[55] = t16;
1618
- $[56] = t30;
1619
- $[57] = t8;
1620
- $[58] = t31;
1621
- } else t31 = $[58];
1717
+ $[56] = t16;
1718
+ $[57] = t30;
1719
+ $[58] = t8;
1720
+ $[59] = t31;
1721
+ } else t31 = $[59];
1622
1722
  const t32 = `${zoom}%`;
1623
1723
  let t33;
1624
- if ($[59] !== t32) {
1724
+ if ($[60] !== t32) {
1625
1725
  t33 = { width: t32 };
1626
- $[59] = t32;
1627
- $[60] = t33;
1628
- } else t33 = $[60];
1726
+ $[60] = t32;
1727
+ $[61] = t33;
1728
+ } else t33 = $[61];
1629
1729
  let t34;
1630
- if ($[61] !== endTime || $[62] !== group.startTime || $[63] !== selectTraceId || $[64] !== traces) {
1730
+ if ($[62] !== endTime || $[63] !== group.startTime || $[64] !== selectTraceId || $[65] !== traces) {
1631
1731
  let t35$1;
1632
- if ($[66] !== endTime || $[67] !== group.startTime || $[68] !== selectTraceId) {
1732
+ if ($[67] !== endTime || $[68] !== group.startTime || $[69] !== selectTraceId) {
1633
1733
  t35$1 = (trace_0) => /* @__PURE__ */ jsx(TraceItem, {
1634
1734
  traceId: trace_0.id,
1635
1735
  traceName: trace_0.name,
@@ -1640,31 +1740,31 @@ const TraceTimelineComponent = memo((t0) => {
1640
1740
  groupEndTime: endTime,
1641
1741
  onExpand: selectTraceId
1642
1742
  }, trace_0.id);
1643
- $[66] = endTime;
1644
- $[67] = group.startTime;
1645
- $[68] = selectTraceId;
1646
- $[69] = t35$1;
1647
- } else t35$1 = $[69];
1743
+ $[67] = endTime;
1744
+ $[68] = group.startTime;
1745
+ $[69] = selectTraceId;
1746
+ $[70] = t35$1;
1747
+ } else t35$1 = $[70];
1648
1748
  t34 = traces.map(t35$1);
1649
- $[61] = endTime;
1650
- $[62] = group.startTime;
1651
- $[63] = selectTraceId;
1652
- $[64] = traces;
1653
- $[65] = t34;
1654
- } else t34 = $[65];
1749
+ $[62] = endTime;
1750
+ $[63] = group.startTime;
1751
+ $[64] = selectTraceId;
1752
+ $[65] = traces;
1753
+ $[66] = t34;
1754
+ } else t34 = $[66];
1655
1755
  let t35;
1656
- if ($[70] !== t33 || $[71] !== t34) {
1756
+ if ($[71] !== t33 || $[72] !== t34) {
1657
1757
  t35 = /* @__PURE__ */ jsx("div", {
1658
1758
  className: "flex flex-col h-full",
1659
1759
  style: t33,
1660
1760
  children: t34
1661
1761
  });
1662
- $[70] = t33;
1663
- $[71] = t34;
1664
- $[72] = t35;
1665
- } else t35 = $[72];
1762
+ $[71] = t33;
1763
+ $[72] = t34;
1764
+ $[73] = t35;
1765
+ } else t35 = $[73];
1666
1766
  let t36;
1667
- if ($[73] !== t31 || $[74] !== t35 || $[75] !== t6) {
1767
+ if ($[74] !== t31 || $[75] !== t35 || $[76] !== t6) {
1668
1768
  t36 = /* @__PURE__ */ jsx("div", {
1669
1769
  className: "flex flex-col flex-1 relative min-h-full min-w-[1000px]",
1670
1770
  children: /* @__PURE__ */ jsxs("div", {
@@ -1673,28 +1773,28 @@ const TraceTimelineComponent = memo((t0) => {
1673
1773
  children: [t31, t35]
1674
1774
  })
1675
1775
  });
1676
- $[73] = t31;
1677
- $[74] = t35;
1678
- $[75] = t6;
1679
- $[76] = t36;
1680
- } else t36 = $[76];
1776
+ $[74] = t31;
1777
+ $[75] = t35;
1778
+ $[76] = t6;
1779
+ $[77] = t36;
1780
+ } else t36 = $[77];
1681
1781
  let t37;
1682
- if ($[77] !== selectTraceId || $[78] !== selectedTrace) {
1782
+ if ($[78] !== selectTraceId || $[79] !== selectedTrace) {
1683
1783
  t37 = selectedTrace && /* @__PURE__ */ jsx(TraceItemDetail, {
1684
1784
  trace: selectedTrace,
1685
1785
  onClose: () => selectTraceId(void 0)
1686
1786
  });
1687
- $[77] = selectTraceId;
1688
- $[78] = selectedTrace;
1689
- $[79] = t37;
1690
- } else t37 = $[79];
1787
+ $[78] = selectTraceId;
1788
+ $[79] = selectedTrace;
1789
+ $[80] = t37;
1790
+ } else t37 = $[80];
1691
1791
  let t38;
1692
- if ($[80] !== t36 || $[81] !== t37) {
1792
+ if ($[81] !== t36 || $[82] !== t37) {
1693
1793
  t38 = /* @__PURE__ */ jsxs(Fragment$1, { children: [t36, t37] });
1694
- $[80] = t36;
1695
- $[81] = t37;
1696
- $[82] = t38;
1697
- } else t38 = $[82];
1794
+ $[81] = t36;
1795
+ $[82] = t37;
1796
+ $[83] = t38;
1797
+ } else t38 = $[83];
1698
1798
  return t38;
1699
1799
  });
1700
1800
  TraceTimelineComponent.displayName = "TraceTimelineComponent";
@@ -1702,9 +1802,9 @@ function _temp$3(state) {
1702
1802
  return state.selectedTraceGroupId;
1703
1803
  }
1704
1804
  function _temp2$1(state) {
1705
- return state.traceGroups;
1805
+ return state.traceGroupMetas;
1706
1806
  }
1707
- function _temp3(state_0) {
1807
+ function _temp3$1(state_0) {
1708
1808
  return state_0.traces;
1709
1809
  }
1710
1810
  function _temp4(state_1) {
@@ -1723,33 +1823,58 @@ function _temp7(prevZoom_0) {
1723
1823
  //#endregion
1724
1824
  //#region src/hooks/use-filtered-trace-groups.ts
1725
1825
  const useFilteredTraceGroups = () => {
1726
- const $ = c(6);
1727
- if ($[0] !== "bb7b5a50ebd354ac1177c12afa033e3545018c14fe033f5ea4551df3bbda5965") {
1728
- for (let $i = 0; $i < 6; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
1729
- $[0] = "bb7b5a50ebd354ac1177c12afa033e3545018c14fe033f5ea4551df3bbda5965";
1826
+ const $ = c(9);
1827
+ if ($[0] !== "ec346c037792c603f78bfd5665c2f837f63d92d06f90a3f8a121adc9dc036808") {
1828
+ for (let $i = 0; $i < 9; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
1829
+ $[0] = "ec346c037792c603f78bfd5665c2f837f63d92d06f90a3f8a121adc9dc036808";
1730
1830
  }
1731
- const traceGroups = useObservabilityStore(_temp$2);
1732
- const search = useObservabilityStore(_temp2);
1831
+ const traceGroupMetas = useObservabilityStore(_temp$2);
1832
+ const tracesByGroupId = useObservabilityStore(_temp2);
1833
+ const search = useObservabilityStore(_temp3);
1733
1834
  let t0;
1734
- if ($[1] !== search || $[2] !== traceGroups) {
1835
+ if ($[1] !== search || $[2] !== traceGroupMetas || $[3] !== tracesByGroupId) {
1735
1836
  let t1;
1736
- if ($[4] !== search) {
1737
- t1 = (group) => group.name.toLowerCase().includes(search.toLowerCase()) || group.id.toLowerCase().includes(search.toLowerCase());
1738
- $[4] = search;
1739
- $[5] = t1;
1740
- } else t1 = $[5];
1741
- t0 = traceGroups.filter(t1);
1837
+ if ($[5] !== tracesByGroupId) {
1838
+ t1 = (meta) => {
1839
+ const traces = tracesByGroupId[meta.id] || [];
1840
+ if (traces.length === 0) return {
1841
+ ...meta,
1842
+ status: "running",
1843
+ lastActivity: meta.startTime,
1844
+ metadata: {
1845
+ completedSteps: 0,
1846
+ activeSteps: 0,
1847
+ totalSteps: 0
1848
+ }
1849
+ };
1850
+ return deriveTraceGroup(meta, traces);
1851
+ };
1852
+ $[5] = tracesByGroupId;
1853
+ $[6] = t1;
1854
+ } else t1 = $[6];
1855
+ const traceGroups = traceGroupMetas.map(t1);
1856
+ let t2;
1857
+ if ($[7] !== search) {
1858
+ t2 = (group) => group.name.toLowerCase().includes(search.toLowerCase()) || group.id.toLowerCase().includes(search.toLowerCase());
1859
+ $[7] = search;
1860
+ $[8] = t2;
1861
+ } else t2 = $[8];
1862
+ t0 = traceGroups.filter(t2);
1742
1863
  $[1] = search;
1743
- $[2] = traceGroups;
1744
- $[3] = t0;
1745
- } else t0 = $[3];
1864
+ $[2] = traceGroupMetas;
1865
+ $[3] = tracesByGroupId;
1866
+ $[4] = t0;
1867
+ } else t0 = $[4];
1746
1868
  return t0;
1747
1869
  };
1748
1870
  function _temp$2(state) {
1749
- return state.traceGroups;
1871
+ return state.traceGroupMetas;
1750
1872
  }
1751
1873
  function _temp2(state_0) {
1752
- return state_0.search;
1874
+ return state_0.tracesByGroupId;
1875
+ }
1876
+ function _temp3(state_1) {
1877
+ return state_1.search;
1753
1878
  }
1754
1879
 
1755
1880
  //#endregion
@@ -1758,9 +1883,9 @@ const streamName = "motia-trace-group";
1758
1883
  const groupId = "default";
1759
1884
  const useTraceGroupsStream = () => {
1760
1885
  const $ = c(3);
1761
- if ($[0] !== "29d24a963c5c777c79f8ec82ca3d5f2b5d6812171a1a0298772d1c34c99549aa") {
1886
+ if ($[0] !== "a55cc63ac3227553bdabe16419e817ac4d448fdd9e3663a994c2e53ebc24d222") {
1762
1887
  for (let $i = 0; $i < 3; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
1763
- $[0] = "29d24a963c5c777c79f8ec82ca3d5f2b5d6812171a1a0298772d1c34c99549aa";
1888
+ $[0] = "a55cc63ac3227553bdabe16419e817ac4d448fdd9e3663a994c2e53ebc24d222";
1764
1889
  }
1765
1890
  const setData = useObservabilityStore(_temp$1);
1766
1891
  let t0;
@@ -1776,7 +1901,7 @@ const useTraceGroupsStream = () => {
1776
1901
  useStreamGroup(t0);
1777
1902
  };
1778
1903
  function _temp$1(state) {
1779
- return state.setTraceGroups;
1904
+ return state.setTraceGroupMetas;
1780
1905
  }
1781
1906
 
1782
1907
  //#endregion