@railtownai/railtracks-visualizer 0.0.56 → 0.0.57

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cjs/index.js CHANGED
@@ -114702,7 +114702,46 @@ const EvaluationDetailsDrawer = ({ evaluation, open, onClose, getEvaluatorResult
114702
114702
  })))));
114703
114703
  };
114704
114704
 
114705
- const EvaluationsTable = ({ evaluations, loading = false, error = null, onRefresh, onRowClick, onCompare, compareIdsFromUrl, onCompareUrlChange, showFilters = true, showCompare = true, emptyMessage, title, pagination: serverPagination, onFiltersChange, onFetchEvaluationsByIds })=>{
114705
+ const GITHUB_URL = "https://github.com/RailtownAI/railtracks/";
114706
+ const EvaluationsErrorCard = ({ error, onRetry })=>/*#__PURE__*/ React.createElement(Alert, {
114707
+ type: "error",
114708
+ title: "Error loading evaluations",
114709
+ description: /*#__PURE__*/ React.createElement("div", {
114710
+ style: {
114711
+ display: "flex",
114712
+ flexDirection: "column",
114713
+ gap: "8px"
114714
+ }
114715
+ }, /*#__PURE__*/ React.createElement("span", null, error), /*#__PURE__*/ React.createElement(Typography.Text, {
114716
+ type: "secondary",
114717
+ style: {
114718
+ fontSize: "13px"
114719
+ }
114720
+ }, "Need help?", " ", /*#__PURE__*/ React.createElement(Typography.Link, {
114721
+ href: GITHUB_URL,
114722
+ target: "_blank",
114723
+ rel: "noopener noreferrer"
114724
+ }, "GitHub"), " · ", /*#__PURE__*/ React.createElement(Typography.Link, {
114725
+ href: `${GITHUB_URL}discussions`,
114726
+ target: "_blank",
114727
+ rel: "noopener noreferrer"
114728
+ }, "Discussions"), " · ", /*#__PURE__*/ React.createElement(Typography.Link, {
114729
+ href: `${GITHUB_URL}issues`,
114730
+ target: "_blank",
114731
+ rel: "noopener noreferrer"
114732
+ }, "Report issue"))),
114733
+ action: onRetry ? /*#__PURE__*/ React.createElement(Button$1, {
114734
+ size: "small",
114735
+ danger: true,
114736
+ onClick: onRetry,
114737
+ icon: /*#__PURE__*/ React.createElement(RefreshCw, {
114738
+ size: 14
114739
+ })
114740
+ }, "Retry") : undefined,
114741
+ showIcon: true
114742
+ });
114743
+
114744
+ const EvaluationsTable = ({ evaluations, loading = false, error = null, onRefresh, onRowClick, onCompare, compareIdsFromUrl, onCompareUrlChange, showFilters = true, showCompare = true, emptyMessage, title, pagination: serverPagination, onFiltersChange, onFetchEvaluationsByIds, errorRender })=>{
114706
114745
  const { theme } = useTheme$1();
114707
114746
  const [selectedAgents, setSelectedAgents] = React.useState([]);
114708
114747
  const [selectedRowKeys, setSelectedRowKeys] = React.useState([]);
@@ -114864,21 +114903,16 @@ const EvaluationsTable = ({ evaluations, loading = false, error = null, onRefres
114864
114903
  setSelectedEvaluation(null);
114865
114904
  };
114866
114905
  if (error) {
114867
- return /*#__PURE__*/ React.createElement("div", {
114868
- style: {
114869
- padding: "24px",
114870
- textAlign: "center"
114871
- }
114872
- }, /*#__PURE__*/ React.createElement("p", {
114873
- style: {
114874
- color: theme.colors.destructive
114875
- }
114876
- }, "Error loading evaluations: ", error), onRefresh && /*#__PURE__*/ React.createElement(Button$1, {
114877
- onClick: onRefresh,
114878
- icon: /*#__PURE__*/ React.createElement(RefreshCw, {
114879
- size: 14
114880
- })
114881
- }, "Retry"));
114906
+ if (errorRender) {
114907
+ return /*#__PURE__*/ React.createElement(React.Fragment, null, errorRender({
114908
+ error,
114909
+ onRetry: onRefresh ?? undefined
114910
+ }));
114911
+ }
114912
+ return /*#__PURE__*/ React.createElement(EvaluationsErrorCard, {
114913
+ error: error,
114914
+ onRetry: onRefresh ?? undefined
114915
+ });
114882
114916
  }
114883
114917
  const columns = [
114884
114918
  {
@@ -120387,6 +120421,7 @@ exports.EvaluationDetailsDrawer = EvaluationDetailsDrawer;
120387
120421
  exports.EvaluationsCompareDrawer = EvaluationsCompareDrawer;
120388
120422
  exports.EvaluationsComparePage = EvaluationsComparePage;
120389
120423
  exports.EvaluationsCompareView = EvaluationsCompareView;
120424
+ exports.EvaluationsErrorCard = EvaluationsErrorCard;
120390
120425
  exports.EvaluationsTable = EvaluationsTable;
120391
120426
  exports.EvaluatorResult = EvaluatorResult;
120392
120427
  exports.GlobalStyles = GlobalStyles;
package/dist/esm/index.js CHANGED
@@ -114682,7 +114682,46 @@ const EvaluationDetailsDrawer = ({ evaluation, open, onClose, getEvaluatorResult
114682
114682
  })))));
114683
114683
  };
114684
114684
 
114685
- const EvaluationsTable = ({ evaluations, loading = false, error = null, onRefresh, onRowClick, onCompare, compareIdsFromUrl, onCompareUrlChange, showFilters = true, showCompare = true, emptyMessage, title, pagination: serverPagination, onFiltersChange, onFetchEvaluationsByIds })=>{
114685
+ const GITHUB_URL = "https://github.com/RailtownAI/railtracks/";
114686
+ const EvaluationsErrorCard = ({ error, onRetry })=>/*#__PURE__*/ React__default.createElement(Alert, {
114687
+ type: "error",
114688
+ title: "Error loading evaluations",
114689
+ description: /*#__PURE__*/ React__default.createElement("div", {
114690
+ style: {
114691
+ display: "flex",
114692
+ flexDirection: "column",
114693
+ gap: "8px"
114694
+ }
114695
+ }, /*#__PURE__*/ React__default.createElement("span", null, error), /*#__PURE__*/ React__default.createElement(Typography.Text, {
114696
+ type: "secondary",
114697
+ style: {
114698
+ fontSize: "13px"
114699
+ }
114700
+ }, "Need help?", " ", /*#__PURE__*/ React__default.createElement(Typography.Link, {
114701
+ href: GITHUB_URL,
114702
+ target: "_blank",
114703
+ rel: "noopener noreferrer"
114704
+ }, "GitHub"), " · ", /*#__PURE__*/ React__default.createElement(Typography.Link, {
114705
+ href: `${GITHUB_URL}discussions`,
114706
+ target: "_blank",
114707
+ rel: "noopener noreferrer"
114708
+ }, "Discussions"), " · ", /*#__PURE__*/ React__default.createElement(Typography.Link, {
114709
+ href: `${GITHUB_URL}issues`,
114710
+ target: "_blank",
114711
+ rel: "noopener noreferrer"
114712
+ }, "Report issue"))),
114713
+ action: onRetry ? /*#__PURE__*/ React__default.createElement(Button$1, {
114714
+ size: "small",
114715
+ danger: true,
114716
+ onClick: onRetry,
114717
+ icon: /*#__PURE__*/ React__default.createElement(RefreshCw, {
114718
+ size: 14
114719
+ })
114720
+ }, "Retry") : undefined,
114721
+ showIcon: true
114722
+ });
114723
+
114724
+ const EvaluationsTable = ({ evaluations, loading = false, error = null, onRefresh, onRowClick, onCompare, compareIdsFromUrl, onCompareUrlChange, showFilters = true, showCompare = true, emptyMessage, title, pagination: serverPagination, onFiltersChange, onFetchEvaluationsByIds, errorRender })=>{
114686
114725
  const { theme } = useTheme$1();
114687
114726
  const [selectedAgents, setSelectedAgents] = useState([]);
114688
114727
  const [selectedRowKeys, setSelectedRowKeys] = useState([]);
@@ -114844,21 +114883,16 @@ const EvaluationsTable = ({ evaluations, loading = false, error = null, onRefres
114844
114883
  setSelectedEvaluation(null);
114845
114884
  };
114846
114885
  if (error) {
114847
- return /*#__PURE__*/ React__default.createElement("div", {
114848
- style: {
114849
- padding: "24px",
114850
- textAlign: "center"
114851
- }
114852
- }, /*#__PURE__*/ React__default.createElement("p", {
114853
- style: {
114854
- color: theme.colors.destructive
114855
- }
114856
- }, "Error loading evaluations: ", error), onRefresh && /*#__PURE__*/ React__default.createElement(Button$1, {
114857
- onClick: onRefresh,
114858
- icon: /*#__PURE__*/ React__default.createElement(RefreshCw, {
114859
- size: 14
114860
- })
114861
- }, "Retry"));
114886
+ if (errorRender) {
114887
+ return /*#__PURE__*/ React__default.createElement(React__default.Fragment, null, errorRender({
114888
+ error,
114889
+ onRetry: onRefresh ?? undefined
114890
+ }));
114891
+ }
114892
+ return /*#__PURE__*/ React__default.createElement(EvaluationsErrorCard, {
114893
+ error: error,
114894
+ onRetry: onRefresh ?? undefined
114895
+ });
114862
114896
  }
114863
114897
  const columns = [
114864
114898
  {
@@ -120357,4 +120391,4 @@ const GlobalStyles = ()=>{
120357
120391
  return getSafeColor(props.theme, path, fallback);
120358
120392
  };
120359
120393
 
120360
- export { AgenticFlowVisualizer, AnthropicIcon, AppleIcon, Badge, Drawer, Edge, EvaluationDetailsDrawer, EvaluationsCompareDrawer, EvaluationsComparePage, EvaluationsCompareView, EvaluationsTable, EvaluatorResult, GlobalStyles, GoogleIcon, JsonTreeViewer, Node$1 as Node, OllamaIcon, OpenAIIcon, SafeThemeProvider, SessionDetails, Sheet, ThemeProvider, Timeline, Visualizer, calculateAutoLayout, cn, conditionalStyle, createSafeTheme, darkTheme, defaultTheme$1 as defaultTheme, detectContentType, evaluationsHaveSameMetrics, formatCurrency, formatDateFriendly, formatDateRelative, formatDateShort, formatDuration, formatLatency, formatMetricValue$1 as formatMetricValue, formatNumberWithCommas, formatToolCalls, getColor, getSafeColor, getSafeSpacing, getSafeThemeValue, getSpacing, getStatusColor, isEvaluationDto, lightTheme, safeStyled, safeThemeColor, safeThemeSpacing, safeThemeValue, toTitleCase, transformEvaluation, truncateText, useComponentTheme, useSafeTheme, useTheme$1 as useTheme, useThemeValue };
120394
+ export { AgenticFlowVisualizer, AnthropicIcon, AppleIcon, Badge, Drawer, Edge, EvaluationDetailsDrawer, EvaluationsCompareDrawer, EvaluationsComparePage, EvaluationsCompareView, EvaluationsErrorCard, EvaluationsTable, EvaluatorResult, GlobalStyles, GoogleIcon, JsonTreeViewer, Node$1 as Node, OllamaIcon, OpenAIIcon, SafeThemeProvider, SessionDetails, Sheet, ThemeProvider, Timeline, Visualizer, calculateAutoLayout, cn, conditionalStyle, createSafeTheme, darkTheme, defaultTheme$1 as defaultTheme, detectContentType, evaluationsHaveSameMetrics, formatCurrency, formatDateFriendly, formatDateRelative, formatDateShort, formatDuration, formatLatency, formatMetricValue$1 as formatMetricValue, formatNumberWithCommas, formatToolCalls, getColor, getSafeColor, getSafeSpacing, getSafeThemeValue, getSpacing, getStatusColor, isEvaluationDto, lightTheme, safeStyled, safeThemeColor, safeThemeSpacing, safeThemeValue, toTitleCase, transformEvaluation, truncateText, useComponentTheme, useSafeTheme, useTheme$1 as useTheme, useThemeValue };
@@ -44,5 +44,10 @@ export interface EvaluationsTableProps {
44
44
  onFiltersChange?: (agents: string[], metricFilter: string | null) => void;
45
45
  /** When server pagination, fetch evaluations by ID for compare drawer (e.g. from URL). */
46
46
  onFetchEvaluationsByIds?: (ids: string[]) => Promise<(Evaluation | EvaluationDto)[]>;
47
+ /** Custom error UI. When provided, overrides the default EvaluationsErrorCard. */
48
+ errorRender?: (props: {
49
+ error: string;
50
+ onRetry?: () => void;
51
+ }) => React.ReactNode;
47
52
  }
48
53
  export declare const EvaluationsTable: React.FC<EvaluationsTableProps>;
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ /** Default error card shown when evaluations fail to load and no errorRender is provided. */
3
+ export interface EvaluationsErrorCardProps {
4
+ error: string;
5
+ onRetry?: () => void;
6
+ }
7
+ export declare const EvaluationsErrorCard: React.FC<EvaluationsErrorCardProps>;
@@ -3,6 +3,8 @@ export { default as Visualizer } from "./components/Visualizer";
3
3
  export { SessionDetails } from "./agenthub/pages/session-details";
4
4
  export { EvaluationsTable } from "./agenthub/components/EvaluationsTable";
5
5
  export type { EvaluationsTableProps, EvaluationsTablePagination } from "./agenthub/components/EvaluationsTable";
6
+ export { EvaluationsErrorCard } from "./agenthub/components/EvaluationsTableErrorCard";
7
+ export type { EvaluationsErrorCardProps } from "./agenthub/components/EvaluationsTableErrorCard";
6
8
  export { EvaluationsCompareView } from "./agenthub/components/EvaluationsCompareView";
7
9
  export type { EvaluationsCompareViewProps } from "./agenthub/components/EvaluationsCompareView";
8
10
  export { EvaluationsCompareDrawer } from "./agenthub/pages/evaluations-compare-drawer";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@railtownai/railtracks-visualizer",
3
- "version": "0.0.56",
3
+ "version": "0.0.57",
4
4
  "license": "MIT",
5
5
  "author": "Railtown AI",
6
6
  "description": "A visualizer for Railtracks agentic flows",