@mastra/playground-ui 23.0.2-alpha.2 → 24.0.0-alpha.0

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 (85) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/index.cjs.js +4254 -13
  3. package/dist/index.cjs.js.map +1 -1
  4. package/dist/index.css +354 -84
  5. package/dist/index.es.js +4137 -16
  6. package/dist/index.es.js.map +1 -1
  7. package/dist/src/domains/logs/components/index.d.ts +6 -0
  8. package/dist/src/domains/logs/components/log-details-view.d.ts +12 -0
  9. package/dist/src/domains/logs/components/logs-error-content.d.ts +14 -0
  10. package/dist/src/domains/logs/components/logs-layout.d.ts +19 -0
  11. package/dist/src/domains/logs/components/logs-list-view.d.ts +20 -0
  12. package/dist/src/domains/logs/components/logs-toolbar.d.ts +13 -0
  13. package/dist/src/domains/logs/components/no-logs-info.d.ts +1 -0
  14. package/dist/src/domains/logs/hooks/index.d.ts +4 -0
  15. package/dist/src/domains/logs/hooks/use-logs-filter-persistence.d.ts +22 -0
  16. package/dist/src/domains/logs/hooks/use-logs-list-navigation.d.ts +22 -0
  17. package/dist/src/domains/logs/hooks/use-logs-url-state.d.ts +38 -0
  18. package/dist/src/domains/logs/hooks/use-logs.d.ts +1271 -0
  19. package/dist/src/domains/logs/index.d.ts +4 -0
  20. package/dist/src/domains/logs/log-filters.d.ts +109 -0
  21. package/dist/src/domains/logs/types.d.ts +35 -0
  22. package/dist/src/domains/metrics/components/bar-list.d.ts +21 -0
  23. package/dist/src/domains/metrics/components/date-range-selector.d.ts +1 -0
  24. package/dist/src/domains/metrics/components/index.d.ts +9 -0
  25. package/dist/src/domains/metrics/components/kpi-card-view.d.ts +9 -0
  26. package/dist/src/domains/metrics/components/latency-card-view.d.ts +11 -0
  27. package/dist/src/domains/metrics/components/metrics-utils.d.ts +15 -0
  28. package/dist/src/domains/metrics/components/model-usage-cost-card-view.d.ts +7 -0
  29. package/dist/src/domains/metrics/components/scores-card-view.d.ts +12 -0
  30. package/dist/src/domains/metrics/components/token-usage-by-agent-card-view.d.ts +7 -0
  31. package/dist/src/domains/metrics/components/traces-volume-card-view.d.ts +11 -0
  32. package/dist/src/domains/metrics/hooks/index.d.ts +12 -0
  33. package/dist/src/domains/metrics/hooks/use-agent-runs-kpi-metrics.d.ts +10 -0
  34. package/dist/src/domains/metrics/hooks/use-avg-score-kpi-metrics.d.ts +10 -0
  35. package/dist/src/domains/metrics/hooks/use-latency-metrics.d.ts +11 -0
  36. package/dist/src/domains/metrics/hooks/use-metrics-filters.d.ts +9 -0
  37. package/dist/src/domains/metrics/hooks/use-metrics.d.ts +43 -0
  38. package/dist/src/domains/metrics/hooks/use-model-cost-kpi-metrics.d.ts +7 -0
  39. package/dist/src/domains/metrics/hooks/use-model-usage-cost-metrics.d.ts +10 -0
  40. package/dist/src/domains/metrics/hooks/use-scores-metrics.d.ts +22 -0
  41. package/dist/src/domains/metrics/hooks/use-token-usage-by-agent-metrics.d.ts +9 -0
  42. package/dist/src/domains/metrics/hooks/use-total-tokens-kpi-metrics.d.ts +6 -0
  43. package/dist/src/domains/metrics/hooks/use-trace-volume-metrics.d.ts +10 -0
  44. package/dist/src/domains/metrics/index.d.ts +2 -0
  45. package/dist/src/domains/traces/components/format-hierarchical-spans.d.ts +12 -0
  46. package/dist/src/domains/traces/components/index.d.ts +18 -0
  47. package/dist/src/domains/traces/components/shared.d.ts +3 -0
  48. package/dist/src/domains/traces/components/span-data-panel-view.d.ts +26 -0
  49. package/dist/src/domains/traces/components/span-details-view.d.ts +14 -0
  50. package/dist/src/domains/traces/components/span-token-usage.d.ts +22 -0
  51. package/dist/src/domains/traces/components/timeline-expand-col.d.ts +12 -0
  52. package/dist/src/domains/traces/components/timeline-name-col.d.ts +15 -0
  53. package/dist/src/domains/traces/components/timeline-structure-sign.d.ts +5 -0
  54. package/dist/src/domains/traces/components/timeline-timing-col.d.ts +12 -0
  55. package/dist/src/domains/traces/components/trace-data-panel-view.d.ts +28 -0
  56. package/dist/src/domains/traces/components/trace-details-view.d.ts +18 -0
  57. package/dist/src/domains/traces/components/trace-keys-and-values.d.ts +16 -0
  58. package/dist/src/domains/traces/components/trace-timeline-span.d.ts +18 -0
  59. package/dist/src/domains/traces/components/trace-timeline.d.ts +15 -0
  60. package/dist/src/domains/traces/components/traces-error-content.d.ts +16 -0
  61. package/dist/src/domains/traces/components/traces-layout.d.ts +18 -0
  62. package/dist/src/domains/traces/components/traces-list-view.d.ts +39 -0
  63. package/dist/src/domains/traces/components/traces-toolbar.d.ts +19 -0
  64. package/dist/src/domains/traces/hooks/get-all-span-ids.d.ts +3 -0
  65. package/dist/src/domains/traces/hooks/index.d.ts +13 -0
  66. package/dist/src/domains/traces/hooks/use-entity-names.d.ts +7 -0
  67. package/dist/src/domains/traces/hooks/use-environments.d.ts +1 -0
  68. package/dist/src/domains/traces/hooks/use-service-names.d.ts +1 -0
  69. package/dist/src/domains/traces/hooks/use-span-detail.d.ts +46 -0
  70. package/dist/src/domains/traces/hooks/use-tags.d.ts +1 -0
  71. package/dist/src/domains/traces/hooks/use-trace-filter-persistence.d.ts +31 -0
  72. package/dist/src/domains/traces/hooks/use-trace-light-spans.d.ts +19 -0
  73. package/dist/src/domains/traces/hooks/use-trace-list-navigation.d.ts +12 -0
  74. package/dist/src/domains/traces/hooks/use-trace-span-navigation.d.ts +10 -0
  75. package/dist/src/domains/traces/hooks/use-trace-spans.d.ts +47 -0
  76. package/dist/src/domains/traces/hooks/use-trace-url-state.d.ts +53 -0
  77. package/dist/src/domains/traces/hooks/use-traces.d.ts +1549 -0
  78. package/dist/src/domains/traces/index.d.ts +8 -0
  79. package/dist/src/domains/traces/trace-filters.d.ts +121 -0
  80. package/dist/src/domains/traces/types.d.ts +35 -0
  81. package/dist/src/domains/traces/utils/group-traces-by-thread.d.ts +20 -0
  82. package/dist/src/domains/traces/utils/index.d.ts +2 -0
  83. package/dist/src/domains/traces/utils/span-utils.d.ts +15 -0
  84. package/dist/src/index.d.ts +3 -0
  85. package/package.json +13 -10
@@ -0,0 +1,6 @@
1
+ export { LogDetailsView, type LogDetailsViewProps } from './log-details-view';
2
+ export { LogsErrorContent, type LogsErrorContentProps } from './logs-error-content';
3
+ export { LogsLayout, type LogsLayoutProps } from './logs-layout';
4
+ export { LogsListView, type LogsListViewProps } from './logs-list-view';
5
+ export { LogsToolbar, type LogsToolbarProps } from './logs-toolbar';
6
+ export { NoLogsInfo } from './no-logs-info';
@@ -0,0 +1,12 @@
1
+ import { LogRecord } from '../types';
2
+ export interface LogDetailsViewProps {
3
+ log: LogRecord;
4
+ onClose: () => void;
5
+ onTraceClick?: (traceId: string) => void;
6
+ onSpanClick?: (traceId: string, spanId: string) => void;
7
+ onPrevious?: () => void;
8
+ onNext?: () => void;
9
+ collapsed?: boolean;
10
+ onCollapsedChange?: (collapsed: boolean) => void;
11
+ }
12
+ export declare function LogDetailsView({ log, onClose, onTraceClick, onSpanClick, onPrevious, onNext, collapsed: controlledCollapsed, onCollapsedChange, }: LogDetailsViewProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,14 @@
1
+ export interface LogsErrorContentProps {
2
+ /** The error from a useLogs query. */
3
+ error: unknown;
4
+ /** Passed to PermissionDenied (usually 'logs'). */
5
+ resource: string;
6
+ /** Title shown on the generic ErrorState fallback. */
7
+ errorTitle: string;
8
+ }
9
+ /**
10
+ * Renders the appropriate fallback content for a logs-related query error:
11
+ * `<SessionExpired />` for 401, `<PermissionDenied />` for 403, otherwise `<ErrorState />`.
12
+ * Mirror of `TracesErrorContent` for the logs domain.
13
+ */
14
+ export declare function LogsErrorContent({ error, resource, errorTitle }: LogsErrorContentProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,19 @@
1
+ import { ReactNode } from '../../../../node_modules/@types/react';
2
+ export interface LogsLayoutProps {
3
+ /** The logs list (left column). */
4
+ listSlot: ReactNode;
5
+ /** The log data panel (right column, top). When null/undefined, the whole right column collapses. */
6
+ logPanelSlot?: ReactNode;
7
+ /** The trace data panel (right column, middle). Only rendered when truthy. */
8
+ tracePanelSlot?: ReactNode;
9
+ /** The span data panel (right column, bottom). Only rendered when truthy. */
10
+ spanPanelSlot?: ReactNode;
11
+ /** When the log panel is collapsed, the right column's grid-rows squash the log row to `auto`. */
12
+ logCollapsed?: boolean;
13
+ }
14
+ /**
15
+ * Pure 2-column layout shell for the logs page. Owns no state and fetches no data — pass slots in.
16
+ * Right-column row template adapts based on which panels are present and whether the log panel is
17
+ * collapsed.
18
+ */
19
+ export declare function LogsLayout({ listSlot, logPanelSlot, tracePanelSlot, spanPanelSlot, logCollapsed }: LogsLayoutProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,20 @@
1
+ import { LogRecord } from '../types';
2
+ export interface LogsListViewProps {
3
+ logs: LogRecord[];
4
+ isLoading?: boolean;
5
+ isFetchingNextPage?: boolean;
6
+ hasNextPage?: boolean;
7
+ setEndOfListElement?: (element: HTMLDivElement | null) => void;
8
+ /** Stable per-render id for each log — used for React keys and for matching against `featuredLogId`.
9
+ * Build with `useLogsListNavigation`. */
10
+ logIdMap: Map<LogRecord, string>;
11
+ /** Currently featured/selected log — its row gets the highlighted background. */
12
+ featuredLogId?: string | null;
13
+ /** Called when a row is clicked. The current toggle + trace-sync logic is the consumer's call. */
14
+ onLogClick: (log: LogRecord) => void;
15
+ }
16
+ /**
17
+ * Pure presentational list. Renders the LogsDataList primitive with rows, empty state, and
18
+ * infinite-paging loader. Owns no state and fetches no data.
19
+ */
20
+ export declare function LogsListView({ logs, isLoading, isFetchingNextPage, hasNextPage, setEndOfListElement, logIdMap, featuredLogId, onLogClick, }: LogsListViewProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,13 @@
1
+ import { PropertyFilterField, PropertyFilterToken } from '../../../ds/components/PropertyFilter/types';
2
+ export interface LogsToolbarProps {
3
+ onClear?: () => void;
4
+ onRemoveAll?: () => void;
5
+ onSave?: () => void;
6
+ onRemoveSaved?: () => void;
7
+ isLoading?: boolean;
8
+ filterFields: PropertyFilterField[];
9
+ filterTokens: PropertyFilterToken[];
10
+ onFilterTokensChange: (tokens: PropertyFilterToken[]) => void;
11
+ autoFocusFilterFieldId?: string;
12
+ }
13
+ export declare function LogsToolbar({ onClear, onRemoveAll, onSave, onRemoveSaved, isLoading, filterFields, filterTokens, onFilterTokensChange, autoFocusFilterFieldId, }: LogsToolbarProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export declare const NoLogsInfo: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,4 @@
1
+ export { useLogs } from './use-logs';
2
+ export { useLogsUrlState, type UseLogsUrlStateResult, type UseLogsUrlStateOptions, type LogsFeaturedIds, } from './use-logs-url-state';
3
+ export { useLogsFilterPersistence, type UseLogsFilterPersistenceResult, type LogsFilterPersistenceOptions, } from './use-logs-filter-persistence';
4
+ export { useLogsListNavigation, type UseLogsListNavigationResult } from './use-logs-list-navigation';
@@ -0,0 +1,22 @@
1
+ import { SetURLSearchParamsLike } from '../../traces/hooks/use-trace-url-state';
2
+ export interface LogsFilterPersistenceOptions {
3
+ /** Override the localStorage key. Default: 'mastra:logs:saved-filters'. */
4
+ storageKey?: string;
5
+ /** Toast text overrides; pass `false` to suppress the toast entirely. */
6
+ messages?: {
7
+ saved?: string | false;
8
+ cleared?: string | false;
9
+ };
10
+ /** Skip the once-on-mount hydration from localStorage. Default: false. */
11
+ skipHydration?: boolean;
12
+ }
13
+ export interface UseLogsFilterPersistenceResult {
14
+ hasSavedFilters: boolean;
15
+ handleSave: () => void;
16
+ handleRemoveSaved: () => void;
17
+ }
18
+ /**
19
+ * Owns the localStorage save/restore lifecycle for logs filters. Mirrors
20
+ * `useTraceFilterPersistence` — same pattern, different storage key default.
21
+ */
22
+ export declare function useLogsFilterPersistence(searchParams: URLSearchParams, setSearchParams: SetURLSearchParamsLike, options?: LogsFilterPersistenceOptions): UseLogsFilterPersistenceResult;
@@ -0,0 +1,22 @@
1
+ import { LogRecord } from '../types';
2
+ import { LogsFeaturedIds } from './use-logs-url-state';
3
+ export interface UseLogsListNavigationResult {
4
+ /** Map each log in the list to its derived id. Pass to `<LogsListView logIdMap={...}>`. */
5
+ logIdMap: Map<LogRecord, string>;
6
+ /** Look up a log's id (undefined if not in the list). */
7
+ getLogId: (log: LogRecord) => string | undefined;
8
+ /** The currently featured log resolved from `featuredLogId`, or null. */
9
+ featuredLog: LogRecord | null;
10
+ /** Click handler that flips featured selection with toggle behavior, and — when a trace panel is
11
+ * open — syncs the trace panel to the new log's trace. Pass to `<LogsListView onLogClick={...}>`. */
12
+ handleLogClick: (log: LogRecord) => void;
13
+ /** Undefined when at the start of the list (disable the prev button). */
14
+ handlePreviousLog: (() => void) | undefined;
15
+ /** Undefined when at the end of the list (disable the next button). */
16
+ handleNextLog: (() => void) | undefined;
17
+ }
18
+ /**
19
+ * Derives id mapping + featured log + prev/next/click handlers for a logs list. Stateless — only
20
+ * reads from the inputs and calls `onFeaturedChange` on selection changes.
21
+ */
22
+ export declare function useLogsListNavigation(logs: LogRecord[], featuredLogId: string | null, onFeaturedChange: (ids: LogsFeaturedIds) => void, featuredTraceId?: string | null): UseLogsListNavigationResult;
@@ -0,0 +1,38 @@
1
+ import { SetURLSearchParamsLike } from '../../traces/hooks/use-trace-url-state';
2
+ import { LogsDatePreset, LogsEntityOptions } from '../log-filters';
3
+ import { PropertyFilterToken } from '../../../ds/components/PropertyFilter/types';
4
+ export interface LogsFeaturedIds {
5
+ logId?: string | null;
6
+ traceId?: string | null;
7
+ spanId?: string | null;
8
+ }
9
+ export interface UseLogsUrlStateOptions {
10
+ /** Called after `handleRemoveAll` clears all filter URL params. */
11
+ onRemoveAll?: () => void;
12
+ }
13
+ export interface UseLogsUrlStateResult {
14
+ searchParams: URLSearchParams;
15
+ setSearchParams: SetURLSearchParamsLike;
16
+ datePreset: LogsDatePreset;
17
+ selectedDateFrom: Date | undefined;
18
+ selectedDateTo: Date | undefined;
19
+ datePresetRef: React.MutableRefObject<LogsDatePreset>;
20
+ featuredLogId: string | null;
21
+ featuredTraceId: string | null;
22
+ featuredSpanId: string | null;
23
+ selectedEntityOption: LogsEntityOptions | undefined;
24
+ filterTokens: PropertyFilterToken[];
25
+ /** Partial update of the featured log/trace/span selection. Omitted keys are left as-is. */
26
+ handleFeaturedChange: (ids: LogsFeaturedIds) => void;
27
+ handleFilterTokensChange: (nextTokens: PropertyFilterToken[]) => void;
28
+ handleDateChange: (value: Date | undefined, type: 'from' | 'to') => void;
29
+ handleDatePresetChange: (preset: LogsDatePreset) => void;
30
+ handleRemoveAll: () => void;
31
+ /** Lower-level helper used by `handleClear`: writes a token set and clears the log/trace/span selection. */
32
+ applyFilterTokens: (tokens: PropertyFilterToken[]) => void;
33
+ }
34
+ /**
35
+ * Owns all URL-derived state and URL-modifying handlers for the logs page. Routing-agnostic —
36
+ * pass `searchParams` and `setSearchParams` from whichever router the consumer uses.
37
+ */
38
+ export declare function useLogsUrlState(searchParams: URLSearchParams, setSearchParams: SetURLSearchParamsLike, options?: UseLogsUrlStateOptions): UseLogsUrlStateResult;