@datatechsolutions/ui 2.11.82 → 2.11.83
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/astrlabe/index.d.mts +50 -1
- package/dist/astrlabe/index.d.ts +50 -1
- package/dist/astrlabe/index.js +48 -44
- package/dist/astrlabe/index.mjs +1 -1
- package/dist/{chunk-K4QJV3GC.js → chunk-JFWZHROG.js} +184 -13
- package/dist/chunk-JFWZHROG.js.map +1 -0
- package/dist/{chunk-HAZP5J67.mjs → chunk-UVGMKHWH.mjs} +186 -16
- package/dist/chunk-UVGMKHWH.mjs.map +1 -0
- package/dist/platform/pages/index.js +4 -4
- package/dist/platform/pages/index.mjs +1 -1
- package/package.json +1 -1
- package/dist/chunk-HAZP5J67.mjs.map +0 -1
- package/dist/chunk-K4QJV3GC.js.map +0 -1
|
@@ -2019,6 +2019,176 @@ function parseRow(row) {
|
|
|
2019
2019
|
}
|
|
2020
2020
|
}
|
|
2021
2021
|
}
|
|
2022
|
+
var STATUS_META = {
|
|
2023
|
+
completed: { color: "emerald", icon: outline.CheckCircleIcon },
|
|
2024
|
+
running: { color: "sky", icon: outline.ArrowPathIcon },
|
|
2025
|
+
failed: { color: "rose", icon: outline.XCircleIcon },
|
|
2026
|
+
pending: { color: "amber", icon: outline.ClockIcon },
|
|
2027
|
+
skipped: { color: "zinc", icon: outline.MinusCircleIcon }
|
|
2028
|
+
};
|
|
2029
|
+
function ExecutionTimelinePanel({
|
|
2030
|
+
entries,
|
|
2031
|
+
labels,
|
|
2032
|
+
selectedNodeId,
|
|
2033
|
+
onSelect
|
|
2034
|
+
}) {
|
|
2035
|
+
const [internalSelected, setInternalSelected] = react.useState(null);
|
|
2036
|
+
const effectiveSelected = selectedNodeId ?? internalSelected;
|
|
2037
|
+
const selected = react.useMemo(
|
|
2038
|
+
() => entries.find((entry) => entry.nodeId === effectiveSelected) ?? entries[0] ?? null,
|
|
2039
|
+
[entries, effectiveSelected]
|
|
2040
|
+
);
|
|
2041
|
+
const handleSelect = (nodeId) => {
|
|
2042
|
+
if (onSelect) onSelect(nodeId);
|
|
2043
|
+
setInternalSelected(nodeId);
|
|
2044
|
+
};
|
|
2045
|
+
if (entries.length === 0) {
|
|
2046
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-xl border border-slate-200 bg-slate-50/60 p-6 text-center text-sm text-slate-500 dark:border-slate-700 dark:bg-slate-900/40 dark:text-slate-400", children: labels.empty ?? "\u2014" });
|
|
2047
|
+
}
|
|
2048
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-4 lg:grid-cols-12", children: [
|
|
2049
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-3 lg:col-span-5 xl:col-span-4", children: entries.map((entry, index) => {
|
|
2050
|
+
const meta = STATUS_META[entry.status];
|
|
2051
|
+
const Icon = meta.icon;
|
|
2052
|
+
const isActive = (selected?.nodeId ?? "") === entry.nodeId;
|
|
2053
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2054
|
+
"button",
|
|
2055
|
+
{
|
|
2056
|
+
type: "button",
|
|
2057
|
+
onClick: () => handleSelect(entry.nodeId),
|
|
2058
|
+
className: [
|
|
2059
|
+
"w-full text-left rounded-xl border p-4 transition",
|
|
2060
|
+
isActive ? "border-indigo-400/60 bg-indigo-50/70 shadow-md dark:border-indigo-400/40 dark:bg-indigo-500/10" : "border-slate-200/60 bg-white/70 hover:border-indigo-300 hover:shadow-sm dark:border-white/10 dark:bg-white/5 dark:hover:border-indigo-400/30"
|
|
2061
|
+
].join(" "),
|
|
2062
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
|
|
2063
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center", children: [
|
|
2064
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex h-6 w-6 items-center justify-center rounded-full bg-indigo-100 text-xs font-semibold text-indigo-700 dark:bg-indigo-500/20 dark:text-indigo-200", children: index + 1 }),
|
|
2065
|
+
index < entries.length - 1 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "mt-1 h-8 w-px bg-slate-200 dark:bg-white/10" })
|
|
2066
|
+
] }),
|
|
2067
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
2068
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between gap-2", children: [
|
|
2069
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0", children: [
|
|
2070
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "truncate font-medium text-slate-900 dark:text-white", children: entry.nodeId }),
|
|
2071
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-xs text-slate-500 dark:text-slate-400", children: entry.nodeType })
|
|
2072
|
+
] }),
|
|
2073
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkTUEYBNWL_js.Badge, { color: meta.color, children: [
|
|
2074
|
+
/* @__PURE__ */ jsxRuntime.jsx(Icon, { className: "mr-1 h-3 w-3" }),
|
|
2075
|
+
labels[entry.status]
|
|
2076
|
+
] })
|
|
2077
|
+
] }),
|
|
2078
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-2 flex items-center gap-3 text-xs text-slate-500 dark:text-slate-400", children: [
|
|
2079
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: formatDuration2(entry.durationMs) }),
|
|
2080
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "\xB7" }),
|
|
2081
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: formatTimestamp(entry.startedAt) })
|
|
2082
|
+
] })
|
|
2083
|
+
] })
|
|
2084
|
+
] })
|
|
2085
|
+
},
|
|
2086
|
+
entry.nodeId
|
|
2087
|
+
);
|
|
2088
|
+
}) }),
|
|
2089
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "lg:col-span-7 xl:col-span-8", children: selected ? /* @__PURE__ */ jsxRuntime.jsx(NodeInspector, { entry: selected, labels }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-xl border border-slate-200 bg-slate-50/60 p-6 text-center text-sm text-slate-500 dark:border-slate-700 dark:bg-slate-900/40", children: labels.selectNode }) })
|
|
2090
|
+
] });
|
|
2091
|
+
}
|
|
2092
|
+
function NodeInspector({
|
|
2093
|
+
entry,
|
|
2094
|
+
labels
|
|
2095
|
+
}) {
|
|
2096
|
+
const meta = STATUS_META[entry.status];
|
|
2097
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-2xl border border-slate-200 bg-white p-5 shadow-sm dark:border-slate-700 dark:bg-slate-900/40", children: [
|
|
2098
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-3 flex items-start justify-between gap-2", children: [
|
|
2099
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0", children: [
|
|
2100
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "truncate text-base font-semibold text-slate-900 dark:text-white", children: entry.nodeId }),
|
|
2101
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-slate-500 dark:text-slate-400", children: entry.nodeType })
|
|
2102
|
+
] }),
|
|
2103
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkTUEYBNWL_js.Badge, { color: meta.color, children: labels[entry.status] })
|
|
2104
|
+
] }),
|
|
2105
|
+
/* @__PURE__ */ jsxRuntime.jsxs("dl", { className: "grid grid-cols-2 gap-3 text-xs text-slate-500 dark:text-slate-400", children: [
|
|
2106
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
2107
|
+
/* @__PURE__ */ jsxRuntime.jsx("dt", { className: "font-semibold", children: labels.started }),
|
|
2108
|
+
/* @__PURE__ */ jsxRuntime.jsx("dd", { className: "mt-0.5 text-slate-700 dark:text-slate-200", children: formatTimestamp(entry.startedAt) })
|
|
2109
|
+
] }),
|
|
2110
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
2111
|
+
/* @__PURE__ */ jsxRuntime.jsx("dt", { className: "font-semibold", children: labels.completed }),
|
|
2112
|
+
/* @__PURE__ */ jsxRuntime.jsx("dd", { className: "mt-0.5 text-slate-700 dark:text-slate-200", children: formatTimestamp(entry.completedAt) })
|
|
2113
|
+
] }),
|
|
2114
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
2115
|
+
/* @__PURE__ */ jsxRuntime.jsx("dt", { className: "font-semibold", children: labels.duration }),
|
|
2116
|
+
/* @__PURE__ */ jsxRuntime.jsx("dd", { className: "mt-0.5 text-slate-700 dark:text-slate-200", children: formatDuration2(entry.durationMs) })
|
|
2117
|
+
] }),
|
|
2118
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
2119
|
+
/* @__PURE__ */ jsxRuntime.jsx("dt", { className: "font-semibold", children: labels.status }),
|
|
2120
|
+
/* @__PURE__ */ jsxRuntime.jsx("dd", { className: "mt-0.5 text-slate-700 dark:text-slate-200", children: labels[entry.status] })
|
|
2121
|
+
] })
|
|
2122
|
+
] }),
|
|
2123
|
+
entry.metrics && hasMetrics(entry.metrics) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-4 rounded-lg border border-indigo-300/50 bg-indigo-50/60 p-3 text-xs dark:border-indigo-400/30 dark:bg-indigo-500/10", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 gap-3 sm:grid-cols-3", children: [
|
|
2124
|
+
entry.metrics.model && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
2125
|
+
/* @__PURE__ */ jsxRuntime.jsx("dt", { className: "font-semibold text-indigo-700 dark:text-indigo-200", children: labels.model }),
|
|
2126
|
+
/* @__PURE__ */ jsxRuntime.jsxs("dd", { className: "mt-0.5 truncate text-indigo-900 dark:text-indigo-100", children: [
|
|
2127
|
+
entry.metrics.provider ? `${entry.metrics.provider} \xB7 ` : "",
|
|
2128
|
+
entry.metrics.model
|
|
2129
|
+
] })
|
|
2130
|
+
] }),
|
|
2131
|
+
(entry.metrics.tokensIn !== void 0 || entry.metrics.tokensOut !== void 0) && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
2132
|
+
/* @__PURE__ */ jsxRuntime.jsx("dt", { className: "font-semibold text-indigo-700 dark:text-indigo-200", children: labels.tokens }),
|
|
2133
|
+
/* @__PURE__ */ jsxRuntime.jsxs("dd", { className: "mt-0.5 text-indigo-900 dark:text-indigo-100", children: [
|
|
2134
|
+
entry.metrics.tokensIn ?? 0,
|
|
2135
|
+
" in \xB7 ",
|
|
2136
|
+
entry.metrics.tokensOut ?? 0,
|
|
2137
|
+
" out"
|
|
2138
|
+
] })
|
|
2139
|
+
] }),
|
|
2140
|
+
entry.metrics.costUsd !== void 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
2141
|
+
/* @__PURE__ */ jsxRuntime.jsx("dt", { className: "font-semibold text-indigo-700 dark:text-indigo-200", children: labels.cost }),
|
|
2142
|
+
/* @__PURE__ */ jsxRuntime.jsx("dd", { className: "mt-0.5 text-indigo-900 dark:text-indigo-100", children: formatCost(entry.metrics.costUsd) })
|
|
2143
|
+
] })
|
|
2144
|
+
] }) }),
|
|
2145
|
+
entry.error && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-4 rounded-lg border border-rose-300/60 bg-rose-50/60 p-3 text-xs dark:border-rose-400/30 dark:bg-rose-500/10", children: [
|
|
2146
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 font-semibold text-rose-700 dark:text-rose-300", children: [
|
|
2147
|
+
/* @__PURE__ */ jsxRuntime.jsx(outline.ExclamationTriangleIcon, { className: "h-4 w-4" }),
|
|
2148
|
+
labels.error
|
|
2149
|
+
] }),
|
|
2150
|
+
/* @__PURE__ */ jsxRuntime.jsx("pre", { className: "mt-2 whitespace-pre-wrap break-words text-rose-800 dark:text-rose-200", children: entry.error })
|
|
2151
|
+
] }),
|
|
2152
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-4 space-y-3", children: [
|
|
2153
|
+
/* @__PURE__ */ jsxRuntime.jsx(JsonBlock, { title: labels.inputs, value: entry.inputs }),
|
|
2154
|
+
/* @__PURE__ */ jsxRuntime.jsx(JsonBlock, { title: labels.outputs, value: entry.outputs })
|
|
2155
|
+
] })
|
|
2156
|
+
] });
|
|
2157
|
+
}
|
|
2158
|
+
function JsonBlock({ title, value }) {
|
|
2159
|
+
const hasValue = value && Object.keys(value).length > 0;
|
|
2160
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-lg border border-slate-200/60 bg-slate-50/60 p-3 dark:border-white/10 dark:bg-white/5", children: [
|
|
2161
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-1 text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400", children: title }),
|
|
2162
|
+
hasValue ? /* @__PURE__ */ jsxRuntime.jsx("pre", { className: "max-h-72 overflow-auto whitespace-pre text-xs text-slate-800 dark:text-slate-200", children: JSON.stringify(value, null, 2) }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-xs italic text-slate-400 dark:text-slate-500", children: "\u2014" })
|
|
2163
|
+
] });
|
|
2164
|
+
}
|
|
2165
|
+
function hasMetrics(metrics) {
|
|
2166
|
+
return Boolean(
|
|
2167
|
+
metrics.model || metrics.tokensIn !== void 0 || metrics.tokensOut !== void 0 || metrics.costUsd !== void 0
|
|
2168
|
+
);
|
|
2169
|
+
}
|
|
2170
|
+
function formatDuration2(ms) {
|
|
2171
|
+
if (ms === null) return "\u2014";
|
|
2172
|
+
if (ms < 1e3) return `${ms}ms`;
|
|
2173
|
+
if (ms < 6e4) return `${(ms / 1e3).toFixed(1)}s`;
|
|
2174
|
+
const mins = Math.floor(ms / 6e4);
|
|
2175
|
+
const secs = Math.floor(ms % 6e4 / 1e3);
|
|
2176
|
+
return `${mins}m${secs}s`;
|
|
2177
|
+
}
|
|
2178
|
+
function formatCost(usd) {
|
|
2179
|
+
if (usd === 0) return "$0";
|
|
2180
|
+
if (usd < 0.01) return `$${usd.toFixed(4)}`;
|
|
2181
|
+
if (usd < 1) return `$${usd.toFixed(3)}`;
|
|
2182
|
+
return `$${usd.toFixed(2)}`;
|
|
2183
|
+
}
|
|
2184
|
+
function formatTimestamp(iso) {
|
|
2185
|
+
if (!iso) return "\u2014";
|
|
2186
|
+
return new Date(iso).toLocaleString(void 0, {
|
|
2187
|
+
hour: "2-digit",
|
|
2188
|
+
minute: "2-digit",
|
|
2189
|
+
second: "2-digit"
|
|
2190
|
+
});
|
|
2191
|
+
}
|
|
2022
2192
|
|
|
2023
2193
|
// src/astrlabe/components/rules/types.ts
|
|
2024
2194
|
var RULE_STATUS_OPTIONS = ["draft", "active", "archived"];
|
|
@@ -3304,7 +3474,7 @@ function VersionHistoryPanel({
|
|
|
3304
3474
|
loadVersions();
|
|
3305
3475
|
}
|
|
3306
3476
|
}, [open, loadVersions]);
|
|
3307
|
-
const
|
|
3477
|
+
const formatTimestamp3 = react.useCallback((timestamp) => {
|
|
3308
3478
|
try {
|
|
3309
3479
|
const date = new Date(timestamp);
|
|
3310
3480
|
return new Intl.DateTimeFormat(void 0, {
|
|
@@ -3375,7 +3545,7 @@ function VersionHistoryPanel({
|
|
|
3375
3545
|
isCurrentVersion && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded-full bg-blue-100 px-2 py-0.5 text-[10px] font-medium text-blue-700 dark:bg-blue-500/20 dark:text-blue-300", children: translations("current") })
|
|
3376
3546
|
] }) }),
|
|
3377
3547
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-1 text-xs text-gray-500 dark:text-gray-400", children: [
|
|
3378
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { children:
|
|
3548
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { children: formatTimestamp3(version.publishedAt) }),
|
|
3379
3549
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-0.5", children: [
|
|
3380
3550
|
translations("publishedBy"),
|
|
3381
3551
|
": ",
|
|
@@ -3455,7 +3625,7 @@ var STATUS_CONFIG = {
|
|
|
3455
3625
|
label: "error"
|
|
3456
3626
|
}
|
|
3457
3627
|
};
|
|
3458
|
-
function
|
|
3628
|
+
function formatDuration3(durationMs) {
|
|
3459
3629
|
if (durationMs < 1e3) {
|
|
3460
3630
|
return `${durationMs}ms`;
|
|
3461
3631
|
}
|
|
@@ -3549,7 +3719,7 @@ function RunPanel({ open, onClose, onRun, onStop }) {
|
|
|
3549
3719
|
] }),
|
|
3550
3720
|
result?.error && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 truncate text-xs text-red-500 dark:text-red-400", children: result.error })
|
|
3551
3721
|
] }),
|
|
3552
|
-
result?.durationMs !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-shrink-0 text-xs text-gray-500 dark:text-gray-400", children:
|
|
3722
|
+
result?.durationMs !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-shrink-0 text-xs text-gray-500 dark:text-gray-400", children: formatDuration3(result.durationMs) })
|
|
3553
3723
|
]
|
|
3554
3724
|
},
|
|
3555
3725
|
node.id
|
|
@@ -3950,12 +4120,12 @@ var STATUS_STYLES = {
|
|
|
3950
4120
|
error: { icon: outline.ExclamationCircleIcon, colorClass: "text-red-500" },
|
|
3951
4121
|
skipped: { icon: outline.ClockIcon, colorClass: "text-gray-400" }
|
|
3952
4122
|
};
|
|
3953
|
-
function
|
|
4123
|
+
function formatDuration4(durationMs) {
|
|
3954
4124
|
if (durationMs === null) return "\u2014";
|
|
3955
4125
|
if (durationMs < 1e3) return `${durationMs}ms`;
|
|
3956
4126
|
return `${(durationMs / 1e3).toFixed(1)}s`;
|
|
3957
4127
|
}
|
|
3958
|
-
function
|
|
4128
|
+
function formatTimestamp2(timestamp) {
|
|
3959
4129
|
const date = new Date(timestamp);
|
|
3960
4130
|
return date.toLocaleTimeString(void 0, { hour: "2-digit", minute: "2-digit", second: "2-digit" });
|
|
3961
4131
|
}
|
|
@@ -4012,7 +4182,7 @@ function PreviewPanel({ open, onClose, workflowId, loadRuns }) {
|
|
|
4012
4182
|
/* @__PURE__ */ jsxRuntime.jsx(StatusIcon, { className: `h-3.5 w-3.5 ${statusStyle.colorClass}` }),
|
|
4013
4183
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-gray-700 dark:text-gray-300", children: nodeId.slice(0, 8) })
|
|
4014
4184
|
] }),
|
|
4015
|
-
result.durationMs !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-400", children:
|
|
4185
|
+
result.durationMs !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-400", children: formatDuration4(result.durationMs) })
|
|
4016
4186
|
] }, nodeId);
|
|
4017
4187
|
}) })
|
|
4018
4188
|
] }),
|
|
@@ -4028,7 +4198,7 @@ function PreviewPanel({ open, onClose, workflowId, loadRuns }) {
|
|
|
4028
4198
|
] }),
|
|
4029
4199
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between", children: [
|
|
4030
4200
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-500", children: t("duration") }),
|
|
4031
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-700 dark:text-gray-300", children:
|
|
4201
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-700 dark:text-gray-300", children: formatDuration4(selectedNode.durationMs) })
|
|
4032
4202
|
] }),
|
|
4033
4203
|
selectedNode.error && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
4034
4204
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-red-500", children: t("error") }),
|
|
@@ -4065,9 +4235,9 @@ function PreviewPanel({ open, onClose, workflowId, loadRuns }) {
|
|
|
4065
4235
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
|
|
4066
4236
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
4067
4237
|
/* @__PURE__ */ jsxRuntime.jsx(StatusIcon, { className: `h-3.5 w-3.5 ${statusStyle.colorClass}` }),
|
|
4068
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-medium text-gray-900 dark:text-white", children:
|
|
4238
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-medium text-gray-900 dark:text-white", children: formatTimestamp2(run.createdAt) })
|
|
4069
4239
|
] }),
|
|
4070
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-gray-400", children:
|
|
4240
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-gray-400", children: formatDuration4(run.totalDurationMs) })
|
|
4071
4241
|
] }),
|
|
4072
4242
|
run.error && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 truncate text-[10px] text-red-500", children: run.error })
|
|
4073
4243
|
]
|
|
@@ -4091,7 +4261,7 @@ function PreviewPanel({ open, onClose, workflowId, loadRuns }) {
|
|
|
4091
4261
|
/* @__PURE__ */ jsxRuntime.jsx(NodeStatusIcon, { className: `h-3 w-3 ${nodeStatusStyle.colorClass}` }),
|
|
4092
4262
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-700 dark:text-gray-300", children: nodeResult.nodeType })
|
|
4093
4263
|
] }),
|
|
4094
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-gray-400", children:
|
|
4264
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-gray-400", children: formatDuration4(nodeResult.durationMs) })
|
|
4095
4265
|
]
|
|
4096
4266
|
},
|
|
4097
4267
|
nodeResult.nodeId
|
|
@@ -4785,6 +4955,7 @@ exports.AutoSaveWorkspace = AutoSaveWorkspace;
|
|
|
4785
4955
|
exports.DslExportModal = DslExportModal;
|
|
4786
4956
|
exports.DslImportModal = DslImportModal;
|
|
4787
4957
|
exports.DynamicIslandConfirm = DynamicIslandConfirm2;
|
|
4958
|
+
exports.ExecutionTimelinePanel = ExecutionTimelinePanel;
|
|
4788
4959
|
exports.MetaLlamaIcon = MetaLlamaIcon;
|
|
4789
4960
|
exports.NodePalette = NodePalette;
|
|
4790
4961
|
exports.OutputSchemaBuilder = OutputSchemaBuilder;
|
|
@@ -4821,5 +4992,5 @@ exports.useNodeResults = useNodeResults;
|
|
|
4821
4992
|
exports.useSelectedNodeCount = useSelectedNodeCount;
|
|
4822
4993
|
exports.useSubworkflowStore = useSubworkflowStore;
|
|
4823
4994
|
exports.useUndoRedo = useUndoRedo;
|
|
4824
|
-
//# sourceMappingURL=chunk-
|
|
4825
|
-
//# sourceMappingURL=chunk-
|
|
4995
|
+
//# sourceMappingURL=chunk-JFWZHROG.js.map
|
|
4996
|
+
//# sourceMappingURL=chunk-JFWZHROG.js.map
|