@mastra/playground-ui 63.1.0-alpha.2 → 63.1.0-alpha.3

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 (168) hide show
  1. package/dist/components/ContentBlocks.cjs.js +6 -2
  2. package/dist/components/ContentBlocks.cjs.js.map +1 -1
  3. package/dist/components/ContentBlocks.es.js +6 -2
  4. package/dist/components/ContentBlocks.es.js.map +1 -1
  5. package/dist/components/DataList.cjs.js +17 -15
  6. package/dist/components/DataList.cjs.js.map +1 -1
  7. package/dist/components/DataList.es.js +5 -4
  8. package/dist/components/DataList.es.js.map +1 -1
  9. package/dist/components/DateTimeRangePicker.cjs.js +1 -1
  10. package/dist/components/DateTimeRangePicker.es.js +1 -1
  11. package/dist/components/EnvironmentVariablesEditor.cjs.js +1 -1
  12. package/dist/components/EnvironmentVariablesEditor.es.js +1 -1
  13. package/dist/components/FilterBar.cjs.js +3 -1
  14. package/dist/components/FilterBar.cjs.js.map +1 -1
  15. package/dist/components/FilterBar.es.js +4 -2
  16. package/dist/components/FilterBar.es.js.map +1 -1
  17. package/dist/components/LogsDataList.cjs.js +2 -5
  18. package/dist/components/LogsDataList.cjs.js.map +1 -1
  19. package/dist/components/LogsDataList.es.js +2 -5
  20. package/dist/components/LogsDataList.es.js.map +1 -1
  21. package/dist/components/SavedViews.cjs.js +1 -1
  22. package/dist/components/SavedViews.es.js +1 -1
  23. package/dist/components/Sidebar.cjs.js +33 -0
  24. package/dist/components/Sidebar.cjs.js.map +1 -1
  25. package/dist/components/Sidebar.es.js +33 -1
  26. package/dist/components/Sidebar.es.js.map +1 -1
  27. package/dist/data-list-CsS-lf01.js +138 -0
  28. package/dist/data-list-CsS-lf01.js.map +1 -0
  29. package/dist/data-list-D6J5xPq9.cjs +142 -0
  30. package/dist/data-list-D6J5xPq9.cjs.map +1 -0
  31. package/dist/{data-list-skeleton-C9Zm5XMX.js → data-list-skeleton-BytOffUO.js} +2 -2
  32. package/dist/{data-list-skeleton-C9Zm5XMX.js.map → data-list-skeleton-BytOffUO.js.map} +1 -1
  33. package/dist/{data-list-skeleton-C-j6Sf0F.cjs → data-list-skeleton-HmAfNH0v.cjs} +6 -6
  34. package/dist/{data-list-skeleton-C-j6Sf0F.cjs.map → data-list-skeleton-HmAfNH0v.cjs.map} +1 -1
  35. package/dist/data-list-spacer-BFA58pwr.cjs +218 -0
  36. package/dist/data-list-spacer-BFA58pwr.cjs.map +1 -0
  37. package/dist/data-list-spacer-BO-O0H6O.js +209 -0
  38. package/dist/data-list-spacer-BO-O0H6O.js.map +1 -0
  39. package/dist/{data-list-2svaWtkq.cjs → data-list-top-DOSUdqnN.cjs} +17 -340
  40. package/dist/data-list-top-DOSUdqnN.cjs.map +1 -0
  41. package/dist/{data-list-BbOYiz4B.js → data-list-top-vN4fkFqY.js} +9 -333
  42. package/dist/data-list-top-vN4fkFqY.js.map +1 -0
  43. package/dist/{date-time-range-picker-BT9qan60.js → date-time-range-picker-B9me2TUa.js} +21 -4
  44. package/dist/date-time-range-picker-B9me2TUa.js.map +1 -0
  45. package/dist/{date-time-range-picker-DQa5XLST.cjs → date-time-range-picker-CyoaOAsi.cjs} +21 -4
  46. package/dist/date-time-range-picker-CyoaOAsi.cjs.map +1 -0
  47. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +1 -2
  48. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js.map +1 -1
  49. package/dist/domains/chat/tools/badges/workflow-badge.es.js +1 -2
  50. package/dist/domains/chat/tools/badges/workflow-badge.es.js.map +1 -1
  51. package/dist/domains/logs/components/logs-list-view.cjs.js +2 -3
  52. package/dist/domains/logs/components/logs-list-view.cjs.js.map +1 -1
  53. package/dist/domains/logs/components/logs-list-view.es.js +2 -3
  54. package/dist/domains/logs/components/logs-list-view.es.js.map +1 -1
  55. package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
  56. package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
  57. package/dist/domains/metrics/drilldown.cjs.js +1 -1
  58. package/dist/domains/metrics/drilldown.es.js +1 -1
  59. package/dist/domains/metrics/metrics-filters.cjs.js +1 -1
  60. package/dist/domains/metrics/metrics-filters.es.js +1 -1
  61. package/dist/domains/scores/components/trace-scores-tab.cjs.js +1 -2
  62. package/dist/domains/scores/components/trace-scores-tab.cjs.js.map +1 -1
  63. package/dist/domains/scores/components/trace-scores-tab.es.js +1 -2
  64. package/dist/domains/scores/components/trace-scores-tab.es.js.map +1 -1
  65. package/dist/domains/traces/components/thread-view-by-trace.cjs.js +3 -2
  66. package/dist/domains/traces/components/thread-view-by-trace.cjs.js.map +1 -1
  67. package/dist/domains/traces/components/thread-view-by-trace.es.js +3 -2
  68. package/dist/domains/traces/components/thread-view-by-trace.es.js.map +1 -1
  69. package/dist/domains/traces/components/trace-data-panel.cjs.js +1 -2
  70. package/dist/domains/traces/components/trace-data-panel.cjs.js.map +1 -1
  71. package/dist/domains/traces/components/trace-data-panel.es.js +1 -2
  72. package/dist/domains/traces/components/trace-data-panel.es.js.map +1 -1
  73. package/dist/domains/traces/components/trace-time-range-chip.cjs.js +3 -3
  74. package/dist/domains/traces/components/trace-time-range-chip.cjs.js.map +1 -1
  75. package/dist/domains/traces/components/trace-time-range-chip.es.js +3 -3
  76. package/dist/domains/traces/components/trace-time-range-chip.es.js.map +1 -1
  77. package/dist/domains/traces/components/traces-error-content.cjs.js +1 -1
  78. package/dist/domains/traces/components/traces-error-content.es.js +1 -1
  79. package/dist/domains/traces/components/traces-list-view.cjs.js +5 -4
  80. package/dist/domains/traces/components/traces-list-view.cjs.js.map +1 -1
  81. package/dist/domains/traces/components/traces-list-view.es.js +4 -3
  82. package/dist/domains/traces/components/traces-list-view.es.js.map +1 -1
  83. package/dist/domains/traces/components/traces-page-skeleton.cjs.js +1 -4
  84. package/dist/domains/traces/components/traces-page-skeleton.cjs.js.map +1 -1
  85. package/dist/domains/traces/components/traces-page-skeleton.es.js +1 -4
  86. package/dist/domains/traces/components/traces-page-skeleton.es.js.map +1 -1
  87. package/dist/domains/traces/hooks/use-trace-filter-persistence.cjs.js +1 -1
  88. package/dist/domains/traces/hooks/use-trace-filter-persistence.es.js +1 -1
  89. package/dist/domains/traces/hooks/use-trace-url-state.cjs.js +1 -1
  90. package/dist/domains/traces/hooks/use-trace-url-state.es.js +1 -1
  91. package/dist/domains/traces/hooks/use-traces-list-source.cjs.js +15 -3
  92. package/dist/domains/traces/hooks/use-traces-list-source.cjs.js.map +1 -1
  93. package/dist/domains/traces/hooks/use-traces-list-source.es.js +13 -4
  94. package/dist/domains/traces/hooks/use-traces-list-source.es.js.map +1 -1
  95. package/dist/domains/traces/trace-filters.cjs.js +1 -1
  96. package/dist/domains/traces/trace-filters.es.js +1 -1
  97. package/dist/domains/traces/trace-query-filters.cjs.js +1 -3
  98. package/dist/domains/traces/trace-query-filters.cjs.js.map +1 -1
  99. package/dist/domains/traces/trace-query-filters.es.js +1 -1
  100. package/dist/domains/traces.cjs.js +1 -3
  101. package/dist/domains/traces.cjs.js.map +1 -1
  102. package/dist/domains/traces.es.js +1 -1
  103. package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +2 -2
  104. package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +2 -2
  105. package/dist/ee/signals/components/entity-index-list.cjs.js +1 -3
  106. package/dist/ee/signals/components/entity-index-list.cjs.js.map +1 -1
  107. package/dist/ee/signals/components/entity-index-list.es.js +1 -3
  108. package/dist/ee/signals/components/entity-index-list.es.js.map +1 -1
  109. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +1 -3
  110. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js.map +1 -1
  111. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +1 -3
  112. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js.map +1 -1
  113. package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +1 -1
  114. package/dist/ee/topics/components/topic-trace-summary-list.es.js +1 -1
  115. package/dist/{errors-BiY55qIh.cjs → errors-7WFF-9EC.cjs} +3 -2
  116. package/dist/errors-7WFF-9EC.cjs.map +1 -0
  117. package/dist/{errors-CDTokuME.js → errors-BFVXW8Dr.js} +3 -2
  118. package/dist/errors-BFVXW8Dr.js.map +1 -0
  119. package/dist/{filter-bar-chip-BBErw_aR.cjs → filter-bar-chip-CYCOeX1B.cjs} +8 -4
  120. package/dist/filter-bar-chip-CYCOeX1B.cjs.map +1 -0
  121. package/dist/{filter-bar-chip-DvRTWRwT.js → filter-bar-chip-U55TxGOw.js} +8 -4
  122. package/dist/filter-bar-chip-U55TxGOw.js.map +1 -0
  123. package/dist/hooks/use-local-storage-store.cjs.js +71 -0
  124. package/dist/hooks/use-local-storage-store.cjs.js.map +1 -0
  125. package/dist/hooks/use-local-storage-store.d.ts +2 -0
  126. package/dist/hooks/use-local-storage-store.es.js +66 -0
  127. package/dist/hooks/use-local-storage-store.es.js.map +1 -0
  128. package/dist/layout/tabbed-container.cjs.js +1 -1
  129. package/dist/layout/tabbed-container.es.js +1 -1
  130. package/dist/{logs-data-list-0_z4s0Sj.js → logs-data-list-BqUgmvMm.js} +3 -2
  131. package/dist/{logs-data-list-0_z4s0Sj.js.map → logs-data-list-BqUgmvMm.js.map} +1 -1
  132. package/dist/{logs-data-list-D4sVbF23.cjs → logs-data-list-CCrhko5Z.cjs} +22 -21
  133. package/dist/{logs-data-list-D4sVbF23.cjs.map → logs-data-list-CCrhko5Z.cjs.map} +1 -1
  134. package/dist/src/domains/traces/components/trace-time-range-chip.d.ts +1 -1
  135. package/dist/src/domains/traces/hooks/use-traces-list-source.d.ts +6 -0
  136. package/dist/src/domains/traces/trace-query-filters.d.ts +0 -11
  137. package/dist/src/ds/components/ContentBlocks/content-blocks.d.ts +3 -2
  138. package/dist/src/ds/components/DataList/shared.d.ts +4 -4
  139. package/dist/src/ds/components/DateTimeRangePicker/custom-range-editor.d.ts +3 -1
  140. package/dist/src/ds/components/DateTimeRangePicker/date-time-range-picker.d.ts +3 -1
  141. package/dist/src/ds/components/FilterBar/filter-bar-context.d.ts +11 -1
  142. package/dist/src/ds/components/FilterBar/filter-bar.d.ts +6 -1
  143. package/dist/src/ds/components/Sidebar/index.d.ts +1 -0
  144. package/dist/src/ds/components/Sidebar/nav/sidebar-nav-show-more.d.ts +9 -0
  145. package/dist/src/ds/components/Sidebar/sidebar.d.ts +2 -0
  146. package/dist/src/hooks/use-local-storage-store.d.ts +15 -0
  147. package/dist/style.css +20 -0
  148. package/dist/{trace-filters-C71gmCq4.js → trace-filters-C91h9X86.js} +2 -10
  149. package/dist/trace-filters-C91h9X86.js.map +1 -0
  150. package/dist/{trace-filters-Bh4dVNPX.cjs → trace-filters-Dz4oj8yV.cjs} +1 -11
  151. package/dist/trace-filters-Dz4oj8yV.cjs.map +1 -0
  152. package/dist/{traces-data-list-C05UwTiE.js → traces-data-list-B7Dzi7oZ.js} +4 -2
  153. package/dist/{traces-data-list-C05UwTiE.js.map → traces-data-list-B7Dzi7oZ.js.map} +1 -1
  154. package/dist/{traces-data-list-DPA5T14k.cjs → traces-data-list-Caf2XZDu.cjs} +19 -17
  155. package/dist/{traces-data-list-DPA5T14k.cjs.map → traces-data-list-Caf2XZDu.cjs.map} +1 -1
  156. package/dist/utils/errors.cjs.js +1 -1
  157. package/dist/utils/errors.es.js +1 -1
  158. package/package.json +8 -8
  159. package/dist/data-list-2svaWtkq.cjs.map +0 -1
  160. package/dist/data-list-BbOYiz4B.js.map +0 -1
  161. package/dist/date-time-range-picker-BT9qan60.js.map +0 -1
  162. package/dist/date-time-range-picker-DQa5XLST.cjs.map +0 -1
  163. package/dist/errors-BiY55qIh.cjs.map +0 -1
  164. package/dist/errors-CDTokuME.js.map +0 -1
  165. package/dist/filter-bar-chip-BBErw_aR.cjs.map +0 -1
  166. package/dist/filter-bar-chip-DvRTWRwT.js.map +0 -1
  167. package/dist/trace-filters-Bh4dVNPX.cjs.map +0 -1
  168. package/dist/trace-filters-C71gmCq4.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"traces-list-view.es.js","sources":["../../../../src/domains/traces/components/traces-list-view.tsx"],"sourcesContent":["import { useVirtualizer } from '@tanstack/react-virtual';\nimport { ListFilterIcon } from 'lucide-react';\nimport { useRef } from 'react';\nimport {\n DEFAULT_TRACE_COLUMN_PREFERENCES,\n TRACE_CUSTOM_COLUMN_LABELS,\n buildTraceListColumnKeys,\n buildTraceListColumns,\n formatTraceMetadataValue,\n hasTraceColumn,\n} from '../trace-list-columns';\nimport type { TraceColumnPreferences, TraceCustomColumn, TraceUsageSummary } from '../trace-list-columns';\nimport { getInputPreview, getSpanDurationMs } from '../utils/span-utils';\nimport { DataList, DataListSkeletonRows, TracesDataList, useDataListKeyboard } from '@/ds/components/DataList';\nimport type { DataListSort } from '@/ds/components/DataList';\nimport { splitColumns } from '@/ds/components/DataList/shared';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu';\nimport { Txt } from '@/ds/components/Txt/Txt';\nimport { focusRing } from '@/ds/primitives/transitions';\nimport { formatCompactNumber, formatCost } from '@/lib/cost';\nimport { cn } from '@/lib/utils';\nimport { formatDuration } from '@/utils/duration';\n\nexport type TracesListViewTrace = {\n traceId: string;\n /** Required for branch rows; absent on plain trace rows (which are root-rooted). */\n spanId?: string | null;\n /** `null`/missing → root span. Drives the Kind column's icon (top-level trace vs nested branch). */\n parentSpanId?: string | null;\n name: string;\n entityType?: string | null;\n entityId?: string | null;\n entityName?: string | null;\n threadId?: string | null;\n resourceId?: string | null;\n environment?: string | null;\n status?: string | null;\n /** Server-rendered preview of `input`. Present on lightweight rows, which omit `input` itself. */\n inputPreview?: string | null;\n input?: unknown;\n metadata?: Record<string, unknown> | null;\n startedAt?: Date | string | null;\n endedAt?: Date | string | null;\n createdAt: Date | string;\n};\n\nconst ROW_HEIGHT = 36;\nconst OVERSCAN = 8;\n/** Distinct values offered in a custom column's \"filter by value\" header menu. */\nconst MAX_FILTER_VALUES = 20;\n\nfunction customColumnValue(trace: TracesListViewTrace, field: TraceCustomColumn): string | null | undefined {\n return trace[field];\n}\n\nfunction distinctCustomColumnValues(traces: TracesListViewTrace[], field: TraceCustomColumn): string[] {\n const values = new Set<string>();\n for (const trace of traces) {\n const value = trace[field];\n if (typeof value === 'string' && value) values.add(value);\n if (values.size >= MAX_FILTER_VALUES) break;\n }\n return [...values];\n}\n\nfunction sumTokens(usage: TraceUsageSummary | undefined): number | undefined {\n if (usage?.inputTokens === undefined && usage?.outputTokens === undefined) return undefined;\n return (usage?.inputTokens ?? 0) + (usage?.outputTokens ?? 0);\n}\n\nexport type TracesListViewProps = {\n traces: TracesListViewTrace[];\n isLoading?: boolean;\n isFetchingNextPage?: boolean;\n hasNextPage?: boolean;\n setEndOfListElement?: (element: HTMLDivElement | null) => void;\n filtersApplied?: boolean;\n /** Currently featured/selected trace — its row gets the highlighted background. */\n featuredTraceId?: string | null;\n /**\n * Required in branches mode to disambiguate rows sharing a `traceId`. When set,\n * a row is featured only when both `traceId` and `spanId` match.\n */\n featuredSpanId?: string | null;\n /** Branches mode mixes root traces with subtraces — enables the Trace/Subtrace tooltip on the\n * level icon in the Name column, which is meaningless when every row is a root. */\n isBranchesMode?: boolean;\n /** Keys (`traceId:spanId`) of rows that just arrived via delta polling. Rows whose key is in\n * this set get a temporary tint to distinguish them from rows present since the last page-mode\n * fetch. Auto-expires upstream (in useTraces) after a short window. */\n recentlyAddedKeys?: Set<string>;\n /** Optional and metadata columns selected for this project. */\n columnPreferences?: TraceColumnPreferences;\n /** Token and estimated-cost totals, aggregated across model spans by trace ID. */\n usageByTraceId?: ReadonlyMap<string, TraceUsageSummary>;\n /** Called when a row is clicked. The current selection logic (toggle on same id) is the consumer's call. */\n onTraceClick: (trace: TracesListViewTrace) => void;\n /** Current sort of the Created column. When `onSortChange` is provided the header becomes sortable. */\n createdSort?: DataListSort;\n onSortChange?: (direction: DataListSort, key: 'startedAt') => void;\n /** When provided, custom column headers offer an `is <value>` filter for every value currently listed. */\n onFilterByField?: (field: TraceCustomColumn, value: string) => void;\n /** Storage id for the persisted column order. Use a distinct id per page so each keeps its own order. */\n listId?: string;\n};\n\n/**\n * Virtualized presentational list. Renders only the visible window via TanStack Virtual, and\n * uses DataList primitives for layout (CSS Grid with subgrid rows).\n */\nexport function TracesListView({\n traces,\n isLoading,\n isFetchingNextPage,\n hasNextPage,\n setEndOfListElement,\n filtersApplied,\n featuredTraceId,\n featuredSpanId,\n isBranchesMode,\n recentlyAddedKeys,\n columnPreferences = DEFAULT_TRACE_COLUMN_PREFERENCES,\n usageByTraceId,\n onTraceClick,\n createdSort,\n onSortChange,\n onFilterByField,\n listId = 'all-traces',\n}: TracesListViewProps) {\n const scrollRef = useRef<HTMLDivElement | null>(null);\n const columns = buildTraceListColumns(columnPreferences);\n const columnKeys = buildTraceListColumnKeys(columnPreferences);\n\n const virtualizer = useVirtualizer({\n count: traces.length,\n getScrollElement: () => scrollRef.current,\n estimateSize: () => ROW_HEIGHT,\n overscan: OVERSCAN,\n });\n\n const { getRowProps } = useDataListKeyboard({\n count: traces.length,\n containerRef: scrollRef,\n onNavigate: index => virtualizer.scrollToIndex(index),\n global: true,\n });\n\n const virtualItems = virtualizer.getVirtualItems();\n const totalSize = virtualizer.getTotalSize();\n const paddingTop = virtualItems[0]?.start ?? 0;\n const paddingBottom =\n virtualItems.length > 0 ? Math.max(0, totalSize - (virtualItems[virtualItems.length - 1]?.end ?? 0)) : 0;\n\n return (\n <TracesDataList\n reorderable\n id={listId}\n columns={columns}\n columnKeys={columnKeys}\n fit=\"container\"\n scrollRef={scrollRef}\n className=\"min-w-0\"\n >\n <TracesDataList.Top>\n {onSortChange ? (\n <TracesDataList.SortableTopCell sortKey=\"startedAt\" sort={createdSort} onSortChange={onSortChange}>\n Start\n </TracesDataList.SortableTopCell>\n ) : (\n <TracesDataList.TopCell>Start</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'type') && <TracesDataList.TopCell>Primitive type</TracesDataList.TopCell>}\n <TracesDataList.TopCell>Primitive name</TracesDataList.TopCell>\n {hasTraceColumn(columnPreferences, 'input') && <TracesDataList.TopCell>Input</TracesDataList.TopCell>}\n <TracesDataList.TopCell>Status</TracesDataList.TopCell>\n {hasTraceColumn(columnPreferences, 'duration') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Duration</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'endTime') && <TracesDataList.TopCell>End</TracesDataList.TopCell>}\n {hasTraceColumn(columnPreferences, 'environment') && (\n <TracesDataList.TopCell>Environment</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'inputTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Input tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'outputTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Output tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'totalTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Total tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'estimatedCost') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Est. cost</TracesDataList.TopCell>\n )}\n {columnPreferences.customColumns.map(field => {\n const label = TRACE_CUSTOM_COLUMN_LABELS[field];\n const filterValues = onFilterByField ? distinctCustomColumnValues(traces, field) : [];\n if (!onFilterByField || filterValues.length === 0) {\n return <TracesDataList.TopCell key={field}>{label}</TracesDataList.TopCell>;\n }\n return (\n <TracesDataList.TopCell key={field} className=\"overflow-visible\">\n <DropdownMenu>\n <DropdownMenu.Trigger\n render={\n <button\n type=\"button\"\n className={cn('flex min-w-0 items-center gap-1 rounded-sm hover:text-foreground', focusRing)}\n >\n <span className=\"min-w-0 truncate\">{label}</span>\n <ListFilterIcon aria-hidden className=\"size-[1.2em] shrink-0\" />\n </button>\n }\n />\n <DropdownMenu.Content align=\"start\">\n <DropdownMenu.Label>Filter by value</DropdownMenu.Label>\n {filterValues.map(value => (\n <DropdownMenu.Item key={value} onSelect={() => onFilterByField(field, value)}>\n <Txt as=\"span\" variant=\"body-sm\" font=\"mono\" className=\"min-w-0 truncate\">\n {value}\n </Txt>\n </DropdownMenu.Item>\n ))}\n </DropdownMenu.Content>\n </DropdownMenu>\n </TracesDataList.TopCell>\n );\n })}\n {columnPreferences.metadataKeys.map(key => (\n <TracesDataList.TopCellWithTooltip key={key} tooltip={key}>\n {key}\n </TracesDataList.TopCellWithTooltip>\n ))}\n </TracesDataList.Top>\n\n {isLoading ? (\n <DataListSkeletonRows columnCount={splitColumns(columns).length} />\n ) : traces.length === 0 ? (\n <TracesDataList.NoMatch\n message={filtersApplied ? 'No traces found for applied filters' : 'No traces found yet'}\n />\n ) : (\n <>\n <TracesDataList.Spacer height={paddingTop} />\n {virtualItems.map(vi => {\n const trace = traces[vi.index];\n if (!trace) return null;\n\n const isFeatured =\n trace.traceId === featuredTraceId && (featuredSpanId == null || trace.spanId === featuredSpanId);\n const rowKey = `${trace.traceId}:${trace.spanId ?? ''}`;\n const isRecentlyAdded = recentlyAddedKeys?.has(rowKey) ?? false;\n const displayDate = trace.startedAt ?? trace.createdAt;\n const usage = usageByTraceId?.get(trace.traceId);\n\n return (\n <TracesDataList.RowButton\n key={rowKey}\n ref={virtualizer.measureElement}\n data-index={vi.index}\n {...getRowProps(vi.index)}\n onClick={() => onTraceClick(trace)}\n featured={isFeatured}\n className={cn(isRecentlyAdded && 'animate-row-highlight')}\n >\n <TracesDataList.CreatedCell timestamp={displayDate} preset=\"day-time-seconds\" />\n {hasTraceColumn(columnPreferences, 'type') && <TracesDataList.TypeCell entityType={trace.entityType} />}\n <TracesDataList.NameCell\n name={trace.entityName || trace.name}\n parentSpanId={trace.parentSpanId}\n showLevelTooltip={isBranchesMode}\n />\n {hasTraceColumn(columnPreferences, 'input') && (\n <TracesDataList.InputCell input={trace.inputPreview ?? getInputPreview(trace.input)} />\n )}\n <TracesDataList.StatusCell status={trace.status} />\n {hasTraceColumn(columnPreferences, 'duration') && (\n <DataList.NumberCell font=\"mono\">\n {formatDuration(getSpanDurationMs(trace.startedAt, trace.endedAt))}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'endTime') && (\n <TracesDataList.CreatedCell timestamp={trace.endedAt ?? ''} preset=\"day-time-seconds\" />\n )}\n {hasTraceColumn(columnPreferences, 'environment') && (\n <DataList.TextCell>{trace.environment || '—'}</DataList.TextCell>\n )}\n {hasTraceColumn(columnPreferences, 'inputTokens') && (\n <DataList.NumberCell>\n {usage?.inputTokens === undefined ? undefined : formatCompactNumber(usage.inputTokens)}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'outputTokens') && (\n <DataList.NumberCell>\n {usage?.outputTokens === undefined ? undefined : formatCompactNumber(usage.outputTokens)}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'totalTokens') && (\n <DataList.NumberCell>\n {(() => {\n const total = sumTokens(usage);\n return total === undefined ? undefined : formatCompactNumber(total);\n })()}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'estimatedCost') && (\n <DataList.NumberCell>\n {usage?.estimatedCost === undefined ? undefined : formatCost(usage.estimatedCost, usage.costUnit)}\n </DataList.NumberCell>\n )}\n {columnPreferences.customColumns.map(field => (\n <DataList.TextCell font=\"mono\" key={field}>\n {customColumnValue(trace, field) ?? undefined}\n </DataList.TextCell>\n ))}\n {columnPreferences.metadataKeys.map(key => {\n const value = formatTraceMetadataValue(trace.metadata, key);\n return (\n <DataList.TextCell font=\"mono\" key={key}>\n {value}\n </DataList.TextCell>\n );\n })}\n </TracesDataList.RowButton>\n );\n })}\n <TracesDataList.Spacer height={paddingBottom} />\n <TracesDataList.NextPageLoading\n isLoading={isFetchingNextPage}\n hasMore={hasNextPage}\n setEndOfListElement={setEndOfListElement}\n />\n </>\n )}\n </TracesDataList>\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"traces-list-view.es.js","sources":["../../../../src/domains/traces/components/traces-list-view.tsx"],"sourcesContent":["import { useVirtualizer } from '@tanstack/react-virtual';\nimport { ListFilterIcon } from 'lucide-react';\nimport { useRef } from 'react';\nimport {\n DEFAULT_TRACE_COLUMN_PREFERENCES,\n TRACE_CUSTOM_COLUMN_LABELS,\n buildTraceListColumnKeys,\n buildTraceListColumns,\n formatTraceMetadataValue,\n hasTraceColumn,\n} from '../trace-list-columns';\nimport type { TraceColumnPreferences, TraceCustomColumn, TraceUsageSummary } from '../trace-list-columns';\nimport { getInputPreview, getSpanDurationMs } from '../utils/span-utils';\nimport { DataList, DataListSkeletonRows, TracesDataList, useDataListKeyboard } from '@/ds/components/DataList';\nimport type { DataListSort } from '@/ds/components/DataList';\nimport { splitColumns } from '@/ds/components/DataList/shared';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu';\nimport { Txt } from '@/ds/components/Txt/Txt';\nimport { focusRing } from '@/ds/primitives/transitions';\nimport { formatCompactNumber, formatCost } from '@/lib/cost';\nimport { cn } from '@/lib/utils';\nimport { formatDuration } from '@/utils/duration';\n\nexport type TracesListViewTrace = {\n traceId: string;\n /** Required for branch rows; absent on plain trace rows (which are root-rooted). */\n spanId?: string | null;\n /** `null`/missing → root span. Drives the Kind column's icon (top-level trace vs nested branch). */\n parentSpanId?: string | null;\n name: string;\n entityType?: string | null;\n entityId?: string | null;\n entityName?: string | null;\n threadId?: string | null;\n resourceId?: string | null;\n environment?: string | null;\n status?: string | null;\n /** Server-rendered preview of `input`. Present on lightweight rows, which omit `input` itself. */\n inputPreview?: string | null;\n input?: unknown;\n metadata?: Record<string, unknown> | null;\n startedAt?: Date | string | null;\n endedAt?: Date | string | null;\n createdAt: Date | string;\n};\n\nconst ROW_HEIGHT = 36;\nconst OVERSCAN = 8;\n/** Distinct values offered in a custom column's \"filter by value\" header menu. */\nconst MAX_FILTER_VALUES = 20;\n\nfunction customColumnValue(trace: TracesListViewTrace, field: TraceCustomColumn): string | null | undefined {\n return trace[field];\n}\n\nfunction distinctCustomColumnValues(traces: TracesListViewTrace[], field: TraceCustomColumn): string[] {\n const values = new Set<string>();\n for (const trace of traces) {\n const value = trace[field];\n if (typeof value === 'string' && value) values.add(value);\n if (values.size >= MAX_FILTER_VALUES) break;\n }\n return [...values];\n}\n\nfunction sumTokens(usage: TraceUsageSummary | undefined): number | undefined {\n if (usage?.inputTokens === undefined && usage?.outputTokens === undefined) return undefined;\n return (usage?.inputTokens ?? 0) + (usage?.outputTokens ?? 0);\n}\n\nexport type TracesListViewProps = {\n traces: TracesListViewTrace[];\n isLoading?: boolean;\n isFetchingNextPage?: boolean;\n hasNextPage?: boolean;\n setEndOfListElement?: (element: HTMLDivElement | null) => void;\n filtersApplied?: boolean;\n /** Currently featured/selected trace — its row gets the highlighted background. */\n featuredTraceId?: string | null;\n /**\n * Required in branches mode to disambiguate rows sharing a `traceId`. When set,\n * a row is featured only when both `traceId` and `spanId` match.\n */\n featuredSpanId?: string | null;\n /** Branches mode mixes root traces with subtraces — enables the Trace/Subtrace tooltip on the\n * level icon in the Name column, which is meaningless when every row is a root. */\n isBranchesMode?: boolean;\n /** Keys (`traceId:spanId`) of rows that just arrived via delta polling. Rows whose key is in\n * this set get a temporary tint to distinguish them from rows present since the last page-mode\n * fetch. Auto-expires upstream (in useTraces) after a short window. */\n recentlyAddedKeys?: Set<string>;\n /** Optional and metadata columns selected for this project. */\n columnPreferences?: TraceColumnPreferences;\n /** Token and estimated-cost totals, aggregated across model spans by trace ID. */\n usageByTraceId?: ReadonlyMap<string, TraceUsageSummary>;\n /** Called when a row is clicked. The current selection logic (toggle on same id) is the consumer's call. */\n onTraceClick: (trace: TracesListViewTrace) => void;\n /** Current sort of the Created column. When `onSortChange` is provided the header becomes sortable. */\n createdSort?: DataListSort;\n onSortChange?: (direction: DataListSort, key: 'startedAt') => void;\n /** When provided, custom column headers offer an `is <value>` filter for every value currently listed. */\n onFilterByField?: (field: TraceCustomColumn, value: string) => void;\n /** Storage id for the persisted column order. Use a distinct id per page so each keeps its own order. */\n listId?: string;\n};\n\n/**\n * Virtualized presentational list. Renders only the visible window via TanStack Virtual, and\n * uses DataList primitives for layout (CSS Grid with subgrid rows).\n */\nexport function TracesListView({\n traces,\n isLoading,\n isFetchingNextPage,\n hasNextPage,\n setEndOfListElement,\n filtersApplied,\n featuredTraceId,\n featuredSpanId,\n isBranchesMode,\n recentlyAddedKeys,\n columnPreferences = DEFAULT_TRACE_COLUMN_PREFERENCES,\n usageByTraceId,\n onTraceClick,\n createdSort,\n onSortChange,\n onFilterByField,\n listId = 'all-traces',\n}: TracesListViewProps) {\n const scrollRef = useRef<HTMLDivElement | null>(null);\n const columns = buildTraceListColumns(columnPreferences);\n const columnKeys = buildTraceListColumnKeys(columnPreferences);\n\n const virtualizer = useVirtualizer({\n count: traces.length,\n getScrollElement: () => scrollRef.current,\n estimateSize: () => ROW_HEIGHT,\n overscan: OVERSCAN,\n });\n\n const { getRowProps } = useDataListKeyboard({\n count: traces.length,\n containerRef: scrollRef,\n onNavigate: index => virtualizer.scrollToIndex(index),\n global: true,\n });\n\n const virtualItems = virtualizer.getVirtualItems();\n const totalSize = virtualizer.getTotalSize();\n const paddingTop = virtualItems[0]?.start ?? 0;\n const paddingBottom =\n virtualItems.length > 0 ? Math.max(0, totalSize - (virtualItems[virtualItems.length - 1]?.end ?? 0)) : 0;\n\n return (\n <TracesDataList\n reorderable\n id={listId}\n columns={columns}\n columnKeys={columnKeys}\n fit=\"container\"\n scrollRef={scrollRef}\n className=\"min-w-0\"\n >\n <TracesDataList.Top>\n {onSortChange ? (\n <TracesDataList.SortableTopCell sortKey=\"startedAt\" sort={createdSort} onSortChange={onSortChange}>\n Start\n </TracesDataList.SortableTopCell>\n ) : (\n <TracesDataList.TopCell>Start</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'type') && <TracesDataList.TopCell>Primitive type</TracesDataList.TopCell>}\n <TracesDataList.TopCell>Primitive name</TracesDataList.TopCell>\n {hasTraceColumn(columnPreferences, 'input') && <TracesDataList.TopCell>Input</TracesDataList.TopCell>}\n <TracesDataList.TopCell>Status</TracesDataList.TopCell>\n {hasTraceColumn(columnPreferences, 'duration') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Duration</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'endTime') && <TracesDataList.TopCell>End</TracesDataList.TopCell>}\n {hasTraceColumn(columnPreferences, 'environment') && (\n <TracesDataList.TopCell>Environment</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'inputTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Input tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'outputTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Output tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'totalTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Total tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'estimatedCost') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Est. cost</TracesDataList.TopCell>\n )}\n {columnPreferences.customColumns.map(field => {\n const label = TRACE_CUSTOM_COLUMN_LABELS[field];\n const filterValues = onFilterByField ? distinctCustomColumnValues(traces, field) : [];\n if (!onFilterByField || filterValues.length === 0) {\n return <TracesDataList.TopCell key={field}>{label}</TracesDataList.TopCell>;\n }\n return (\n <TracesDataList.TopCell key={field} className=\"overflow-visible\">\n <DropdownMenu>\n <DropdownMenu.Trigger\n render={\n <button\n type=\"button\"\n className={cn('flex min-w-0 items-center gap-1 rounded-sm hover:text-foreground', focusRing)}\n >\n <span className=\"min-w-0 truncate\">{label}</span>\n <ListFilterIcon aria-hidden className=\"size-[1.2em] shrink-0\" />\n </button>\n }\n />\n <DropdownMenu.Content align=\"start\">\n <DropdownMenu.Label>Filter by value</DropdownMenu.Label>\n {filterValues.map(value => (\n <DropdownMenu.Item key={value} onSelect={() => onFilterByField(field, value)}>\n <Txt as=\"span\" variant=\"body-sm\" font=\"mono\" className=\"min-w-0 truncate\">\n {value}\n </Txt>\n </DropdownMenu.Item>\n ))}\n </DropdownMenu.Content>\n </DropdownMenu>\n </TracesDataList.TopCell>\n );\n })}\n {columnPreferences.metadataKeys.map(key => (\n <TracesDataList.TopCellWithTooltip key={key} tooltip={key}>\n {key}\n </TracesDataList.TopCellWithTooltip>\n ))}\n </TracesDataList.Top>\n\n {isLoading ? (\n <DataListSkeletonRows columnCount={splitColumns(columns).length} />\n ) : traces.length === 0 ? (\n <TracesDataList.NoMatch\n message={filtersApplied ? 'No traces found for applied filters' : 'No traces found yet'}\n />\n ) : (\n <>\n <TracesDataList.Spacer height={paddingTop} />\n {virtualItems.map(vi => {\n const trace = traces[vi.index];\n if (!trace) return null;\n\n const isFeatured =\n trace.traceId === featuredTraceId && (featuredSpanId == null || trace.spanId === featuredSpanId);\n const rowKey = `${trace.traceId}:${trace.spanId ?? ''}`;\n const isRecentlyAdded = recentlyAddedKeys?.has(rowKey) ?? false;\n const displayDate = trace.startedAt ?? trace.createdAt;\n const usage = usageByTraceId?.get(trace.traceId);\n\n return (\n <TracesDataList.RowButton\n key={rowKey}\n ref={virtualizer.measureElement}\n data-index={vi.index}\n {...getRowProps(vi.index)}\n onClick={() => onTraceClick(trace)}\n featured={isFeatured}\n className={cn(isRecentlyAdded && 'animate-row-highlight')}\n >\n <TracesDataList.CreatedCell timestamp={displayDate} preset=\"day-time-seconds\" />\n {hasTraceColumn(columnPreferences, 'type') && <TracesDataList.TypeCell entityType={trace.entityType} />}\n <TracesDataList.NameCell\n name={trace.entityName || trace.name}\n parentSpanId={trace.parentSpanId}\n showLevelTooltip={isBranchesMode}\n />\n {hasTraceColumn(columnPreferences, 'input') && (\n <TracesDataList.InputCell input={trace.inputPreview ?? getInputPreview(trace.input)} />\n )}\n <TracesDataList.StatusCell status={trace.status} />\n {hasTraceColumn(columnPreferences, 'duration') && (\n <DataList.NumberCell font=\"mono\">\n {formatDuration(getSpanDurationMs(trace.startedAt, trace.endedAt))}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'endTime') && (\n <TracesDataList.CreatedCell timestamp={trace.endedAt ?? ''} preset=\"day-time-seconds\" />\n )}\n {hasTraceColumn(columnPreferences, 'environment') && (\n <DataList.TextCell>{trace.environment || '—'}</DataList.TextCell>\n )}\n {hasTraceColumn(columnPreferences, 'inputTokens') && (\n <DataList.NumberCell>\n {usage?.inputTokens === undefined ? undefined : formatCompactNumber(usage.inputTokens)}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'outputTokens') && (\n <DataList.NumberCell>\n {usage?.outputTokens === undefined ? undefined : formatCompactNumber(usage.outputTokens)}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'totalTokens') && (\n <DataList.NumberCell>\n {(() => {\n const total = sumTokens(usage);\n return total === undefined ? undefined : formatCompactNumber(total);\n })()}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'estimatedCost') && (\n <DataList.NumberCell>\n {usage?.estimatedCost === undefined ? undefined : formatCost(usage.estimatedCost, usage.costUnit)}\n </DataList.NumberCell>\n )}\n {columnPreferences.customColumns.map(field => (\n <DataList.TextCell font=\"mono\" key={field}>\n {customColumnValue(trace, field) ?? undefined}\n </DataList.TextCell>\n ))}\n {columnPreferences.metadataKeys.map(key => {\n const value = formatTraceMetadataValue(trace.metadata, key);\n return (\n <DataList.TextCell font=\"mono\" key={key}>\n {value}\n </DataList.TextCell>\n );\n })}\n </TracesDataList.RowButton>\n );\n })}\n <TracesDataList.Spacer height={paddingBottom} />\n <TracesDataList.NextPageLoading\n isLoading={isFetchingNextPage}\n hasMore={hasNextPage}\n setEndOfListElement={setEndOfListElement}\n />\n </>\n )}\n </TracesDataList>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -4,10 +4,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
6
  const domains_traces_traceListColumns = require('../trace-list-columns.cjs.js');
7
- require('../../../data-list-2svaWtkq.cjs');
8
- const dataListSkeleton = require('../../../data-list-skeleton-C-j6Sf0F.cjs');
9
- require('react');
10
- require('../../../keyboard/keyboard-shortcuts-context.cjs.js');
7
+ const dataListSkeleton = require('../../../data-list-skeleton-HmAfNH0v.cjs');
11
8
  const skeleton = require('../../../skeleton-bUFvB8ok.cjs');
12
9
 
13
10
  function TracesPageSkeleton({ columnPreferences = domains_traces_traceListColumns.DEFAULT_TRACE_COLUMN_PREFERENCES }) {
@@ -1 +1 @@
1
- {"version":3,"file":"traces-page-skeleton.cjs.js","sources":["../../../../src/domains/traces/components/traces-page-skeleton.tsx"],"sourcesContent":["import { buildTraceListColumns, DEFAULT_TRACE_COLUMN_PREFERENCES } from '../trace-list-columns';\nimport type { TraceColumnPreferences } from '../trace-list-columns';\nimport { DataListSkeleton } from '@/ds/components/DataList';\nimport { Skeleton } from '@/ds/components/Skeleton';\n\nexport type TracesPageSkeletonProps = {\n columnPreferences?: TraceColumnPreferences;\n};\n\n/**\n * Page-level placeholder shown while filter-field discovery is pending: a toolbar-height\n * bar stands in for the FilterBar and the usual list skeleton for the trace rows.\n */\nexport function TracesPageSkeleton({ columnPreferences = DEFAULT_TRACE_COLUMN_PREFERENCES }: TracesPageSkeletonProps) {\n const columns = buildTraceListColumns(columnPreferences);\n return (\n <div\n className=\"flex h-full min-h-0 flex-col gap-2\"\n role=\"status\"\n aria-label=\"Loading traces\"\n data-testid=\"traces-page-skeleton\"\n >\n <div className=\"flex items-center gap-2\">\n <Skeleton className=\"h-control-md min-w-64 flex-1\" />\n <Skeleton className=\"h-control-md w-28\" />\n </div>\n <DataListSkeleton columns={columns} fit=\"container\" />\n </div>\n );\n}\n"],"names":["DEFAULT_TRACE_COLUMN_PREFERENCES","buildTraceListColumns","jsxs","jsx","Skeleton","DataListSkeleton"],"mappings":";;;;;;;;;;;;AAaO,SAAS,kBAAA,CAAmB,EAAE,iBAAA,GAAoBA,gEAAA,EAAiC,EAA4B;AACpH,EAAA,MAAM,OAAA,GAAUC,sDAAsB,iBAAiB,CAAA;AACvD,EAAA,uBACEC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,oCAAA;AAAA,MACV,IAAA,EAAK,QAAA;AAAA,MACL,YAAA,EAAW,gBAAA;AAAA,MACX,aAAA,EAAY,sBAAA;AAAA,MAEZ,QAAA,EAAA;AAAA,wBAAAA,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,yBAAA,EACb,QAAA,EAAA;AAAA,0BAAAC,cAAA,CAACC,iBAAA,EAAA,EAAS,WAAU,8BAAA,EAA+B,CAAA;AAAA,0BACnDD,cAAA,CAACC,iBAAA,EAAA,EAAS,SAAA,EAAU,mBAAA,EAAoB;AAAA,SAAA,EAC1C,CAAA;AAAA,wBACAD,cAAA,CAACE,iCAAA,EAAA,EAAiB,OAAA,EAAkB,GAAA,EAAI,WAAA,EAAY;AAAA;AAAA;AAAA,GACtD;AAEJ;;;;"}
1
+ {"version":3,"file":"traces-page-skeleton.cjs.js","sources":["../../../../src/domains/traces/components/traces-page-skeleton.tsx"],"sourcesContent":["import { buildTraceListColumns, DEFAULT_TRACE_COLUMN_PREFERENCES } from '../trace-list-columns';\nimport type { TraceColumnPreferences } from '../trace-list-columns';\nimport { DataListSkeleton } from '@/ds/components/DataList';\nimport { Skeleton } from '@/ds/components/Skeleton';\n\nexport type TracesPageSkeletonProps = {\n columnPreferences?: TraceColumnPreferences;\n};\n\n/**\n * Page-level placeholder shown while filter-field discovery is pending: a toolbar-height\n * bar stands in for the FilterBar and the usual list skeleton for the trace rows.\n */\nexport function TracesPageSkeleton({ columnPreferences = DEFAULT_TRACE_COLUMN_PREFERENCES }: TracesPageSkeletonProps) {\n const columns = buildTraceListColumns(columnPreferences);\n return (\n <div\n className=\"flex h-full min-h-0 flex-col gap-2\"\n role=\"status\"\n aria-label=\"Loading traces\"\n data-testid=\"traces-page-skeleton\"\n >\n <div className=\"flex items-center gap-2\">\n <Skeleton className=\"h-control-md min-w-64 flex-1\" />\n <Skeleton className=\"h-control-md w-28\" />\n </div>\n <DataListSkeleton columns={columns} fit=\"container\" />\n </div>\n );\n}\n"],"names":["DEFAULT_TRACE_COLUMN_PREFERENCES","buildTraceListColumns","jsxs","jsx","Skeleton","DataListSkeleton"],"mappings":";;;;;;;;;AAaO,SAAS,kBAAA,CAAmB,EAAE,iBAAA,GAAoBA,gEAAA,EAAiC,EAA4B;AACpH,EAAA,MAAM,OAAA,GAAUC,sDAAsB,iBAAiB,CAAA;AACvD,EAAA,uBACEC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,oCAAA;AAAA,MACV,IAAA,EAAK,QAAA;AAAA,MACL,YAAA,EAAW,gBAAA;AAAA,MACX,aAAA,EAAY,sBAAA;AAAA,MAEZ,QAAA,EAAA;AAAA,wBAAAA,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,yBAAA,EACb,QAAA,EAAA;AAAA,0BAAAC,cAAA,CAACC,iBAAA,EAAA,EAAS,WAAU,8BAAA,EAA+B,CAAA;AAAA,0BACnDD,cAAA,CAACC,iBAAA,EAAA,EAAS,SAAA,EAAU,mBAAA,EAAoB;AAAA,SAAA,EAC1C,CAAA;AAAA,wBACAD,cAAA,CAACE,iCAAA,EAAA,EAAiB,OAAA,EAAkB,GAAA,EAAI,WAAA,EAAY;AAAA;AAAA;AAAA,GACtD;AAEJ;;;;"}
@@ -1,9 +1,6 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { buildTraceListColumns, DEFAULT_TRACE_COLUMN_PREFERENCES } from '../trace-list-columns.es.js';
3
- import '../../../data-list-BbOYiz4B.js';
4
- import { D as DataListSkeleton } from '../../../data-list-skeleton-C9Zm5XMX.js';
5
- import 'react';
6
- import '../../../keyboard/keyboard-shortcuts-context.es.js';
3
+ import { D as DataListSkeleton } from '../../../data-list-skeleton-BytOffUO.js';
7
4
  import { S as Skeleton } from '../../../skeleton-Bjxvf3Y-.js';
8
5
 
9
6
  function TracesPageSkeleton({ columnPreferences = DEFAULT_TRACE_COLUMN_PREFERENCES }) {
@@ -1 +1 @@
1
- {"version":3,"file":"traces-page-skeleton.es.js","sources":["../../../../src/domains/traces/components/traces-page-skeleton.tsx"],"sourcesContent":["import { buildTraceListColumns, DEFAULT_TRACE_COLUMN_PREFERENCES } from '../trace-list-columns';\nimport type { TraceColumnPreferences } from '../trace-list-columns';\nimport { DataListSkeleton } from '@/ds/components/DataList';\nimport { Skeleton } from '@/ds/components/Skeleton';\n\nexport type TracesPageSkeletonProps = {\n columnPreferences?: TraceColumnPreferences;\n};\n\n/**\n * Page-level placeholder shown while filter-field discovery is pending: a toolbar-height\n * bar stands in for the FilterBar and the usual list skeleton for the trace rows.\n */\nexport function TracesPageSkeleton({ columnPreferences = DEFAULT_TRACE_COLUMN_PREFERENCES }: TracesPageSkeletonProps) {\n const columns = buildTraceListColumns(columnPreferences);\n return (\n <div\n className=\"flex h-full min-h-0 flex-col gap-2\"\n role=\"status\"\n aria-label=\"Loading traces\"\n data-testid=\"traces-page-skeleton\"\n >\n <div className=\"flex items-center gap-2\">\n <Skeleton className=\"h-control-md min-w-64 flex-1\" />\n <Skeleton className=\"h-control-md w-28\" />\n </div>\n <DataListSkeleton columns={columns} fit=\"container\" />\n </div>\n );\n}\n"],"names":[],"mappings":";;;;;;;;AAaO,SAAS,kBAAA,CAAmB,EAAE,iBAAA,GAAoB,gCAAA,EAAiC,EAA4B;AACpH,EAAA,MAAM,OAAA,GAAU,sBAAsB,iBAAiB,CAAA;AACvD,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,oCAAA;AAAA,MACV,IAAA,EAAK,QAAA;AAAA,MACL,YAAA,EAAW,gBAAA;AAAA,MACX,aAAA,EAAY,sBAAA;AAAA,MAEZ,QAAA,EAAA;AAAA,wBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,yBAAA,EACb,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,QAAA,EAAA,EAAS,WAAU,8BAAA,EAA+B,CAAA;AAAA,0BACnD,GAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAU,mBAAA,EAAoB;AAAA,SAAA,EAC1C,CAAA;AAAA,wBACA,GAAA,CAAC,gBAAA,EAAA,EAAiB,OAAA,EAAkB,GAAA,EAAI,WAAA,EAAY;AAAA;AAAA;AAAA,GACtD;AAEJ;;;;"}
1
+ {"version":3,"file":"traces-page-skeleton.es.js","sources":["../../../../src/domains/traces/components/traces-page-skeleton.tsx"],"sourcesContent":["import { buildTraceListColumns, DEFAULT_TRACE_COLUMN_PREFERENCES } from '../trace-list-columns';\nimport type { TraceColumnPreferences } from '../trace-list-columns';\nimport { DataListSkeleton } from '@/ds/components/DataList';\nimport { Skeleton } from '@/ds/components/Skeleton';\n\nexport type TracesPageSkeletonProps = {\n columnPreferences?: TraceColumnPreferences;\n};\n\n/**\n * Page-level placeholder shown while filter-field discovery is pending: a toolbar-height\n * bar stands in for the FilterBar and the usual list skeleton for the trace rows.\n */\nexport function TracesPageSkeleton({ columnPreferences = DEFAULT_TRACE_COLUMN_PREFERENCES }: TracesPageSkeletonProps) {\n const columns = buildTraceListColumns(columnPreferences);\n return (\n <div\n className=\"flex h-full min-h-0 flex-col gap-2\"\n role=\"status\"\n aria-label=\"Loading traces\"\n data-testid=\"traces-page-skeleton\"\n >\n <div className=\"flex items-center gap-2\">\n <Skeleton className=\"h-control-md min-w-64 flex-1\" />\n <Skeleton className=\"h-control-md w-28\" />\n </div>\n <DataListSkeleton columns={columns} fit=\"container\" />\n </div>\n );\n}\n"],"names":[],"mappings":";;;;;AAaO,SAAS,kBAAA,CAAmB,EAAE,iBAAA,GAAoB,gCAAA,EAAiC,EAA4B;AACpH,EAAA,MAAM,OAAA,GAAU,sBAAsB,iBAAiB,CAAA;AACvD,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,oCAAA;AAAA,MACV,IAAA,EAAK,QAAA;AAAA,MACL,YAAA,EAAW,gBAAA;AAAA,MACX,aAAA,EAAY,sBAAA;AAAA,MAEZ,QAAA,EAAA;AAAA,wBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,yBAAA,EACb,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,QAAA,EAAA,EAAS,WAAU,8BAAA,EAA+B,CAAA;AAAA,0BACnD,GAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAU,mBAAA,EAAoB;AAAA,SAAA,EAC1C,CAAA;AAAA,wBACA,GAAA,CAAC,gBAAA,EAAA,EAAiB,OAAA,EAAkB,GAAA,EAAI,WAAA,EAAY;AAAA;AAAA;AAAA,GACtD;AAEJ;;;;"}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const React = require('react');
6
- const domains_traces_traceQueryFilters = require('../../../trace-filters-Bh4dVNPX.cjs');
6
+ const domains_traces_traceQueryFilters = require('../../../trace-filters-Dz4oj8yV.cjs');
7
7
 
8
8
  function withoutParams(params, excludeParams) {
9
9
  if (!excludeParams?.length) return params;
@@ -1,5 +1,5 @@
1
1
  import { useRef, useEffect, useCallback } from 'react';
2
- import { K as hasAnyTraceFilterParams, P as loadTraceFiltersFromStorage, V as saveTraceFiltersToStorage, Z as traceFilterOperatorParam } from '../../../trace-filters-C71gmCq4.js';
2
+ import { I as hasAnyTraceFilterParams, N as loadTraceFiltersFromStorage, S as saveTraceFiltersToStorage, X as traceFilterOperatorParam } from '../../../trace-filters-C91h9X86.js';
3
3
 
4
4
  function withoutParams(params, excludeParams) {
5
5
  if (!excludeParams?.length) return params;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const React = require('react');
6
- const domains_traces_traceQueryFilters = require('../../../trace-filters-Bh4dVNPX.cjs');
6
+ const domains_traces_traceQueryFilters = require('../../../trace-filters-Dz4oj8yV.cjs');
7
7
 
8
8
  const TRACE_ID_PARAM = "traceId";
9
9
  const SPAN_ID_PARAM = "spanId";
@@ -1,5 +1,5 @@
1
1
  import { useMemo, useRef, useCallback } from 'react';
2
- import { b as TRACE_DATE_PRESET_PARAM, c as TRACE_DATE_PRESET_VALUES, a as TRACE_DATE_FROM_PARAM, d as TRACE_DATE_TO_PARAM, T as TRACE_ANCHOR_SPAN_ID_PARAM, j as TRACE_LIST_MODE_PARAM, k as TRACE_LIST_MODE_VALUES, R as ROOT_ENTITY_TYPE_OPTIONS, t as TRACE_ROOT_ENTITY_TYPE_PARAM, v as TRACE_STATUS_PARAM, w as TRACE_STATUS_VALUES, J as getTracePropertyFilterTokens, I as getTraceFilterGroups, y as applyTracePropertyFilterTokens } from '../../../trace-filters-C71gmCq4.js';
2
+ import { b as TRACE_DATE_PRESET_PARAM, c as TRACE_DATE_PRESET_VALUES, a as TRACE_DATE_FROM_PARAM, d as TRACE_DATE_TO_PARAM, T as TRACE_ANCHOR_SPAN_ID_PARAM, j as TRACE_LIST_MODE_PARAM, k as TRACE_LIST_MODE_VALUES, R as ROOT_ENTITY_TYPE_OPTIONS, s as TRACE_ROOT_ENTITY_TYPE_PARAM, u as TRACE_STATUS_PARAM, v as TRACE_STATUS_VALUES, H as getTracePropertyFilterTokens, G as getTraceFilterGroups, x as applyTracePropertyFilterTokens } from '../../../trace-filters-C91h9X86.js';
3
3
 
4
4
  const TRACE_ID_PARAM = "traceId";
5
5
  const SPAN_ID_PARAM = "spanId";
@@ -2,10 +2,18 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
+ const clientJs = require('@mastra/client-js');
5
6
  const traces = require('@mastra/react/hooks/traces');
6
7
  const React = require('react');
7
8
  const domains_traces_components_tracesListViewAdapter = require('../components/traces-list-view-adapter.cjs.js');
8
9
 
10
+ const TRACES_LIST_REFETCH_INTERVAL_MS = 1e4;
11
+ function isRejectedTraceListRequest(error) {
12
+ return error instanceof clientJs.MastraClientError && error.status >= 400 && error.status < 500;
13
+ }
14
+ function fixedWindowRefetchInterval(error) {
15
+ return isRejectedTraceListRequest(error) ? false : TRACES_LIST_REFETCH_INTERVAL_MS;
16
+ }
9
17
  function useTracesListSource({
10
18
  query: buildQuery,
11
19
  orderBy,
@@ -18,10 +26,11 @@ function useTracesListSource({
18
26
  }) {
19
27
  const [now, setNow] = React.useState(() => /* @__PURE__ */ new Date());
20
28
  const [autoRefetch, setAutoRefetch] = React.useState(initialAutoRefetch);
29
+ const refetchInterval = autoRefetch && !rolling ? (query) => fixedWindowRefetchInterval(query.state.error) : false;
21
30
  const result = traces.useTraceQuery({
22
31
  queryOptions: {
23
- traceQuery: { refetchInterval: autoRefetch && !rolling ? 1e4 : false, refetchOnWindowFocus: autoRefetch },
24
- legacy: { refetchInterval: autoRefetch && !rolling ? 1e4 : false, refetchOnWindowFocus: autoRefetch }
32
+ traceQuery: { refetchInterval, refetchOnWindowFocus: autoRefetch },
33
+ legacy: { refetchInterval, refetchOnWindowFocus: autoRefetch }
25
34
  },
26
35
  query: orderBy ? { ...buildQuery(now), orderBy } : buildQuery(now),
27
36
  withQueryTrace,
@@ -31,7 +40,7 @@ function useTracesListSource({
31
40
  });
32
41
  React.useEffect(() => {
33
42
  if (!autoRefetch || !rolling || result.error) return;
34
- const timer = setInterval(() => setNow(/* @__PURE__ */ new Date()), 1e4);
43
+ const timer = setInterval(() => setNow(/* @__PURE__ */ new Date()), TRACES_LIST_REFETCH_INTERVAL_MS);
35
44
  return () => clearInterval(timer);
36
45
  }, [autoRefetch, rolling, result.error]);
37
46
  return {
@@ -42,5 +51,8 @@ function useTracesListSource({
42
51
  };
43
52
  }
44
53
 
54
+ exports.TRACES_LIST_REFETCH_INTERVAL_MS = TRACES_LIST_REFETCH_INTERVAL_MS;
55
+ exports.fixedWindowRefetchInterval = fixedWindowRefetchInterval;
56
+ exports.isRejectedTraceListRequest = isRejectedTraceListRequest;
45
57
  exports.useTracesListSource = useTracesListSource;
46
58
  //# sourceMappingURL=use-traces-list-source.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-traces-list-source.cjs.js","sources":["../../../../src/domains/traces/hooks/use-traces-list-source.ts"],"sourcesContent":["import { useTraceQuery } from '@mastra/react/hooks/traces';\nimport type { TraceQueryArgs, UseTraceQueryArgs } from '@mastra/react/hooks/traces';\nimport { useEffect, useState } from 'react';\nimport { toTracesListViewTraces } from '../components/traces-list-view-adapter';\n\nexport interface UseTracesListSourceArgs {\n query: (now: Date) => TraceQueryArgs;\n orderBy?: TraceQueryArgs['orderBy'];\n rolling?: boolean;\n initialAutoRefetch?: boolean;\n withQueryTrace?: boolean;\n legacyFilters?: UseTraceQueryArgs['legacyFilters'];\n /** Rows per page; defaults to `TRACE_QUERY_PER_PAGE`. */\n limit?: number;\n enabled?: boolean;\n}\n\nexport function useTracesListSource({\n query: buildQuery,\n orderBy,\n rolling = true,\n initialAutoRefetch = true,\n withQueryTrace,\n legacyFilters,\n limit,\n enabled,\n}: UseTracesListSourceArgs) {\n const [now, setNow] = useState(() => new Date());\n const [autoRefetch, setAutoRefetch] = useState(initialAutoRefetch);\n const result = useTraceQuery({\n queryOptions: {\n traceQuery: { refetchInterval: autoRefetch && !rolling ? 10_000 : false, refetchOnWindowFocus: autoRefetch },\n legacy: { refetchInterval: autoRefetch && !rolling ? 10_000 : false, refetchOnWindowFocus: autoRefetch },\n },\n query: orderBy ? { ...buildQuery(now), orderBy } : buildQuery(now),\n withQueryTrace,\n legacyFilters,\n limit,\n enabled,\n });\n\n // Moving the query key refreshes the cursor chain once, without a second polling request.\n useEffect(() => {\n if (!autoRefetch || !rolling || result.error) return;\n const timer = setInterval(() => setNow(new Date()), 10_000);\n return () => clearInterval(timer);\n }, [autoRefetch, rolling, result.error]);\n\n return {\n ...result,\n rows: toTracesListViewTraces(result.data ?? []),\n autoRefetch,\n setAutoRefetch,\n };\n}\n"],"names":["useState","useTraceQuery","useEffect","toTracesListViewTraces"],"mappings":";;;;;;;;AAiBO,SAAS,mBAAA,CAAoB;AAAA,EAClC,KAAA,EAAO,UAAA;AAAA,EACP,OAAA;AAAA,EACA,OAAA,GAAU,IAAA;AAAA,EACV,kBAAA,GAAqB,IAAA;AAAA,EACrB,cAAA;AAAA,EACA,aAAA;AAAA,EACA,KAAA;AAAA,EACA;AACF,CAAA,EAA4B;AAC1B,EAAA,MAAM,CAAC,KAAK,MAAM,CAAA,GAAIA,eAAS,sBAAM,IAAI,MAAM,CAAA;AAC/C,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAIA,eAAS,kBAAkB,CAAA;AACjE,EAAA,MAAM,SAASC,oBAAA,CAAc;AAAA,IAC3B,YAAA,EAAc;AAAA,MACZ,UAAA,EAAY,EAAE,eAAA,EAAiB,WAAA,IAAe,CAAC,OAAA,GAAU,GAAA,GAAS,KAAA,EAAO,oBAAA,EAAsB,WAAA,EAAY;AAAA,MAC3G,MAAA,EAAQ,EAAE,eAAA,EAAiB,WAAA,IAAe,CAAC,OAAA,GAAU,GAAA,GAAS,KAAA,EAAO,oBAAA,EAAsB,WAAA;AAAY,KACzG;AAAA,IACA,KAAA,EAAO,OAAA,GAAU,EAAE,GAAG,UAAA,CAAW,GAAG,CAAA,EAAG,OAAA,EAAQ,GAAI,UAAA,CAAW,GAAG,CAAA;AAAA,IACjE,cAAA;AAAA,IACA,aAAA;AAAA,IACA,KAAA;AAAA,IACA;AAAA,GACD,CAAA;AAGD,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,WAAA,IAAe,CAAC,OAAA,IAAW,OAAO,KAAA,EAAO;AAC9C,IAAA,MAAM,KAAA,GAAQ,YAAY,MAAM,MAAA,qBAAW,IAAA,EAAM,GAAG,GAAM,CAAA;AAC1D,IAAA,OAAO,MAAM,cAAc,KAAK,CAAA;AAAA,EAClC,GAAG,CAAC,WAAA,EAAa,OAAA,EAAS,MAAA,CAAO,KAAK,CAAC,CAAA;AAEvC,EAAA,OAAO;AAAA,IACL,GAAG,MAAA;AAAA,IACH,IAAA,EAAMC,sEAAA,CAAuB,MAAA,CAAO,IAAA,IAAQ,EAAE,CAAA;AAAA,IAC9C,WAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
1
+ {"version":3,"file":"use-traces-list-source.cjs.js","sources":["../../../../src/domains/traces/hooks/use-traces-list-source.ts"],"sourcesContent":["import { MastraClientError } from '@mastra/client-js';\nimport { useTraceQuery } from '@mastra/react/hooks/traces';\nimport type { TraceQueryArgs, UseTraceQueryArgs } from '@mastra/react/hooks/traces';\nimport { useEffect, useState } from 'react';\nimport { toTracesListViewTraces } from '../components/traces-list-view-adapter';\n\nexport const TRACES_LIST_REFETCH_INTERVAL_MS = 10_000;\n\n/** The server refused the request (e.g. a time range over its cap); retrying cannot change that. */\nexport function isRejectedTraceListRequest(error: unknown): boolean {\n return error instanceof MastraClientError && error.status >= 400 && error.status < 500;\n}\n\nexport function fixedWindowRefetchInterval(error: unknown): number | false {\n return isRejectedTraceListRequest(error) ? false : TRACES_LIST_REFETCH_INTERVAL_MS;\n}\n\nexport interface UseTracesListSourceArgs {\n query: (now: Date) => TraceQueryArgs;\n orderBy?: TraceQueryArgs['orderBy'];\n rolling?: boolean;\n initialAutoRefetch?: boolean;\n withQueryTrace?: boolean;\n legacyFilters?: UseTraceQueryArgs['legacyFilters'];\n /** Rows per page; defaults to `TRACE_QUERY_PER_PAGE`. */\n limit?: number;\n enabled?: boolean;\n}\n\nexport function useTracesListSource({\n query: buildQuery,\n orderBy,\n rolling = true,\n initialAutoRefetch = true,\n withQueryTrace,\n legacyFilters,\n limit,\n enabled,\n}: UseTracesListSourceArgs) {\n const [now, setNow] = useState(() => new Date());\n const [autoRefetch, setAutoRefetch] = useState(initialAutoRefetch);\n // A fixed window polls in place. Transient failures keep polling (a blip must not silence the\n // list), but a request the server refuses ends it: each retry would only clear the error, flash\n // the placeholder list, and fail again.\n const refetchInterval =\n autoRefetch && !rolling\n ? (query: { state: { error: unknown } }) => fixedWindowRefetchInterval(query.state.error)\n : false;\n const result = useTraceQuery({\n queryOptions: {\n traceQuery: { refetchInterval, refetchOnWindowFocus: autoRefetch },\n legacy: { refetchInterval, refetchOnWindowFocus: autoRefetch },\n },\n query: orderBy ? { ...buildQuery(now), orderBy } : buildQuery(now),\n withQueryTrace,\n legacyFilters,\n limit,\n enabled,\n });\n\n // Moving the query key refreshes the cursor chain once, without a second polling request.\n useEffect(() => {\n if (!autoRefetch || !rolling || result.error) return;\n const timer = setInterval(() => setNow(new Date()), TRACES_LIST_REFETCH_INTERVAL_MS);\n return () => clearInterval(timer);\n }, [autoRefetch, rolling, result.error]);\n\n return {\n ...result,\n rows: toTracesListViewTraces(result.data ?? []),\n autoRefetch,\n setAutoRefetch,\n };\n}\n"],"names":["MastraClientError","useState","useTraceQuery","useEffect","toTracesListViewTraces"],"mappings":";;;;;;;;;AAMO,MAAM,+BAAA,GAAkC;AAGxC,SAAS,2BAA2B,KAAA,EAAyB;AAClE,EAAA,OAAO,iBAAiBA,0BAAA,IAAqB,KAAA,CAAM,MAAA,IAAU,GAAA,IAAO,MAAM,MAAA,GAAS,GAAA;AACrF;AAEO,SAAS,2BAA2B,KAAA,EAAgC;AACzE,EAAA,OAAO,0BAAA,CAA2B,KAAK,CAAA,GAAI,KAAA,GAAQ,+BAAA;AACrD;AAcO,SAAS,mBAAA,CAAoB;AAAA,EAClC,KAAA,EAAO,UAAA;AAAA,EACP,OAAA;AAAA,EACA,OAAA,GAAU,IAAA;AAAA,EACV,kBAAA,GAAqB,IAAA;AAAA,EACrB,cAAA;AAAA,EACA,aAAA;AAAA,EACA,KAAA;AAAA,EACA;AACF,CAAA,EAA4B;AAC1B,EAAA,MAAM,CAAC,KAAK,MAAM,CAAA,GAAIC,eAAS,sBAAM,IAAI,MAAM,CAAA;AAC/C,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAIA,eAAS,kBAAkB,CAAA;AAIjE,EAAA,MAAM,eAAA,GACJ,WAAA,IAAe,CAAC,OAAA,GACZ,CAAC,UAAyC,0BAAA,CAA2B,KAAA,CAAM,KAAA,CAAM,KAAK,CAAA,GACtF,KAAA;AACN,EAAA,MAAM,SAASC,oBAAA,CAAc;AAAA,IAC3B,YAAA,EAAc;AAAA,MACZ,UAAA,EAAY,EAAE,eAAA,EAAiB,oBAAA,EAAsB,WAAA,EAAY;AAAA,MACjE,MAAA,EAAQ,EAAE,eAAA,EAAiB,oBAAA,EAAsB,WAAA;AAAY,KAC/D;AAAA,IACA,KAAA,EAAO,OAAA,GAAU,EAAE,GAAG,UAAA,CAAW,GAAG,CAAA,EAAG,OAAA,EAAQ,GAAI,UAAA,CAAW,GAAG,CAAA;AAAA,IACjE,cAAA;AAAA,IACA,aAAA;AAAA,IACA,KAAA;AAAA,IACA;AAAA,GACD,CAAA;AAGD,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,WAAA,IAAe,CAAC,OAAA,IAAW,OAAO,KAAA,EAAO;AAC9C,IAAA,MAAM,KAAA,GAAQ,YAAY,MAAM,MAAA,qBAAW,IAAA,EAAM,GAAG,+BAA+B,CAAA;AACnF,IAAA,OAAO,MAAM,cAAc,KAAK,CAAA;AAAA,EAClC,GAAG,CAAC,WAAA,EAAa,OAAA,EAAS,MAAA,CAAO,KAAK,CAAC,CAAA;AAEvC,EAAA,OAAO;AAAA,IACL,GAAG,MAAA;AAAA,IACH,IAAA,EAAMC,sEAAA,CAAuB,MAAA,CAAO,IAAA,IAAQ,EAAE,CAAA;AAAA,IAC9C,WAAA;AAAA,IACA;AAAA,GACF;AACF;;;;;;;"}
@@ -1,7 +1,15 @@
1
+ import { MastraClientError } from '@mastra/client-js';
1
2
  import { useTraceQuery } from '@mastra/react/hooks/traces';
2
3
  import { useState, useEffect } from 'react';
3
4
  import { toTracesListViewTraces } from '../components/traces-list-view-adapter.es.js';
4
5
 
6
+ const TRACES_LIST_REFETCH_INTERVAL_MS = 1e4;
7
+ function isRejectedTraceListRequest(error) {
8
+ return error instanceof MastraClientError && error.status >= 400 && error.status < 500;
9
+ }
10
+ function fixedWindowRefetchInterval(error) {
11
+ return isRejectedTraceListRequest(error) ? false : TRACES_LIST_REFETCH_INTERVAL_MS;
12
+ }
5
13
  function useTracesListSource({
6
14
  query: buildQuery,
7
15
  orderBy,
@@ -14,10 +22,11 @@ function useTracesListSource({
14
22
  }) {
15
23
  const [now, setNow] = useState(() => /* @__PURE__ */ new Date());
16
24
  const [autoRefetch, setAutoRefetch] = useState(initialAutoRefetch);
25
+ const refetchInterval = autoRefetch && !rolling ? (query) => fixedWindowRefetchInterval(query.state.error) : false;
17
26
  const result = useTraceQuery({
18
27
  queryOptions: {
19
- traceQuery: { refetchInterval: autoRefetch && !rolling ? 1e4 : false, refetchOnWindowFocus: autoRefetch },
20
- legacy: { refetchInterval: autoRefetch && !rolling ? 1e4 : false, refetchOnWindowFocus: autoRefetch }
28
+ traceQuery: { refetchInterval, refetchOnWindowFocus: autoRefetch },
29
+ legacy: { refetchInterval, refetchOnWindowFocus: autoRefetch }
21
30
  },
22
31
  query: orderBy ? { ...buildQuery(now), orderBy } : buildQuery(now),
23
32
  withQueryTrace,
@@ -27,7 +36,7 @@ function useTracesListSource({
27
36
  });
28
37
  useEffect(() => {
29
38
  if (!autoRefetch || !rolling || result.error) return;
30
- const timer = setInterval(() => setNow(/* @__PURE__ */ new Date()), 1e4);
39
+ const timer = setInterval(() => setNow(/* @__PURE__ */ new Date()), TRACES_LIST_REFETCH_INTERVAL_MS);
31
40
  return () => clearInterval(timer);
32
41
  }, [autoRefetch, rolling, result.error]);
33
42
  return {
@@ -38,5 +47,5 @@ function useTracesListSource({
38
47
  };
39
48
  }
40
49
 
41
- export { useTracesListSource };
50
+ export { TRACES_LIST_REFETCH_INTERVAL_MS, fixedWindowRefetchInterval, isRejectedTraceListRequest, useTracesListSource };
42
51
  //# sourceMappingURL=use-traces-list-source.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-traces-list-source.es.js","sources":["../../../../src/domains/traces/hooks/use-traces-list-source.ts"],"sourcesContent":["import { useTraceQuery } from '@mastra/react/hooks/traces';\nimport type { TraceQueryArgs, UseTraceQueryArgs } from '@mastra/react/hooks/traces';\nimport { useEffect, useState } from 'react';\nimport { toTracesListViewTraces } from '../components/traces-list-view-adapter';\n\nexport interface UseTracesListSourceArgs {\n query: (now: Date) => TraceQueryArgs;\n orderBy?: TraceQueryArgs['orderBy'];\n rolling?: boolean;\n initialAutoRefetch?: boolean;\n withQueryTrace?: boolean;\n legacyFilters?: UseTraceQueryArgs['legacyFilters'];\n /** Rows per page; defaults to `TRACE_QUERY_PER_PAGE`. */\n limit?: number;\n enabled?: boolean;\n}\n\nexport function useTracesListSource({\n query: buildQuery,\n orderBy,\n rolling = true,\n initialAutoRefetch = true,\n withQueryTrace,\n legacyFilters,\n limit,\n enabled,\n}: UseTracesListSourceArgs) {\n const [now, setNow] = useState(() => new Date());\n const [autoRefetch, setAutoRefetch] = useState(initialAutoRefetch);\n const result = useTraceQuery({\n queryOptions: {\n traceQuery: { refetchInterval: autoRefetch && !rolling ? 10_000 : false, refetchOnWindowFocus: autoRefetch },\n legacy: { refetchInterval: autoRefetch && !rolling ? 10_000 : false, refetchOnWindowFocus: autoRefetch },\n },\n query: orderBy ? { ...buildQuery(now), orderBy } : buildQuery(now),\n withQueryTrace,\n legacyFilters,\n limit,\n enabled,\n });\n\n // Moving the query key refreshes the cursor chain once, without a second polling request.\n useEffect(() => {\n if (!autoRefetch || !rolling || result.error) return;\n const timer = setInterval(() => setNow(new Date()), 10_000);\n return () => clearInterval(timer);\n }, [autoRefetch, rolling, result.error]);\n\n return {\n ...result,\n rows: toTracesListViewTraces(result.data ?? []),\n autoRefetch,\n setAutoRefetch,\n };\n}\n"],"names":[],"mappings":";;;;AAiBO,SAAS,mBAAA,CAAoB;AAAA,EAClC,KAAA,EAAO,UAAA;AAAA,EACP,OAAA;AAAA,EACA,OAAA,GAAU,IAAA;AAAA,EACV,kBAAA,GAAqB,IAAA;AAAA,EACrB,cAAA;AAAA,EACA,aAAA;AAAA,EACA,KAAA;AAAA,EACA;AACF,CAAA,EAA4B;AAC1B,EAAA,MAAM,CAAC,KAAK,MAAM,CAAA,GAAI,SAAS,sBAAM,IAAI,MAAM,CAAA;AAC/C,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAI,SAAS,kBAAkB,CAAA;AACjE,EAAA,MAAM,SAAS,aAAA,CAAc;AAAA,IAC3B,YAAA,EAAc;AAAA,MACZ,UAAA,EAAY,EAAE,eAAA,EAAiB,WAAA,IAAe,CAAC,OAAA,GAAU,GAAA,GAAS,KAAA,EAAO,oBAAA,EAAsB,WAAA,EAAY;AAAA,MAC3G,MAAA,EAAQ,EAAE,eAAA,EAAiB,WAAA,IAAe,CAAC,OAAA,GAAU,GAAA,GAAS,KAAA,EAAO,oBAAA,EAAsB,WAAA;AAAY,KACzG;AAAA,IACA,KAAA,EAAO,OAAA,GAAU,EAAE,GAAG,UAAA,CAAW,GAAG,CAAA,EAAG,OAAA,EAAQ,GAAI,UAAA,CAAW,GAAG,CAAA;AAAA,IACjE,cAAA;AAAA,IACA,aAAA;AAAA,IACA,KAAA;AAAA,IACA;AAAA,GACD,CAAA;AAGD,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,WAAA,IAAe,CAAC,OAAA,IAAW,OAAO,KAAA,EAAO;AAC9C,IAAA,MAAM,KAAA,GAAQ,YAAY,MAAM,MAAA,qBAAW,IAAA,EAAM,GAAG,GAAM,CAAA;AAC1D,IAAA,OAAO,MAAM,cAAc,KAAK,CAAA;AAAA,EAClC,GAAG,CAAC,WAAA,EAAa,OAAA,EAAS,MAAA,CAAO,KAAK,CAAC,CAAA;AAEvC,EAAA,OAAO;AAAA,IACL,GAAG,MAAA;AAAA,IACH,IAAA,EAAM,sBAAA,CAAuB,MAAA,CAAO,IAAA,IAAQ,EAAE,CAAA;AAAA,IAC9C,WAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
1
+ {"version":3,"file":"use-traces-list-source.es.js","sources":["../../../../src/domains/traces/hooks/use-traces-list-source.ts"],"sourcesContent":["import { MastraClientError } from '@mastra/client-js';\nimport { useTraceQuery } from '@mastra/react/hooks/traces';\nimport type { TraceQueryArgs, UseTraceQueryArgs } from '@mastra/react/hooks/traces';\nimport { useEffect, useState } from 'react';\nimport { toTracesListViewTraces } from '../components/traces-list-view-adapter';\n\nexport const TRACES_LIST_REFETCH_INTERVAL_MS = 10_000;\n\n/** The server refused the request (e.g. a time range over its cap); retrying cannot change that. */\nexport function isRejectedTraceListRequest(error: unknown): boolean {\n return error instanceof MastraClientError && error.status >= 400 && error.status < 500;\n}\n\nexport function fixedWindowRefetchInterval(error: unknown): number | false {\n return isRejectedTraceListRequest(error) ? false : TRACES_LIST_REFETCH_INTERVAL_MS;\n}\n\nexport interface UseTracesListSourceArgs {\n query: (now: Date) => TraceQueryArgs;\n orderBy?: TraceQueryArgs['orderBy'];\n rolling?: boolean;\n initialAutoRefetch?: boolean;\n withQueryTrace?: boolean;\n legacyFilters?: UseTraceQueryArgs['legacyFilters'];\n /** Rows per page; defaults to `TRACE_QUERY_PER_PAGE`. */\n limit?: number;\n enabled?: boolean;\n}\n\nexport function useTracesListSource({\n query: buildQuery,\n orderBy,\n rolling = true,\n initialAutoRefetch = true,\n withQueryTrace,\n legacyFilters,\n limit,\n enabled,\n}: UseTracesListSourceArgs) {\n const [now, setNow] = useState(() => new Date());\n const [autoRefetch, setAutoRefetch] = useState(initialAutoRefetch);\n // A fixed window polls in place. Transient failures keep polling (a blip must not silence the\n // list), but a request the server refuses ends it: each retry would only clear the error, flash\n // the placeholder list, and fail again.\n const refetchInterval =\n autoRefetch && !rolling\n ? (query: { state: { error: unknown } }) => fixedWindowRefetchInterval(query.state.error)\n : false;\n const result = useTraceQuery({\n queryOptions: {\n traceQuery: { refetchInterval, refetchOnWindowFocus: autoRefetch },\n legacy: { refetchInterval, refetchOnWindowFocus: autoRefetch },\n },\n query: orderBy ? { ...buildQuery(now), orderBy } : buildQuery(now),\n withQueryTrace,\n legacyFilters,\n limit,\n enabled,\n });\n\n // Moving the query key refreshes the cursor chain once, without a second polling request.\n useEffect(() => {\n if (!autoRefetch || !rolling || result.error) return;\n const timer = setInterval(() => setNow(new Date()), TRACES_LIST_REFETCH_INTERVAL_MS);\n return () => clearInterval(timer);\n }, [autoRefetch, rolling, result.error]);\n\n return {\n ...result,\n rows: toTracesListViewTraces(result.data ?? []),\n autoRefetch,\n setAutoRefetch,\n };\n}\n"],"names":[],"mappings":";;;;;AAMO,MAAM,+BAAA,GAAkC;AAGxC,SAAS,2BAA2B,KAAA,EAAyB;AAClE,EAAA,OAAO,iBAAiB,iBAAA,IAAqB,KAAA,CAAM,MAAA,IAAU,GAAA,IAAO,MAAM,MAAA,GAAS,GAAA;AACrF;AAEO,SAAS,2BAA2B,KAAA,EAAgC;AACzE,EAAA,OAAO,0BAAA,CAA2B,KAAK,CAAA,GAAI,KAAA,GAAQ,+BAAA;AACrD;AAcO,SAAS,mBAAA,CAAoB;AAAA,EAClC,KAAA,EAAO,UAAA;AAAA,EACP,OAAA;AAAA,EACA,OAAA,GAAU,IAAA;AAAA,EACV,kBAAA,GAAqB,IAAA;AAAA,EACrB,cAAA;AAAA,EACA,aAAA;AAAA,EACA,KAAA;AAAA,EACA;AACF,CAAA,EAA4B;AAC1B,EAAA,MAAM,CAAC,KAAK,MAAM,CAAA,GAAI,SAAS,sBAAM,IAAI,MAAM,CAAA;AAC/C,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAI,SAAS,kBAAkB,CAAA;AAIjE,EAAA,MAAM,eAAA,GACJ,WAAA,IAAe,CAAC,OAAA,GACZ,CAAC,UAAyC,0BAAA,CAA2B,KAAA,CAAM,KAAA,CAAM,KAAK,CAAA,GACtF,KAAA;AACN,EAAA,MAAM,SAAS,aAAA,CAAc;AAAA,IAC3B,YAAA,EAAc;AAAA,MACZ,UAAA,EAAY,EAAE,eAAA,EAAiB,oBAAA,EAAsB,WAAA,EAAY;AAAA,MACjE,MAAA,EAAQ,EAAE,eAAA,EAAiB,oBAAA,EAAsB,WAAA;AAAY,KAC/D;AAAA,IACA,KAAA,EAAO,OAAA,GAAU,EAAE,GAAG,UAAA,CAAW,GAAG,CAAA,EAAG,OAAA,EAAQ,GAAI,UAAA,CAAW,GAAG,CAAA;AAAA,IACjE,cAAA;AAAA,IACA,aAAA;AAAA,IACA,KAAA;AAAA,IACA;AAAA,GACD,CAAA;AAGD,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,WAAA,IAAe,CAAC,OAAA,IAAW,OAAO,KAAA,EAAO;AAC9C,IAAA,MAAM,KAAA,GAAQ,YAAY,MAAM,MAAA,qBAAW,IAAA,EAAM,GAAG,+BAA+B,CAAA;AACnF,IAAA,OAAO,MAAM,cAAc,KAAK,CAAA;AAAA,EAClC,GAAG,CAAC,WAAA,EAAa,OAAA,EAAS,MAAA,CAAO,KAAK,CAAC,CAAA;AAEvC,EAAA,OAAO;AAAA,IACL,GAAG,MAAA;AAAA,IACH,IAAA,EAAM,sBAAA,CAAuB,MAAA,CAAO,IAAA,IAAQ,EAAE,CAAA;AAAA,IAC9C,WAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const traces = require('@mastra/react/hooks/traces');
6
6
  require('lucide-react');
7
- const domains_traces_traceQueryFilters = require('../../trace-filters-Bh4dVNPX.cjs');
7
+ const domains_traces_traceQueryFilters = require('../../trace-filters-Dz4oj8yV.cjs');
8
8
  require('../../types-Ns4ZNp-g.cjs');
9
9
 
10
10
 
@@ -1,5 +1,5 @@
1
1
  export { ROOT_ENTITY_TYPES } from '@mastra/react/hooks/traces';
2
2
  import 'lucide-react';
3
- export { D as DEFAULT_TRACE_FILTERS_STORAGE_KEY, R as ROOT_ENTITY_TYPE_OPTIONS, T as TRACE_ANCHOR_SPAN_ID_PARAM, a as TRACE_DATE_FROM_PARAM, b as TRACE_DATE_PRESET_PARAM, c as TRACE_DATE_PRESET_VALUES, d as TRACE_DATE_TO_PARAM, e as TRACE_FILTER_BAR_OPERATORS, f as TRACE_FILTER_GROUP_PARAM, h as TRACE_FILTER_OPERATOR_PARAM_SUFFIX, i as TRACE_LIST_MODE_OPTIONS, j as TRACE_LIST_MODE_PARAM, k as TRACE_LIST_MODE_VALUES, l as TRACE_METADATA_FILTER_FIELD_PREFIX, m as TRACE_METADATA_FILTER_PARAM_PREFIX, n as TRACE_PROPERTY_FILTER_FIELD_IDS, o as TRACE_PROPERTY_FILTER_PARAM_BY_FIELD, t as TRACE_ROOT_ENTITY_TYPE_PARAM, u as TRACE_STATUS_OPTIONS, v as TRACE_STATUS_PARAM, w as TRACE_STATUS_VALUES, x as TRACE_SYNTHETIC_FILTER_FIELD_IDS, y as applyTracePropertyFilterTokens, z as buildTraceListFilters, C as clearSavedTraceFilters, E as createTraceFilterBarFields, F as filterBarExpressionToTraceFilters, G as filterBarItemsToTraceTokens, H as getPreservedTraceFilterParams, I as getTraceFilterGroups, J as getTracePropertyFilterTokens, K as hasAnyTraceFilterParams, L as isLegacyAnyValue, M as isTraceFilterGroup, O as isTraceMetadataFieldId, P as loadTraceFiltersFromStorage, Q as metadataFieldIdToParam, S as metadataParamToFieldId, U as parseTraceFilterGroupParam, V as saveTraceFiltersToStorage, W as serializeTraceFilterGroup, X as traceFilterFieldColor, Y as traceFilterFieldIcon, Z as traceFilterOperatorParam, _ as traceFilterTokenOperator, $ as traceFiltersToFilterBarExpression, a0 as traceTokensToFilterBarItems } from '../../trace-filters-C71gmCq4.js';
3
+ export { D as DEFAULT_TRACE_FILTERS_STORAGE_KEY, R as ROOT_ENTITY_TYPE_OPTIONS, T as TRACE_ANCHOR_SPAN_ID_PARAM, a as TRACE_DATE_FROM_PARAM, b as TRACE_DATE_PRESET_PARAM, c as TRACE_DATE_PRESET_VALUES, d as TRACE_DATE_TO_PARAM, e as TRACE_FILTER_BAR_OPERATORS, f as TRACE_FILTER_GROUP_PARAM, h as TRACE_FILTER_OPERATOR_PARAM_SUFFIX, i as TRACE_LIST_MODE_OPTIONS, j as TRACE_LIST_MODE_PARAM, k as TRACE_LIST_MODE_VALUES, l as TRACE_METADATA_FILTER_FIELD_PREFIX, m as TRACE_METADATA_FILTER_PARAM_PREFIX, n as TRACE_PROPERTY_FILTER_FIELD_IDS, o as TRACE_PROPERTY_FILTER_PARAM_BY_FIELD, s as TRACE_ROOT_ENTITY_TYPE_PARAM, t as TRACE_STATUS_OPTIONS, u as TRACE_STATUS_PARAM, v as TRACE_STATUS_VALUES, w as TRACE_SYNTHETIC_FILTER_FIELD_IDS, x as applyTracePropertyFilterTokens, y as buildTraceListFilters, A as clearSavedTraceFilters, B as createTraceFilterBarFields, C as filterBarExpressionToTraceFilters, E as filterBarItemsToTraceTokens, F as getPreservedTraceFilterParams, G as getTraceFilterGroups, H as getTracePropertyFilterTokens, I as hasAnyTraceFilterParams, J as isLegacyAnyValue, K as isTraceFilterGroup, M as isTraceMetadataFieldId, N as loadTraceFiltersFromStorage, O as metadataFieldIdToParam, P as metadataParamToFieldId, Q as parseTraceFilterGroupParam, S as saveTraceFiltersToStorage, U as serializeTraceFilterGroup, V as traceFilterFieldColor, W as traceFilterFieldIcon, X as traceFilterOperatorParam, Y as traceFilterTokenOperator, Z as traceFiltersToFilterBarExpression, _ as traceTokensToFilterBarItems } from '../../trace-filters-C91h9X86.js';
4
4
  import '../../types-CIPrYAzY.js';
5
5
  //# sourceMappingURL=trace-filters.es.js.map
@@ -2,17 +2,15 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const domains_traces_traceQueryFilters = require('../../trace-filters-Bh4dVNPX.cjs');
5
+ const domains_traces_traceQueryFilters = require('../../trace-filters-Dz4oj8yV.cjs');
6
6
 
7
7
 
8
8
 
9
9
  exports.TRACE_FILTER_OPERATOR_IDS = domains_traces_traceQueryFilters.TRACE_FILTER_OPERATOR_IDS;
10
- exports.TRACE_QUERY_DISCOVERY_MAX_RANGE_MS = domains_traces_traceQueryFilters.TRACE_QUERY_DISCOVERY_MAX_RANGE_MS;
11
10
  exports.TRACE_QUERY_NUMERIC_FIELD_IDS = domains_traces_traceQueryFilters.TRACE_QUERY_NUMERIC_FIELD_IDS;
12
11
  exports.TRACE_QUERY_OPTIONAL_TRACE_FIELD_IDS = domains_traces_traceQueryFilters.TRACE_QUERY_OPTIONAL_TRACE_FIELD_IDS;
13
12
  exports.TRACE_QUERY_UNSUPPORTED_FILTER_FIELDS = domains_traces_traceQueryFilters.TRACE_QUERY_UNSUPPORTED_FILTER_FIELDS;
14
13
  exports.buildTraceQueryRequest = domains_traces_traceQueryFilters.buildTraceQueryRequest;
15
- exports.clampTraceDiscoveryTimeRange = domains_traces_traceQueryFilters.clampTraceDiscoveryTimeRange;
16
14
  exports.isTraceFilterGroup = domains_traces_traceQueryFilters.isTraceFilterGroup;
17
15
  exports.isTraceFilterOperatorId = domains_traces_traceQueryFilters.isTraceFilterOperatorId;
18
16
  //# sourceMappingURL=trace-query-filters.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"trace-query-filters.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"trace-query-filters.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;"}
@@ -1,2 +1,2 @@
1
- export { g as TRACE_FILTER_OPERATOR_IDS, p as TRACE_QUERY_DISCOVERY_MAX_RANGE_MS, q as TRACE_QUERY_NUMERIC_FIELD_IDS, r as TRACE_QUERY_OPTIONAL_TRACE_FIELD_IDS, s as TRACE_QUERY_UNSUPPORTED_FILTER_FIELDS, A as buildTraceQueryRequest, B as clampTraceDiscoveryTimeRange, M as isTraceFilterGroup, N as isTraceFilterOperatorId } from '../../trace-filters-C71gmCq4.js';
1
+ export { g as TRACE_FILTER_OPERATOR_IDS, p as TRACE_QUERY_NUMERIC_FIELD_IDS, q as TRACE_QUERY_OPTIONAL_TRACE_FIELD_IDS, r as TRACE_QUERY_UNSUPPORTED_FILTER_FIELDS, z as buildTraceQueryRequest, K as isTraceFilterGroup, L as isTraceFilterOperatorId } from '../../trace-filters-C91h9X86.js';
2
2
  //# sourceMappingURL=trace-query-filters.es.js.map
@@ -51,7 +51,7 @@ const domains_traces_utils_flattenToSearchText = require('./traces/utils/flatten
51
51
  const domains_traces_utils_toSearchableSpans = require('./traces/utils/to-searchable-spans.cjs.js');
52
52
  const domains_traces_utils_spanTiming = require('./traces/utils/span-timing.cjs.js');
53
53
  const domains_traces_utils_spanUtils = require('./traces/utils/span-utils.cjs.js');
54
- const domains_traces_traceQueryFilters = require('../trace-filters-Bh4dVNPX.cjs');
54
+ const domains_traces_traceQueryFilters = require('../trace-filters-Dz4oj8yV.cjs');
55
55
  const domains_traces_types = require('./traces/types.cjs.js');
56
56
  const domains_traces_components_threadTrace_threadTraceRow = require('./traces/components/thread-trace/thread-trace-row.cjs.js');
57
57
  const domains_traces_components_threadTrace_threadTraceContext = require('./traces/components/thread-trace/thread-trace-context.cjs.js');
@@ -182,7 +182,6 @@ exports.TRACE_METADATA_FILTER_FIELD_PREFIX = domains_traces_traceQueryFilters.TR
182
182
  exports.TRACE_METADATA_FILTER_PARAM_PREFIX = domains_traces_traceQueryFilters.TRACE_METADATA_FILTER_PARAM_PREFIX;
183
183
  exports.TRACE_PROPERTY_FILTER_FIELD_IDS = domains_traces_traceQueryFilters.TRACE_PROPERTY_FILTER_FIELD_IDS;
184
184
  exports.TRACE_PROPERTY_FILTER_PARAM_BY_FIELD = domains_traces_traceQueryFilters.TRACE_PROPERTY_FILTER_PARAM_BY_FIELD;
185
- exports.TRACE_QUERY_DISCOVERY_MAX_RANGE_MS = domains_traces_traceQueryFilters.TRACE_QUERY_DISCOVERY_MAX_RANGE_MS;
186
185
  exports.TRACE_QUERY_NUMERIC_FIELD_IDS = domains_traces_traceQueryFilters.TRACE_QUERY_NUMERIC_FIELD_IDS;
187
186
  exports.TRACE_QUERY_OPTIONAL_TRACE_FIELD_IDS = domains_traces_traceQueryFilters.TRACE_QUERY_OPTIONAL_TRACE_FIELD_IDS;
188
187
  exports.TRACE_QUERY_UNSUPPORTED_FILTER_FIELDS = domains_traces_traceQueryFilters.TRACE_QUERY_UNSUPPORTED_FILTER_FIELDS;
@@ -194,7 +193,6 @@ exports.TRACE_SYNTHETIC_FILTER_FIELD_IDS = domains_traces_traceQueryFilters.TRAC
194
193
  exports.applyTracePropertyFilterTokens = domains_traces_traceQueryFilters.applyTracePropertyFilterTokens;
195
194
  exports.buildTraceListFilters = domains_traces_traceQueryFilters.buildTraceListFilters;
196
195
  exports.buildTraceQueryRequest = domains_traces_traceQueryFilters.buildTraceQueryRequest;
197
- exports.clampTraceDiscoveryTimeRange = domains_traces_traceQueryFilters.clampTraceDiscoveryTimeRange;
198
196
  exports.clearSavedTraceFilters = domains_traces_traceQueryFilters.clearSavedTraceFilters;
199
197
  exports.createTraceFilterBarFields = domains_traces_traceQueryFilters.createTraceFilterBarFields;
200
198
  exports.filterBarExpressionToTraceFilters = domains_traces_traceQueryFilters.filterBarExpressionToTraceFilters;
@@ -1 +1 @@
1
- {"version":3,"file":"traces.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"traces.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -47,7 +47,7 @@ export { flattenToSearchText } from './traces/utils/flatten-to-search-text.es.js
47
47
  export { toSearchableSpans } from './traces/utils/to-searchable-spans.es.js';
48
48
  export { getSpanTimingLayout } from './traces/utils/span-timing.es.js';
49
49
  export { getInputPreview, getSpanDurationMs, getTokenLimitMessage, isTokenLimitExceeded } from './traces/utils/span-utils.es.js';
50
- export { D as DEFAULT_TRACE_FILTERS_STORAGE_KEY, R as ROOT_ENTITY_TYPE_OPTIONS, T as TRACE_ANCHOR_SPAN_ID_PARAM, a as TRACE_DATE_FROM_PARAM, b as TRACE_DATE_PRESET_PARAM, c as TRACE_DATE_PRESET_VALUES, d as TRACE_DATE_TO_PARAM, e as TRACE_FILTER_BAR_OPERATORS, f as TRACE_FILTER_GROUP_PARAM, g as TRACE_FILTER_OPERATOR_IDS, h as TRACE_FILTER_OPERATOR_PARAM_SUFFIX, i as TRACE_LIST_MODE_OPTIONS, j as TRACE_LIST_MODE_PARAM, k as TRACE_LIST_MODE_VALUES, l as TRACE_METADATA_FILTER_FIELD_PREFIX, m as TRACE_METADATA_FILTER_PARAM_PREFIX, n as TRACE_PROPERTY_FILTER_FIELD_IDS, o as TRACE_PROPERTY_FILTER_PARAM_BY_FIELD, p as TRACE_QUERY_DISCOVERY_MAX_RANGE_MS, q as TRACE_QUERY_NUMERIC_FIELD_IDS, r as TRACE_QUERY_OPTIONAL_TRACE_FIELD_IDS, s as TRACE_QUERY_UNSUPPORTED_FILTER_FIELDS, t as TRACE_ROOT_ENTITY_TYPE_PARAM, u as TRACE_STATUS_OPTIONS, v as TRACE_STATUS_PARAM, w as TRACE_STATUS_VALUES, x as TRACE_SYNTHETIC_FILTER_FIELD_IDS, y as applyTracePropertyFilterTokens, z as buildTraceListFilters, A as buildTraceQueryRequest, B as clampTraceDiscoveryTimeRange, C as clearSavedTraceFilters, E as createTraceFilterBarFields, F as filterBarExpressionToTraceFilters, G as filterBarItemsToTraceTokens, H as getPreservedTraceFilterParams, I as getTraceFilterGroups, J as getTracePropertyFilterTokens, K as hasAnyTraceFilterParams, L as isLegacyAnyValue, M as isTraceFilterGroup, N as isTraceFilterOperatorId, O as isTraceMetadataFieldId, P as loadTraceFiltersFromStorage, Q as metadataFieldIdToParam, S as metadataParamToFieldId, U as parseTraceFilterGroupParam, V as saveTraceFiltersToStorage, W as serializeTraceFilterGroup, X as traceFilterFieldColor, Y as traceFilterFieldIcon, Z as traceFilterOperatorParam, _ as traceFilterTokenOperator, $ as traceFiltersToFilterBarExpression, a0 as traceTokensToFilterBarItems } from '../trace-filters-C71gmCq4.js';
50
+ export { D as DEFAULT_TRACE_FILTERS_STORAGE_KEY, R as ROOT_ENTITY_TYPE_OPTIONS, T as TRACE_ANCHOR_SPAN_ID_PARAM, a as TRACE_DATE_FROM_PARAM, b as TRACE_DATE_PRESET_PARAM, c as TRACE_DATE_PRESET_VALUES, d as TRACE_DATE_TO_PARAM, e as TRACE_FILTER_BAR_OPERATORS, f as TRACE_FILTER_GROUP_PARAM, g as TRACE_FILTER_OPERATOR_IDS, h as TRACE_FILTER_OPERATOR_PARAM_SUFFIX, i as TRACE_LIST_MODE_OPTIONS, j as TRACE_LIST_MODE_PARAM, k as TRACE_LIST_MODE_VALUES, l as TRACE_METADATA_FILTER_FIELD_PREFIX, m as TRACE_METADATA_FILTER_PARAM_PREFIX, n as TRACE_PROPERTY_FILTER_FIELD_IDS, o as TRACE_PROPERTY_FILTER_PARAM_BY_FIELD, p as TRACE_QUERY_NUMERIC_FIELD_IDS, q as TRACE_QUERY_OPTIONAL_TRACE_FIELD_IDS, r as TRACE_QUERY_UNSUPPORTED_FILTER_FIELDS, s as TRACE_ROOT_ENTITY_TYPE_PARAM, t as TRACE_STATUS_OPTIONS, u as TRACE_STATUS_PARAM, v as TRACE_STATUS_VALUES, w as TRACE_SYNTHETIC_FILTER_FIELD_IDS, x as applyTracePropertyFilterTokens, y as buildTraceListFilters, z as buildTraceQueryRequest, A as clearSavedTraceFilters, B as createTraceFilterBarFields, C as filterBarExpressionToTraceFilters, E as filterBarItemsToTraceTokens, F as getPreservedTraceFilterParams, G as getTraceFilterGroups, H as getTracePropertyFilterTokens, I as hasAnyTraceFilterParams, J as isLegacyAnyValue, K as isTraceFilterGroup, L as isTraceFilterOperatorId, M as isTraceMetadataFieldId, N as loadTraceFiltersFromStorage, O as metadataFieldIdToParam, P as metadataParamToFieldId, Q as parseTraceFilterGroupParam, S as saveTraceFiltersToStorage, U as serializeTraceFilterGroup, V as traceFilterFieldColor, W as traceFilterFieldIcon, X as traceFilterOperatorParam, Y as traceFilterTokenOperator, Z as traceFiltersToFilterBarExpression, _ as traceTokensToFilterBarItems } from '../trace-filters-C91h9X86.js';
51
51
  export { CONTEXT_FIELD_IDS } from './traces/types.es.js';
52
52
  export { THREAD_TRACE_MESSAGES_TAB } from './traces/components/thread-trace/thread-trace-row.es.js';
53
53
  export { useThreadTrace } from './traces/components/thread-trace/thread-trace-context.es.js';
@@ -9,8 +9,8 @@ const React = require('react');
9
9
  const domains_workflows_components_workflowsList_workflowsSort = require('./workflows-sort.cjs.js');
10
10
  const domains_workflows_utils_nestedWorkflows = require('../../utils/nested-workflows.cjs.js');
11
11
  const Badge = require('../../../../Badge-BF6FbLH_.cjs');
12
- const dataList = require('../../../../data-list-2svaWtkq.cjs');
13
- const dataListSkeleton = require('../../../../data-list-skeleton-C-j6Sf0F.cjs');
12
+ const dataList = require('../../../../data-list-D6J5xPq9.cjs');
13
+ const dataListSkeleton = require('../../../../data-list-skeleton-HmAfNH0v.cjs');
14
14
  const useDataListKeyboard = require('../../../../use-data-list-keyboard-DF3tLe10.cjs');
15
15
  const disclosureChevron = require('../../../../disclosure-chevron-B_gmYFR5.cjs');
16
16
  const tooltip = require('../../../../tooltip-C4txPRSa.cjs');
@@ -5,8 +5,8 @@ import { useState, useMemo, useRef } from 'react';
5
5
  import { sortWorkflows } from './workflows-sort.es.js';
6
6
  import { flattenWorkflowTree } from '../../utils/nested-workflows.es.js';
7
7
  import { B as Badge } from '../../../../Badge-3-G2I_cx.js';
8
- import { e as DataList } from '../../../../data-list-BbOYiz4B.js';
9
- import { D as DataListSkeleton } from '../../../../data-list-skeleton-C9Zm5XMX.js';
8
+ import { D as DataList } from '../../../../data-list-CsS-lf01.js';
9
+ import { D as DataListSkeleton } from '../../../../data-list-skeleton-BytOffUO.js';
10
10
  import { u as useDataListKeyboard } from '../../../../use-data-list-keyboard-DFQr4t38.js';
11
11
  import { D as DisclosureChevron } from '../../../../disclosure-chevron-BWZ8Alz1.js';
12
12
  import { T as Tooltip, c as TooltipTrigger, a as TooltipContent } from '../../../../tooltip-CCZcMbgy.js';
@@ -5,9 +5,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
6
  const ee_signals_components_entityIndexModel = require('./entity-index-model.cjs.js');
7
7
  const ee_signals_components_entityIndexStatus = require('./entity-index-status.cjs.js');
8
- const dataList = require('../../../data-list-2svaWtkq.cjs');
9
- require('react');
10
- require('../../../keyboard/keyboard-shortcuts-context.cjs.js');
8
+ const dataList = require('../../../data-list-D6J5xPq9.cjs');
11
9
 
12
10
  const columns = "minmax(12rem,1.5fr) minmax(7rem,0.6fr) minmax(8rem,0.7fr) minmax(8rem,0.7fr) minmax(12rem,1fr)";
13
11
  function EntityIndexList({ entities, hasSearch, getEntityHref, LinkComponent }) {
@@ -1 +1 @@
1
- {"version":3,"file":"entity-index-list.cjs.js","sources":["../../../../src/ee/signals/components/entity-index-list.tsx"],"sourcesContent":["import type { ThemeLearningEntity } from '@mastra/client-js';\n\nimport { entityIndexMetadata } from './entity-index-model';\nimport { EntityIndexStatus } from './entity-index-status';\nimport { DataList } from '@/ds/components/DataList';\nimport type { LinkComponent } from '@/ds/types/link-component';\n\nconst columns = 'minmax(12rem,1.5fr) minmax(7rem,0.6fr) minmax(8rem,0.7fr) minmax(8rem,0.7fr) minmax(12rem,1fr)';\n\nexport interface EntityIndexListProps {\n entities: readonly ThemeLearningEntity[];\n hasSearch: boolean;\n getEntityHref: (entity: ThemeLearningEntity) => string;\n LinkComponent: LinkComponent;\n}\n\nexport function EntityIndexList({ entities, hasSearch, getEntityHref, LinkComponent }: EntityIndexListProps) {\n return (\n <section aria-label=\"Trace Intelligence agents\" className=\"min-h-0\">\n <DataList columns={columns} fit=\"container\">\n <DataList.Top>\n <DataList.TopCell>Agent</DataList.TopCell>\n <DataList.TopCell>Traces</DataList.TopCell>\n <DataList.TopCell>Signals set</DataList.TopCell>\n <DataList.TopCell>Status</DataList.TopCell>\n <DataList.TopCell>Updated</DataList.TopCell>\n </DataList.Top>\n {entities.length === 0 && hasSearch ? <DataList.NoMatch message=\"No agents match your search\" /> : null}\n {entities.map(entity => {\n const metadata = entityIndexMetadata(entity);\n const key = `${entity.entityType}:${entity.entityId}`;\n const isAnalyzing = entity.status === 'collecting';\n const cells = (\n <>\n <DataList.Cell className=\"min-w-0 overflow-visible text-left\">\n {isAnalyzing ? null : <span className=\"sr-only\">Open agent {entity.entityId}</span>}\n <span\n aria-hidden={isAnalyzing ? undefined : true}\n className=\"block overflow-clip text-ellipsis whitespace-nowrap\"\n >\n {entity.entityId}\n </span>\n </DataList.Cell>\n <DataList.NumberCell>{metadata.traceCount}</DataList.NumberCell>\n <DataList.Cell>{metadata.signalsSet}</DataList.Cell>\n <DataList.Cell className=\"overflow-visible\">\n <EntityIndexStatus entity={entity} />\n </DataList.Cell>\n <DataList.Cell title={entity.updatedAt}>{metadata.updatedAt}</DataList.Cell>\n </>\n );\n // No signals yet means the detail page has nothing to show, so the row stays static.\n if (isAnalyzing) {\n return (\n <DataList.RowStatic key={key} className=\"min-w-0\">\n {cells}\n </DataList.RowStatic>\n );\n }\n return (\n <DataList.RowLink key={key} to={getEntityHref(entity)} LinkComponent={LinkComponent} className=\"min-w-0\">\n {cells}\n </DataList.RowLink>\n );\n })}\n </DataList>\n </section>\n );\n}\n"],"names":["jsx","jsxs","DataList","entityIndexMetadata","Fragment","EntityIndexStatus"],"mappings":"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"}
1
+ {"version":3,"file":"entity-index-list.cjs.js","sources":["../../../../src/ee/signals/components/entity-index-list.tsx"],"sourcesContent":["import type { ThemeLearningEntity } from '@mastra/client-js';\n\nimport { entityIndexMetadata } from './entity-index-model';\nimport { EntityIndexStatus } from './entity-index-status';\nimport { DataList } from '@/ds/components/DataList';\nimport type { LinkComponent } from '@/ds/types/link-component';\n\nconst columns = 'minmax(12rem,1.5fr) minmax(7rem,0.6fr) minmax(8rem,0.7fr) minmax(8rem,0.7fr) minmax(12rem,1fr)';\n\nexport interface EntityIndexListProps {\n entities: readonly ThemeLearningEntity[];\n hasSearch: boolean;\n getEntityHref: (entity: ThemeLearningEntity) => string;\n LinkComponent: LinkComponent;\n}\n\nexport function EntityIndexList({ entities, hasSearch, getEntityHref, LinkComponent }: EntityIndexListProps) {\n return (\n <section aria-label=\"Trace Intelligence agents\" className=\"min-h-0\">\n <DataList columns={columns} fit=\"container\">\n <DataList.Top>\n <DataList.TopCell>Agent</DataList.TopCell>\n <DataList.TopCell>Traces</DataList.TopCell>\n <DataList.TopCell>Signals set</DataList.TopCell>\n <DataList.TopCell>Status</DataList.TopCell>\n <DataList.TopCell>Updated</DataList.TopCell>\n </DataList.Top>\n {entities.length === 0 && hasSearch ? <DataList.NoMatch message=\"No agents match your search\" /> : null}\n {entities.map(entity => {\n const metadata = entityIndexMetadata(entity);\n const key = `${entity.entityType}:${entity.entityId}`;\n const isAnalyzing = entity.status === 'collecting';\n const cells = (\n <>\n <DataList.Cell className=\"min-w-0 overflow-visible text-left\">\n {isAnalyzing ? null : <span className=\"sr-only\">Open agent {entity.entityId}</span>}\n <span\n aria-hidden={isAnalyzing ? undefined : true}\n className=\"block overflow-clip text-ellipsis whitespace-nowrap\"\n >\n {entity.entityId}\n </span>\n </DataList.Cell>\n <DataList.NumberCell>{metadata.traceCount}</DataList.NumberCell>\n <DataList.Cell>{metadata.signalsSet}</DataList.Cell>\n <DataList.Cell className=\"overflow-visible\">\n <EntityIndexStatus entity={entity} />\n </DataList.Cell>\n <DataList.Cell title={entity.updatedAt}>{metadata.updatedAt}</DataList.Cell>\n </>\n );\n // No signals yet means the detail page has nothing to show, so the row stays static.\n if (isAnalyzing) {\n return (\n <DataList.RowStatic key={key} className=\"min-w-0\">\n {cells}\n </DataList.RowStatic>\n );\n }\n return (\n <DataList.RowLink key={key} to={getEntityHref(entity)} LinkComponent={LinkComponent} className=\"min-w-0\">\n {cells}\n </DataList.RowLink>\n );\n })}\n </DataList>\n </section>\n );\n}\n"],"names":["jsx","jsxs","DataList","entityIndexMetadata","Fragment","EntityIndexStatus"],"mappings":"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"}
@@ -1,9 +1,7 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { entityIndexMetadata } from './entity-index-model.es.js';
3
3
  import { EntityIndexStatus } from './entity-index-status.es.js';
4
- import { e as DataList } from '../../../data-list-BbOYiz4B.js';
5
- import 'react';
6
- import '../../../keyboard/keyboard-shortcuts-context.es.js';
4
+ import { D as DataList } from '../../../data-list-CsS-lf01.js';
7
5
 
8
6
  const columns = "minmax(12rem,1.5fr) minmax(7rem,0.6fr) minmax(8rem,0.7fr) minmax(8rem,0.7fr) minmax(12rem,1fr)";
9
7
  function EntityIndexList({ entities, hasSearch, getEntityHref, LinkComponent }) {
@@ -1 +1 @@
1
- {"version":3,"file":"entity-index-list.es.js","sources":["../../../../src/ee/signals/components/entity-index-list.tsx"],"sourcesContent":["import type { ThemeLearningEntity } from '@mastra/client-js';\n\nimport { entityIndexMetadata } from './entity-index-model';\nimport { EntityIndexStatus } from './entity-index-status';\nimport { DataList } from '@/ds/components/DataList';\nimport type { LinkComponent } from '@/ds/types/link-component';\n\nconst columns = 'minmax(12rem,1.5fr) minmax(7rem,0.6fr) minmax(8rem,0.7fr) minmax(8rem,0.7fr) minmax(12rem,1fr)';\n\nexport interface EntityIndexListProps {\n entities: readonly ThemeLearningEntity[];\n hasSearch: boolean;\n getEntityHref: (entity: ThemeLearningEntity) => string;\n LinkComponent: LinkComponent;\n}\n\nexport function EntityIndexList({ entities, hasSearch, getEntityHref, LinkComponent }: EntityIndexListProps) {\n return (\n <section aria-label=\"Trace Intelligence agents\" className=\"min-h-0\">\n <DataList columns={columns} fit=\"container\">\n <DataList.Top>\n <DataList.TopCell>Agent</DataList.TopCell>\n <DataList.TopCell>Traces</DataList.TopCell>\n <DataList.TopCell>Signals set</DataList.TopCell>\n <DataList.TopCell>Status</DataList.TopCell>\n <DataList.TopCell>Updated</DataList.TopCell>\n </DataList.Top>\n {entities.length === 0 && hasSearch ? <DataList.NoMatch message=\"No agents match your search\" /> : null}\n {entities.map(entity => {\n const metadata = entityIndexMetadata(entity);\n const key = `${entity.entityType}:${entity.entityId}`;\n const isAnalyzing = entity.status === 'collecting';\n const cells = (\n <>\n <DataList.Cell className=\"min-w-0 overflow-visible text-left\">\n {isAnalyzing ? null : <span className=\"sr-only\">Open agent {entity.entityId}</span>}\n <span\n aria-hidden={isAnalyzing ? undefined : true}\n className=\"block overflow-clip text-ellipsis whitespace-nowrap\"\n >\n {entity.entityId}\n </span>\n </DataList.Cell>\n <DataList.NumberCell>{metadata.traceCount}</DataList.NumberCell>\n <DataList.Cell>{metadata.signalsSet}</DataList.Cell>\n <DataList.Cell className=\"overflow-visible\">\n <EntityIndexStatus entity={entity} />\n </DataList.Cell>\n <DataList.Cell title={entity.updatedAt}>{metadata.updatedAt}</DataList.Cell>\n </>\n );\n // No signals yet means the detail page has nothing to show, so the row stays static.\n if (isAnalyzing) {\n return (\n <DataList.RowStatic key={key} className=\"min-w-0\">\n {cells}\n </DataList.RowStatic>\n );\n }\n return (\n <DataList.RowLink key={key} to={getEntityHref(entity)} LinkComponent={LinkComponent} className=\"min-w-0\">\n {cells}\n </DataList.RowLink>\n );\n })}\n </DataList>\n </section>\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity-index-list.es.js","sources":["../../../../src/ee/signals/components/entity-index-list.tsx"],"sourcesContent":["import type { ThemeLearningEntity } from '@mastra/client-js';\n\nimport { entityIndexMetadata } from './entity-index-model';\nimport { EntityIndexStatus } from './entity-index-status';\nimport { DataList } from '@/ds/components/DataList';\nimport type { LinkComponent } from '@/ds/types/link-component';\n\nconst columns = 'minmax(12rem,1.5fr) minmax(7rem,0.6fr) minmax(8rem,0.7fr) minmax(8rem,0.7fr) minmax(12rem,1fr)';\n\nexport interface EntityIndexListProps {\n entities: readonly ThemeLearningEntity[];\n hasSearch: boolean;\n getEntityHref: (entity: ThemeLearningEntity) => string;\n LinkComponent: LinkComponent;\n}\n\nexport function EntityIndexList({ entities, hasSearch, getEntityHref, LinkComponent }: EntityIndexListProps) {\n return (\n <section aria-label=\"Trace Intelligence agents\" className=\"min-h-0\">\n <DataList columns={columns} fit=\"container\">\n <DataList.Top>\n <DataList.TopCell>Agent</DataList.TopCell>\n <DataList.TopCell>Traces</DataList.TopCell>\n <DataList.TopCell>Signals set</DataList.TopCell>\n <DataList.TopCell>Status</DataList.TopCell>\n <DataList.TopCell>Updated</DataList.TopCell>\n </DataList.Top>\n {entities.length === 0 && hasSearch ? <DataList.NoMatch message=\"No agents match your search\" /> : null}\n {entities.map(entity => {\n const metadata = entityIndexMetadata(entity);\n const key = `${entity.entityType}:${entity.entityId}`;\n const isAnalyzing = entity.status === 'collecting';\n const cells = (\n <>\n <DataList.Cell className=\"min-w-0 overflow-visible text-left\">\n {isAnalyzing ? null : <span className=\"sr-only\">Open agent {entity.entityId}</span>}\n <span\n aria-hidden={isAnalyzing ? undefined : true}\n className=\"block overflow-clip text-ellipsis whitespace-nowrap\"\n >\n {entity.entityId}\n </span>\n </DataList.Cell>\n <DataList.NumberCell>{metadata.traceCount}</DataList.NumberCell>\n <DataList.Cell>{metadata.signalsSet}</DataList.Cell>\n <DataList.Cell className=\"overflow-visible\">\n <EntityIndexStatus entity={entity} />\n </DataList.Cell>\n <DataList.Cell title={entity.updatedAt}>{metadata.updatedAt}</DataList.Cell>\n </>\n );\n // No signals yet means the detail page has nothing to show, so the row stays static.\n if (isAnalyzing) {\n return (\n <DataList.RowStatic key={key} className=\"min-w-0\">\n {cells}\n </DataList.RowStatic>\n );\n }\n return (\n <DataList.RowLink key={key} to={getEntityHref(entity)} LinkComponent={LinkComponent} className=\"min-w-0\">\n {cells}\n </DataList.RowLink>\n );\n })}\n </DataList>\n </section>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -17,9 +17,7 @@ const domains_auth_components_permissionDenied = require('../../../domains/auth/
17
17
  const domains_auth_components_sessionExpired = require('../../../domains/auth/components/session-expired.cjs.js');
18
18
  const Button = require('../../../Button-CAVPKK09.cjs');
19
19
  const buttonsGroup = require('../../../buttons-group-C2lPe7sm.cjs');
20
- require('../../../data-list-2svaWtkq.cjs');
21
- const dataListSkeleton = require('../../../data-list-skeleton-C-j6Sf0F.cjs');
22
- require('../../../keyboard/keyboard-shortcuts-context.cjs.js');
20
+ const dataListSkeleton = require('../../../data-list-skeleton-HmAfNH0v.cjs');
23
21
  const EmptyState = require('../../../EmptyState-ChzkDnbJ.cjs');
24
22
  const listSearch = require('../../../list-search-Y3z6P6IO.cjs');
25
23
  const select = require('../../../select-D5cu0K7R.cjs');