@workflow/web 5.0.0-beta.10 → 5.0.0-beta.12
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/build/client/assets/{encryption-B7z5c3Mu.js → encryption-g14N5vQl.js} +2 -2
- package/build/client/assets/{entry.client-DtOpLtMQ.js → entry.client-DOJDY_4b.js} +1 -1
- package/build/client/assets/{highlighted-body-B3W2YXNL-khW-t_B-.js → highlighted-body-B3W2YXNL-DmlmGvFd.js} +2 -2
- package/build/client/assets/{home-DKDz-tU-.js → home-BQRPxkXT.js} +4 -14
- package/build/client/assets/{index-CIZByfnL.js → index-B6-SzLmT.js} +1 -1
- package/build/client/assets/{index-BsV8i_Jn.js → index-BXZSIDEp.js} +2 -2
- package/build/client/assets/{manifest-a33ce94a.js → manifest-b8838010.js} +1 -1
- package/build/client/assets/{mermaid-3ZIDBTTL-DPZjJwuX.js → mermaid-3ZIDBTTL-CeSti4VQ.js} +246 -115
- package/build/client/assets/{root-DJKbeamD.js → root-8wYQKqnE.js} +2 -2
- package/build/client/assets/root-DvB36HGI.css +1 -0
- package/build/client/assets/{run-detail-ekQSEj_z.js → run-detail-Dn4QeKHW.js} +112 -50
- package/build/client/assets/server-build-B5Dibl7P.css +1 -0
- package/build/client/assets/{workflow-graph-viewer-DjlqbXVx.js → workflow-graph-viewer-CxZS9r2o.js} +3 -3
- package/build/server/assets/{app-Cgrcb-fS.js → app-D-W9Jr82.js} +1 -1
- package/build/server/assets/{highlighted-body-B3W2YXNL-BCA9A7WB.js → highlighted-body-B3W2YXNL-CcRpp5rq.js} +2 -2
- package/build/server/assets/{index-VP-TIWDS.js → index-BUU6Hdm_.js} +3 -3
- package/build/server/assets/{mermaid-3ZIDBTTL-CbLetKvR.js → mermaid-3ZIDBTTL-Nh9-IDfL.js} +2 -2
- package/build/server/assets/{server-build-ClDPbfo3.js → server-build-BshzAvNv.js} +1983 -533
- package/build/server/assets/{token-BxPrGSQ5.js → token-BaJALexf.js} +2 -2
- package/build/server/assets/{token-util-Bmrakd6M.js → token-util-Bc0jltWL.js} +2 -2
- package/build/server/index.js +1 -1
- package/package.json +6 -6
- package/build/client/assets/root-BYtlAgHl.css +0 -1
- package/build/client/assets/server-build-ByHD2s6b.css +0 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/encryption-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/encryption-g14N5vQl.js","assets/index-B6-SzLmT.js","assets/index-BXZSIDEp.js","assets/highlighted-body-B3W2YXNL-DmlmGvFd.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
3
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
4
4
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
5
5
|
var _a2;
|
|
6
|
-
import { r as reactExports, j as jsxRuntimeExports, f as reactDomExports, I as React,
|
|
6
|
+
import { r as reactExports, j as jsxRuntimeExports, f as reactDomExports, I as React, G as ReactDOM, R as ReactExports, g as getDefaultExportFromCjs } from "./index-BXZSIDEp.js";
|
|
7
7
|
function composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {
|
|
8
8
|
return function handleEvent(event) {
|
|
9
9
|
originalEventHandler == null ? void 0 : originalEventHandler(event);
|
|
@@ -48,19 +48,19 @@ function useComposedRefs$1(...refs) {
|
|
|
48
48
|
}
|
|
49
49
|
function createContext2(rootComponentName, defaultContext) {
|
|
50
50
|
const Context = reactExports.createContext(defaultContext);
|
|
51
|
-
const
|
|
51
|
+
const Provider2 = (props) => {
|
|
52
52
|
const { children: children2, ...context } = props;
|
|
53
53
|
const value = reactExports.useMemo(() => context, Object.values(context));
|
|
54
54
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(Context.Provider, { value, children: children2 });
|
|
55
55
|
};
|
|
56
|
-
|
|
56
|
+
Provider2.displayName = rootComponentName + "Provider";
|
|
57
57
|
function useContext2(consumerName) {
|
|
58
58
|
const context = reactExports.useContext(Context);
|
|
59
59
|
if (context) return context;
|
|
60
60
|
if (defaultContext !== void 0) return defaultContext;
|
|
61
61
|
throw new Error(`\`${consumerName}\` must be used within \`${rootComponentName}\``);
|
|
62
62
|
}
|
|
63
|
-
return [
|
|
63
|
+
return [Provider2, useContext2];
|
|
64
64
|
}
|
|
65
65
|
function createContextScope(scopeName, createContextScopeDeps = []) {
|
|
66
66
|
let defaultContexts = [];
|
|
@@ -68,14 +68,14 @@ function createContextScope(scopeName, createContextScopeDeps = []) {
|
|
|
68
68
|
const BaseContext = reactExports.createContext(defaultContext);
|
|
69
69
|
const index2 = defaultContexts.length;
|
|
70
70
|
defaultContexts = [...defaultContexts, defaultContext];
|
|
71
|
-
const
|
|
71
|
+
const Provider2 = (props) => {
|
|
72
72
|
var _a3;
|
|
73
73
|
const { scope, children: children2, ...context } = props;
|
|
74
74
|
const Context = ((_a3 = scope == null ? void 0 : scope[scopeName]) == null ? void 0 : _a3[index2]) || BaseContext;
|
|
75
75
|
const value = reactExports.useMemo(() => context, Object.values(context));
|
|
76
76
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(Context.Provider, { value, children: children2 });
|
|
77
77
|
};
|
|
78
|
-
|
|
78
|
+
Provider2.displayName = rootComponentName + "Provider";
|
|
79
79
|
function useContext2(consumerName, scope) {
|
|
80
80
|
var _a3;
|
|
81
81
|
const Context = ((_a3 = scope == null ? void 0 : scope[scopeName]) == null ? void 0 : _a3[index2]) || BaseContext;
|
|
@@ -84,7 +84,7 @@ function createContextScope(scopeName, createContextScopeDeps = []) {
|
|
|
84
84
|
if (defaultContext !== void 0) return defaultContext;
|
|
85
85
|
throw new Error(`\`${consumerName}\` must be used within \`${rootComponentName}\``);
|
|
86
86
|
}
|
|
87
|
-
return [
|
|
87
|
+
return [Provider2, useContext2];
|
|
88
88
|
}
|
|
89
89
|
const createScope = () => {
|
|
90
90
|
const scopeContexts = defaultContexts.map((defaultContext) => {
|
|
@@ -2682,6 +2682,16 @@ var Root2 = Popper;
|
|
|
2682
2682
|
var Anchor = PopperAnchor;
|
|
2683
2683
|
var Content = PopperContent;
|
|
2684
2684
|
var Arrow$1 = PopperArrow;
|
|
2685
|
+
var PORTAL_NAME$1 = "Portal";
|
|
2686
|
+
var Portal$1 = reactExports.forwardRef((props, forwardedRef) => {
|
|
2687
|
+
var _a3;
|
|
2688
|
+
const { container: containerProp, ...portalProps } = props;
|
|
2689
|
+
const [mounted, setMounted] = reactExports.useState(false);
|
|
2690
|
+
useLayoutEffect2(() => setMounted(true), []);
|
|
2691
|
+
const container = containerProp || mounted && ((_a3 = globalThis == null ? void 0 : globalThis.document) == null ? void 0 : _a3.body);
|
|
2692
|
+
return container ? ReactDOM.createPortal(/* @__PURE__ */ jsxRuntimeExports.jsx(Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;
|
|
2693
|
+
});
|
|
2694
|
+
Portal$1.displayName = PORTAL_NAME$1;
|
|
2685
2695
|
function useStateMachine(initialState2, machine) {
|
|
2686
2696
|
return reactExports.useReducer((state, event) => {
|
|
2687
2697
|
const nextState = machine[state][event];
|
|
@@ -2907,7 +2917,7 @@ var PROVIDER_NAME = "TooltipProvider";
|
|
|
2907
2917
|
var DEFAULT_DELAY_DURATION = 700;
|
|
2908
2918
|
var TOOLTIP_OPEN = "tooltip.open";
|
|
2909
2919
|
var [TooltipProviderContextProvider, useTooltipProviderContext] = createTooltipContext(PROVIDER_NAME);
|
|
2910
|
-
var TooltipProvider = (props) => {
|
|
2920
|
+
var TooltipProvider$1 = (props) => {
|
|
2911
2921
|
const {
|
|
2912
2922
|
__scopeTooltip,
|
|
2913
2923
|
delayDuration = DEFAULT_DELAY_DURATION,
|
|
@@ -2948,10 +2958,10 @@ var TooltipProvider = (props) => {
|
|
|
2948
2958
|
}
|
|
2949
2959
|
);
|
|
2950
2960
|
};
|
|
2951
|
-
TooltipProvider.displayName = PROVIDER_NAME;
|
|
2961
|
+
TooltipProvider$1.displayName = PROVIDER_NAME;
|
|
2952
2962
|
var TOOLTIP_NAME = "Tooltip";
|
|
2953
2963
|
var [TooltipContextProvider, useTooltipContext] = createTooltipContext(TOOLTIP_NAME);
|
|
2954
|
-
var Tooltip$
|
|
2964
|
+
var Tooltip$2 = (props) => {
|
|
2955
2965
|
const {
|
|
2956
2966
|
__scopeTooltip,
|
|
2957
2967
|
children: children2,
|
|
@@ -3041,9 +3051,9 @@ var Tooltip$1 = (props) => {
|
|
|
3041
3051
|
}
|
|
3042
3052
|
) });
|
|
3043
3053
|
};
|
|
3044
|
-
Tooltip$
|
|
3054
|
+
Tooltip$2.displayName = TOOLTIP_NAME;
|
|
3045
3055
|
var TRIGGER_NAME = "TooltipTrigger";
|
|
3046
|
-
var TooltipTrigger$
|
|
3056
|
+
var TooltipTrigger$2 = reactExports.forwardRef(
|
|
3047
3057
|
(props, forwardedRef) => {
|
|
3048
3058
|
const { __scopeTooltip, ...triggerProps } = props;
|
|
3049
3059
|
const context = useTooltipContext(TRIGGER_NAME, __scopeTooltip);
|
|
@@ -3091,13 +3101,19 @@ var TooltipTrigger$1 = reactExports.forwardRef(
|
|
|
3091
3101
|
) });
|
|
3092
3102
|
}
|
|
3093
3103
|
);
|
|
3094
|
-
TooltipTrigger$
|
|
3104
|
+
TooltipTrigger$2.displayName = TRIGGER_NAME;
|
|
3095
3105
|
var PORTAL_NAME = "TooltipPortal";
|
|
3096
3106
|
var [PortalProvider, usePortalContext] = createTooltipContext(PORTAL_NAME, {
|
|
3097
3107
|
forceMount: void 0
|
|
3098
3108
|
});
|
|
3109
|
+
var TooltipPortal = (props) => {
|
|
3110
|
+
const { __scopeTooltip, forceMount, children: children2, container } = props;
|
|
3111
|
+
const context = useTooltipContext(PORTAL_NAME, __scopeTooltip);
|
|
3112
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(PortalProvider, { scope: __scopeTooltip, forceMount, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Portal$1, { asChild: true, container, children: children2 }) }) });
|
|
3113
|
+
};
|
|
3114
|
+
TooltipPortal.displayName = PORTAL_NAME;
|
|
3099
3115
|
var CONTENT_NAME = "TooltipContent";
|
|
3100
|
-
var TooltipContent$
|
|
3116
|
+
var TooltipContent$2 = reactExports.forwardRef(
|
|
3101
3117
|
(props, forwardedRef) => {
|
|
3102
3118
|
const portalContext = usePortalContext(CONTENT_NAME, props.__scopeTooltip);
|
|
3103
3119
|
const { forceMount = portalContext.forceMount, side = "top", ...contentProps } = props;
|
|
@@ -3232,7 +3248,7 @@ var TooltipContentImpl = reactExports.forwardRef(
|
|
|
3232
3248
|
);
|
|
3233
3249
|
}
|
|
3234
3250
|
);
|
|
3235
|
-
TooltipContent$
|
|
3251
|
+
TooltipContent$2.displayName = CONTENT_NAME;
|
|
3236
3252
|
var ARROW_NAME = "TooltipArrow";
|
|
3237
3253
|
var TooltipArrow = reactExports.forwardRef(
|
|
3238
3254
|
(props, forwardedRef) => {
|
|
@@ -3361,9 +3377,12 @@ function getHullPresorted(points) {
|
|
|
3361
3377
|
return upperHull.concat(lowerHull);
|
|
3362
3378
|
}
|
|
3363
3379
|
}
|
|
3364
|
-
var
|
|
3365
|
-
var
|
|
3366
|
-
var
|
|
3380
|
+
var Provider = TooltipProvider$1;
|
|
3381
|
+
var Root3 = Tooltip$2;
|
|
3382
|
+
var Trigger = TooltipTrigger$2;
|
|
3383
|
+
var Portal = TooltipPortal;
|
|
3384
|
+
var Content2 = TooltipContent$2;
|
|
3385
|
+
var Arrow2 = TooltipArrow;
|
|
3367
3386
|
function r(e) {
|
|
3368
3387
|
var t, f2, n = "";
|
|
3369
3388
|
if ("string" == typeof e || "number" == typeof e) n += e;
|
|
@@ -10359,7 +10378,7 @@ function hydrateData(value, revivers) {
|
|
|
10359
10378
|
async function hydrateDataWithKey(value, revivers, key) {
|
|
10360
10379
|
if (value instanceof Uint8Array && isEncryptedData(value) && key) {
|
|
10361
10380
|
const { decrypt } = await __vitePreload(async () => {
|
|
10362
|
-
const { decrypt: decrypt2 } = await import("./encryption-
|
|
10381
|
+
const { decrypt: decrypt2 } = await import("./encryption-g14N5vQl.js");
|
|
10363
10382
|
return { decrypt: decrypt2 };
|
|
10364
10383
|
}, true ? __vite__mapDeps([0,1,2]) : void 0);
|
|
10365
10384
|
const { payload } = decodeFormatPrefix(value);
|
|
@@ -15576,6 +15595,11 @@ const WorkflowInvokePayloadSchema = object({
|
|
|
15576
15595
|
runId: string$2(),
|
|
15577
15596
|
traceCarrier: TraceCarrierSchema.optional(),
|
|
15578
15597
|
requestedAt: date().optional(),
|
|
15598
|
+
/** Consecutive replay divergences in this recovery chain and latest position. */
|
|
15599
|
+
replayDivergence: object({
|
|
15600
|
+
eventId: string$2(),
|
|
15601
|
+
count: number$2().int().positive()
|
|
15602
|
+
}).optional(),
|
|
15579
15603
|
/** Number of times this message has been re-enqueued due to server errors (5xx) */
|
|
15580
15604
|
serverErrorRetryCount: number$2().int().optional(),
|
|
15581
15605
|
/** Step ID for inline step execution in combined handler. If provided, the flow execution
|
|
@@ -15837,7 +15861,8 @@ function getWebRevivers() {
|
|
|
15837
15861
|
// Error family. The reducer side (see
|
|
15838
15862
|
// `packages/core/src/serialization/reducers/common.ts`) emits a tagged
|
|
15839
15863
|
// entry for each built-in Error subclass plus the workflow-specific
|
|
15840
|
-
// `FatalError` / `RetryableError`
|
|
15864
|
+
// `FatalError` / `RetryableError` / `HookConflictError` /
|
|
15865
|
+
// `RuntimeDecryptionError` and `AggregateError`. Without
|
|
15841
15866
|
// matching revivers here, `devalue.unflatten` throws "Unknown type X"
|
|
15842
15867
|
// — which surfaces in the web o11y UI as "Failed to load resource
|
|
15843
15868
|
// details: Unknown type FatalError".
|
|
@@ -15883,6 +15908,18 @@ function getWebRevivers() {
|
|
|
15883
15908
|
error.stack = value.stack;
|
|
15884
15909
|
return error;
|
|
15885
15910
|
},
|
|
15911
|
+
HookConflictError: (value) => {
|
|
15912
|
+
const opts = "cause" in value ? { cause: value.cause } : void 0;
|
|
15913
|
+
const error = new Error(value.message, opts);
|
|
15914
|
+
error.name = "HookConflictError";
|
|
15915
|
+
error.token = value.token;
|
|
15916
|
+
if (value.conflictingRunId !== void 0) {
|
|
15917
|
+
error.conflictingRunId = value.conflictingRunId;
|
|
15918
|
+
}
|
|
15919
|
+
if (value.stack !== void 0)
|
|
15920
|
+
error.stack = value.stack;
|
|
15921
|
+
return error;
|
|
15922
|
+
},
|
|
15886
15923
|
RetryableError: (value) => {
|
|
15887
15924
|
const opts = "cause" in value ? { cause: value.cause } : void 0;
|
|
15888
15925
|
const error = new Error(value.message, opts);
|
|
@@ -15894,6 +15931,17 @@ function getWebRevivers() {
|
|
|
15894
15931
|
}
|
|
15895
15932
|
return error;
|
|
15896
15933
|
},
|
|
15934
|
+
RuntimeDecryptionError: (value) => {
|
|
15935
|
+
const opts = "cause" in value ? { cause: value.cause } : void 0;
|
|
15936
|
+
const error = new Error(value.message, opts);
|
|
15937
|
+
error.name = "RuntimeDecryptionError";
|
|
15938
|
+
if (value.context !== void 0) {
|
|
15939
|
+
error.context = value.context;
|
|
15940
|
+
}
|
|
15941
|
+
if (value.stack !== void 0)
|
|
15942
|
+
error.stack = value.stack;
|
|
15943
|
+
return error;
|
|
15944
|
+
},
|
|
15897
15945
|
DOMException: (value) => {
|
|
15898
15946
|
const G2 = globalThis;
|
|
15899
15947
|
if (typeof G2.DOMException === "function") {
|
|
@@ -16048,7 +16096,7 @@ async function hydrateResourceIOWithKey(resource, key) {
|
|
|
16048
16096
|
return { hydrateDataWithKey: hydrateDataWithKey3 };
|
|
16049
16097
|
}, true ? void 0 : void 0);
|
|
16050
16098
|
const { importKey } = await __vitePreload(async () => {
|
|
16051
|
-
const { importKey: importKey2 } = await import("./encryption-
|
|
16099
|
+
const { importKey: importKey2 } = await import("./encryption-g14N5vQl.js");
|
|
16052
16100
|
return { importKey: importKey2 };
|
|
16053
16101
|
}, true ? __vite__mapDeps([0,1,2]) : void 0);
|
|
16054
16102
|
const cryptoKey = await importKey(key);
|
|
@@ -43255,7 +43303,7 @@ var tn = f("block", "before:content-[counter(line)]", "before:inline-block", "be
|
|
|
43255
43303
|
var et = ({ className: e, language: t, style: o, isIncomplete: n, ...s2 }) => jsxRuntimeExports.jsx("div", { className: f("my-4 flex w-full flex-col gap-2 rounded-xl border border-border bg-sidebar p-2", e), "data-incomplete": n || void 0, "data-language": t, "data-streamdown": "code-block", style: { contentVisibility: "auto", containIntrinsicSize: "auto 200px", ...o }, ...s2 });
|
|
43256
43304
|
var Se = reactExports.createContext({ code: "" }), de = () => reactExports.useContext(Se);
|
|
43257
43305
|
var ot = ({ language: e }) => jsxRuntimeExports.jsx("div", { className: "flex h-8 items-center text-muted-foreground text-xs", "data-language": e, "data-streamdown": "code-block-header", children: jsxRuntimeExports.jsx("span", { className: "ml-1 font-mono lowercase", children: e }) });
|
|
43258
|
-
var cn$1 = /\n+$/, dn = reactExports.lazy(() => __vitePreload(() => import("./highlighted-body-B3W2YXNL-
|
|
43306
|
+
var cn$1 = /\n+$/, dn = reactExports.lazy(() => __vitePreload(() => import("./highlighted-body-B3W2YXNL-DmlmGvFd.js"), true ? __vite__mapDeps([3,2]) : void 0).then((e) => ({ default: e.HighlightedCodeBlockBody }))), rt = ({ code: e, language: t, className: o, children: n, isIncomplete: s2 = false, ...r2 }) => {
|
|
43259
43307
|
let i = reactExports.useMemo(() => e.replace(cn$1, ""), [e]), c = reactExports.useMemo(() => ({ bg: "transparent", fg: "inherit", tokens: i.split(`
|
|
43260
43308
|
`).map((a2) => [{ content: a2, color: "inherit", bgColor: "transparent", htmlStyle: {}, offset: 0 }]) }), [i]);
|
|
43261
43309
|
return jsxRuntimeExports.jsx(Se.Provider, { value: { code: e }, children: jsxRuntimeExports.jsxs(et, { isIncomplete: s2, language: t, children: [jsxRuntimeExports.jsx(ot, { language: t }), n ? jsxRuntimeExports.jsx("div", { className: "pointer-events-none sticky top-2 z-10 -mt-10 flex h-8 items-center justify-end", children: jsxRuntimeExports.jsx("div", { className: "pointer-events-auto flex shrink-0 items-center gap-2 rounded-md border border-sidebar bg-sidebar/80 px-1.5 py-1 supports-[backdrop-filter]:bg-sidebar/70 supports-[backdrop-filter]:backdrop-blur", "data-streamdown": "code-block-actions", children: n }) }) : null, jsxRuntimeExports.jsx(reactExports.Suspense, { fallback: jsxRuntimeExports.jsx(Qe, { className: o, language: t, result: c, ...r2 }), children: jsxRuntimeExports.jsx(dn, { className: o, code: i, language: t, raw: c, ...r2 }) })] }) });
|
|
@@ -45291,6 +45339,29 @@ function StreamViewer({ streamId: _streamId, chunks, isLive, error, isLoading, o
|
|
|
45291
45339
|
color: "var(--ds-gray-600)"
|
|
45292
45340
|
}, children: isLive ? "Waiting for stream data..." : "Stream is empty" }) : jsxRuntimeExports.jsx(Yr, { ref: virtuosoRef, totalCount: chunks.length, overscan: 10, endReached: () => onScrollEnd == null ? void 0 : onScrollEnd(), itemContent: (index2) => jsxRuntimeExports.jsx("div", { style: { paddingBottom: 8 }, children: jsxRuntimeExports.jsx(ChunkRow, { chunk: chunks[index2], index: index2 }) }), style: { flex: 1, minHeight: 0 } }) })] });
|
|
45293
45341
|
}
|
|
45342
|
+
const iconButtonVariants = cva([
|
|
45343
|
+
"m-0 inline-flex shrink-0 appearance-none items-center justify-center border-0 bg-transparent p-0 align-baseline font-inherit no-underline [background:none] [-webkit-appearance:none] [-webkit-tap-highlight-color:transparent]",
|
|
45344
|
+
"transition-colors duration-150 ease-in-out",
|
|
45345
|
+
"enabled:cursor-pointer disabled:cursor-not-allowed disabled:opacity-40",
|
|
45346
|
+
"focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--ds-focus-color)] focus-visible:outline-offset-2"
|
|
45347
|
+
], {
|
|
45348
|
+
variants: {
|
|
45349
|
+
variant: {
|
|
45350
|
+
tertiary: "text-gray-900 enabled:hover:bg-gray-alpha-200 enabled:hover:text-gray-1000 enabled:active:bg-gray-alpha-200 focus-visible:text-gray-1000",
|
|
45351
|
+
muted: "text-gray-900 enabled:hover:bg-gray-alpha-200 enabled:hover:text-gray-1000 enabled:active:bg-gray-alpha-200 focus-visible:text-gray-1000"
|
|
45352
|
+
},
|
|
45353
|
+
size: {
|
|
45354
|
+
tiny: "h-6 w-6 rounded-[4px] [&_svg]:h-4 [&_svg]:w-4",
|
|
45355
|
+
small: "h-8 w-8 rounded-md [&_svg]:h-4 [&_svg]:w-4"
|
|
45356
|
+
}
|
|
45357
|
+
},
|
|
45358
|
+
defaultVariants: {
|
|
45359
|
+
variant: "tertiary",
|
|
45360
|
+
size: "tiny"
|
|
45361
|
+
}
|
|
45362
|
+
});
|
|
45363
|
+
const IconButton = reactExports.forwardRef(({ className, variant, size: size2, type = "button", ...props }, ref) => jsxRuntimeExports.jsx("button", { ref, type, className: cn$4(iconButtonVariants({ variant, size: size2, className })), ...props }));
|
|
45364
|
+
IconButton.displayName = "IconButton";
|
|
45294
45365
|
const ATTR_FILTER_REGEX = /(?:^|\s)(?<pair>(?<key>[\w.]+):(?<value>\S*))/g;
|
|
45295
45366
|
function parseSpanSearchQuery(rawQuery) {
|
|
45296
45367
|
var _a3, _b, _c;
|
|
@@ -45736,6 +45807,54 @@ function computeSpanSegments(span) {
|
|
|
45736
45807
|
return [];
|
|
45737
45808
|
}
|
|
45738
45809
|
}
|
|
45810
|
+
const INITIAL_VISIBLE_ROWS = 60;
|
|
45811
|
+
function getScrollParent(el) {
|
|
45812
|
+
let node2 = (el == null ? void 0 : el.parentElement) ?? null;
|
|
45813
|
+
while (node2) {
|
|
45814
|
+
const overflowY = getComputedStyle(node2).overflowY;
|
|
45815
|
+
if (overflowY === "auto" || overflowY === "scroll")
|
|
45816
|
+
return node2;
|
|
45817
|
+
node2 = node2.parentElement;
|
|
45818
|
+
}
|
|
45819
|
+
return null;
|
|
45820
|
+
}
|
|
45821
|
+
function useRowWindow(ref, rowCount, rowHeight, overscan = 12) {
|
|
45822
|
+
const [range, setRange] = reactExports.useState(() => ({
|
|
45823
|
+
start: 0,
|
|
45824
|
+
end: Math.min(rowCount, INITIAL_VISIBLE_ROWS)
|
|
45825
|
+
}));
|
|
45826
|
+
reactExports.useEffect(() => {
|
|
45827
|
+
const self2 = ref.current;
|
|
45828
|
+
const el = getScrollParent(self2);
|
|
45829
|
+
if (!self2 || !el)
|
|
45830
|
+
return;
|
|
45831
|
+
let raf = 0;
|
|
45832
|
+
const measure = () => {
|
|
45833
|
+
raf = 0;
|
|
45834
|
+
const offset2 = self2.getBoundingClientRect().top - el.getBoundingClientRect().top + el.scrollTop;
|
|
45835
|
+
const top = el.scrollTop - offset2;
|
|
45836
|
+
const start = Math.max(0, Math.floor(top / rowHeight) - overscan);
|
|
45837
|
+
const end = Math.min(rowCount, Math.ceil((top + el.clientHeight) / rowHeight) + overscan);
|
|
45838
|
+
setRange((prev) => prev.start === start && prev.end === end ? prev : { start, end });
|
|
45839
|
+
};
|
|
45840
|
+
const onScroll = () => {
|
|
45841
|
+
if (!raf)
|
|
45842
|
+
raf = requestAnimationFrame(measure);
|
|
45843
|
+
};
|
|
45844
|
+
measure();
|
|
45845
|
+
el.addEventListener("scroll", onScroll, { passive: true });
|
|
45846
|
+
const ro2 = new ResizeObserver(measure);
|
|
45847
|
+
ro2.observe(el);
|
|
45848
|
+
return () => {
|
|
45849
|
+
el.removeEventListener("scroll", onScroll);
|
|
45850
|
+
ro2.disconnect();
|
|
45851
|
+
if (raf)
|
|
45852
|
+
cancelAnimationFrame(raf);
|
|
45853
|
+
};
|
|
45854
|
+
}, [ref, rowCount, rowHeight, overscan]);
|
|
45855
|
+
return range;
|
|
45856
|
+
}
|
|
45857
|
+
const ROW_HEIGHT_PX = 40;
|
|
45739
45858
|
const TINY_BAR_BOX_SIZE_PX = 24;
|
|
45740
45859
|
const TINY_BAR_WIDTH_PX = 4;
|
|
45741
45860
|
const TIMELINE_PADDING_PX = 16;
|
|
@@ -45862,11 +45981,10 @@ const TimelineBar = reactExports.memo(function TimelineBar2({ span, viewStart, v
|
|
|
45862
45981
|
}, [onSelect, span.spanId]);
|
|
45863
45982
|
return jsxRuntimeExports.jsx("div", { role: "treeitem", "aria-selected": isSelected, "aria-expanded": isSelected, "aria-level": 1, className: cn$4("group/timeline-row h-10 relative flex items-center hover:bg-gray-100 aria-selected:bg-gray-100 aria-selected:hover:bg-gray-200 transition-opacity", isDimmed && "opacity-35"), onClick: handleClick, children: jsxRuntimeExports.jsx("div", { className: "absolute inset-y-0", style: TIMELINE_INSET_STYLE, children: jsxRuntimeExports.jsx("div", { className: "absolute top-1/2 h-6 -translate-y-1/2 rounded-[0.25rem]", style: getBarPositionStyle(geometry), children: geometry.mode.kind === "arrow" ? jsxRuntimeExports.jsx(BoundaryArrow, { direction: geometry.mode.direction }) : geometry.mode.kind === "tiny" ? jsxRuntimeExports.jsx("div", { className: "h-6 rounded-[0.25rem] border", style: { background: fallbackBg, borderColor: fallbackBorder } }) : segments.length > 0 ? jsxRuntimeExports.jsx(SegmentBar, { segments }) : jsxRuntimeExports.jsx(PlainBar, { bg: fallbackBg, border: fallbackBorder, label: showTotalLabel ? totalLabel : null }) }) }) });
|
|
45864
45983
|
});
|
|
45865
|
-
const DELTA_ROW_HEIGHT_PX = 40;
|
|
45866
45984
|
const DELTA_CAP_HEIGHT_PX = 8;
|
|
45867
45985
|
const DELTA_ROW_OFFSET_PX = 8;
|
|
45868
45986
|
const DeltaIndicator = reactExports.memo(function DeltaIndicator2({ leftFrac, rightFrac, label, rowIndex }) {
|
|
45869
|
-
const centerY = DELTA_ROW_OFFSET_PX + (rowIndex + 1) *
|
|
45987
|
+
const centerY = DELTA_ROW_OFFSET_PX + (rowIndex + 1) * ROW_HEIGHT_PX;
|
|
45870
45988
|
return jsxRuntimeExports.jsxs("div", { className: "absolute pointer-events-none", style: {
|
|
45871
45989
|
left: `${leftFrac * 100}%`,
|
|
45872
45990
|
width: `${(rightFrac - leftFrac) * 100}%`,
|
|
@@ -45882,6 +46000,7 @@ function Timeline({ spans, viewStart, viewEnd, markers: markers2, selectedId, se
|
|
|
45882
46000
|
const [containerWidth, setContainerWidth] = reactExports.useState(0);
|
|
45883
46001
|
const viewDuration = viewEnd - viewStart;
|
|
45884
46002
|
const timelineWidth = Math.max(0, containerWidth - TIMELINE_PADDING_PX * 2);
|
|
46003
|
+
const { start, end } = useRowWindow(containerRef, spans.length, ROW_HEIGHT_PX);
|
|
45885
46004
|
reactExports.useEffect(() => {
|
|
45886
46005
|
const el = containerRef.current;
|
|
45887
46006
|
if (!el)
|
|
@@ -45893,16 +46012,20 @@ function Timeline({ spans, viewStart, viewEnd, markers: markers2, selectedId, se
|
|
|
45893
46012
|
return () => ro2.disconnect();
|
|
45894
46013
|
}, []);
|
|
45895
46014
|
const gaps = reactExports.useMemo(() => computeSpanGaps(spans, viewStart, viewEnd), [spans, viewStart, viewEnd]);
|
|
45896
|
-
return jsxRuntimeExports.jsxs("div", { ref: containerRef, className: "relative h-full overflow-hidden", children: [jsxRuntimeExports.jsx("div", { "aria-hidden": true, className: "absolute inset-y-0 pointer-events-none", style: TIMELINE_INSET_STYLE, children: markers2.map((marker2) => (
|
|
46015
|
+
return jsxRuntimeExports.jsxs("div", { ref: containerRef, className: "relative h-full overflow-hidden", style: { minHeight: spans.length * ROW_HEIGHT_PX }, children: [jsxRuntimeExports.jsx("div", { "aria-hidden": true, className: "absolute inset-y-0 pointer-events-none", style: TIMELINE_INSET_STYLE, children: markers2.map((marker2) => (
|
|
45897
46016
|
// Skip the "0s" origin marker since the left edge already implies it.
|
|
45898
46017
|
Math.abs(marker2.value) > 1e-6 ? jsxRuntimeExports.jsx("div", { className: "absolute top-0 bottom-0 w-px bg-gray-alpha-300", style: { left: `${marker2.position * 100}%` } }, `${marker2.position}-${marker2.label}`) : null
|
|
45899
|
-
)) }), hoverFraction != null && jsxRuntimeExports.jsx("div", { className: "absolute inset-y-0 pointer-events-none z-10", style: TIMELINE_INSET_STYLE, children: jsxRuntimeExports.jsx("div", { className: "absolute top-0 bottom-0 w-px bg-gray-alpha-500", style: { left: `${hoverFraction * 100}%` } }) }), spans.map((span) => jsxRuntimeExports.jsx(TimelineBar, { span, viewStart, viewDuration, containerWidth: timelineWidth, isSelected: selectedId === span.spanId, isDimmed: isSpanDimmedBySearch(span.spanId, searchResult), onSelect }, span.spanId)), altHeld && jsxRuntimeExports.jsx("div", { "aria-hidden": true, className: "absolute inset-y-0 pointer-events-none", style: TIMELINE_INSET_STYLE, children: gaps.map((gap) => jsxRuntimeExports.jsx(DeltaIndicator, { leftFrac: gap.leftFrac, rightFrac: gap.rightFrac, label: formatDuration(gap.gapMs, true), rowIndex: gap.rowIndex }, gap.rowIndex)) })] });
|
|
46018
|
+
)) }), hoverFraction != null && jsxRuntimeExports.jsx("div", { className: "absolute inset-y-0 pointer-events-none z-10", style: TIMELINE_INSET_STYLE, children: jsxRuntimeExports.jsx("div", { className: "absolute top-0 bottom-0 w-px bg-gray-alpha-500", style: { left: `${hoverFraction * 100}%` } }) }), jsxRuntimeExports.jsx("div", { style: { transform: `translateY(${start * ROW_HEIGHT_PX}px)` }, children: spans.slice(start, end).map((span) => jsxRuntimeExports.jsx(TimelineBar, { span, viewStart, viewDuration, containerWidth: timelineWidth, isSelected: selectedId === span.spanId, isDimmed: isSpanDimmedBySearch(span.spanId, searchResult), onSelect }, span.spanId)) }), altHeld && jsxRuntimeExports.jsx("div", { "aria-hidden": true, className: "absolute inset-y-0 pointer-events-none", style: TIMELINE_INSET_STYLE, children: gaps.map((gap) => jsxRuntimeExports.jsx(DeltaIndicator, { leftFrac: gap.leftFrac, rightFrac: gap.rightFrac, label: formatDuration(gap.gapMs, true), rowIndex: gap.rowIndex }, gap.rowIndex)) })] });
|
|
45900
46019
|
}
|
|
46020
|
+
const TooltipProvider = Provider;
|
|
46021
|
+
const Tooltip$1 = Root3;
|
|
46022
|
+
const TooltipTrigger$1 = Trigger;
|
|
46023
|
+
const TooltipContent$1 = reactExports.forwardRef(({ className, sideOffset = 8, showArrow = true, children: children2, ...props }, ref) => jsxRuntimeExports.jsx(Portal, { children: jsxRuntimeExports.jsxs(Content2, { ref, sideOffset, className: cn$4("z-[99999] flex items-center gap-1 rounded-[10px] bg-gray-1000 px-2 py-1.5 !text-label-13 text-background-100 shadow-md select-none", className), ...props, children: [children2, showArrow ? jsxRuntimeExports.jsx(Arrow2, { width: 11, height: 5, className: "fill-gray-1000" }) : null] }) }));
|
|
46024
|
+
TooltipContent$1.displayName = Content2.displayName;
|
|
45901
46025
|
const ActiveSpanContext = reactExports.createContext(null);
|
|
45902
46026
|
ActiveSpanContext.displayName = "ActiveSpanContext";
|
|
45903
46027
|
function ActiveSpanProvider({ spans, children: children2 }) {
|
|
45904
|
-
|
|
45905
|
-
const [activeSpanId, setActiveSpanId] = reactExports.useState(((_a3 = spans[0]) == null ? void 0 : _a3.spanId) ?? null);
|
|
46028
|
+
const [activeSpanId, setActiveSpanId] = reactExports.useState(null);
|
|
45906
46029
|
reactExports.useEffect(() => {
|
|
45907
46030
|
setActiveSpanId((currentSpanId) => {
|
|
45908
46031
|
if (!currentSpanId) {
|
|
@@ -48450,111 +48573,119 @@ const mermaid3ZIDBTTL = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.def
|
|
|
48450
48573
|
Mermaid: Nt
|
|
48451
48574
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
48452
48575
|
export {
|
|
48453
|
-
|
|
48576
|
+
_r as $,
|
|
48454
48577
|
Anchor as A,
|
|
48455
48578
|
Button as B,
|
|
48456
48579
|
Content as C,
|
|
48457
48580
|
DEFAULT_PAGE_SIZE as D,
|
|
48458
|
-
|
|
48459
|
-
|
|
48460
|
-
|
|
48461
|
-
|
|
48462
|
-
|
|
48463
|
-
|
|
48581
|
+
Arrow$1 as E,
|
|
48582
|
+
useComposedRefs as F,
|
|
48583
|
+
fetchRun as G,
|
|
48584
|
+
cva as H,
|
|
48585
|
+
Presence as I,
|
|
48586
|
+
createContext2 as J,
|
|
48464
48587
|
Ks as K,
|
|
48465
48588
|
LoaderCircle as L,
|
|
48466
|
-
|
|
48467
|
-
|
|
48468
|
-
|
|
48589
|
+
fetchWorkflowsManifest as M,
|
|
48590
|
+
Spinner as N,
|
|
48591
|
+
cn$4 as O,
|
|
48469
48592
|
Primitive as P,
|
|
48470
48593
|
Qe as Q,
|
|
48471
48594
|
R,
|
|
48472
48595
|
ServerConfigProvider as S,
|
|
48473
48596
|
Tooltip as T,
|
|
48474
|
-
|
|
48597
|
+
Skeleton$1 as U,
|
|
48475
48598
|
VISUALLY_HIDDEN_STYLES as V,
|
|
48476
|
-
|
|
48477
|
-
|
|
48599
|
+
DecryptClickContext as W,
|
|
48600
|
+
isEncryptedMarker as X,
|
|
48478
48601
|
Yr as Y,
|
|
48479
|
-
|
|
48480
|
-
|
|
48602
|
+
formatDuration as Z,
|
|
48603
|
+
DataInspector as _,
|
|
48481
48604
|
TooltipTrigger as a,
|
|
48482
|
-
|
|
48483
|
-
|
|
48484
|
-
|
|
48485
|
-
|
|
48486
|
-
|
|
48487
|
-
|
|
48488
|
-
|
|
48489
|
-
|
|
48490
|
-
|
|
48491
|
-
|
|
48492
|
-
|
|
48493
|
-
|
|
48494
|
-
|
|
48495
|
-
|
|
48496
|
-
|
|
48497
|
-
|
|
48498
|
-
|
|
48499
|
-
|
|
48500
|
-
|
|
48501
|
-
|
|
48502
|
-
|
|
48503
|
-
|
|
48504
|
-
|
|
48505
|
-
|
|
48506
|
-
|
|
48507
|
-
|
|
48508
|
-
|
|
48509
|
-
|
|
48510
|
-
|
|
48511
|
-
|
|
48512
|
-
|
|
48513
|
-
|
|
48514
|
-
|
|
48515
|
-
|
|
48516
|
-
|
|
48517
|
-
|
|
48518
|
-
|
|
48519
|
-
|
|
48520
|
-
|
|
48521
|
-
|
|
48522
|
-
|
|
48523
|
-
|
|
48524
|
-
|
|
48525
|
-
|
|
48526
|
-
|
|
48527
|
-
|
|
48528
|
-
|
|
48529
|
-
|
|
48530
|
-
|
|
48531
|
-
|
|
48532
|
-
|
|
48533
|
-
|
|
48534
|
-
|
|
48605
|
+
Button$1 as a0,
|
|
48606
|
+
Lock as a1,
|
|
48607
|
+
RunClickContext as a2,
|
|
48608
|
+
StreamClickContext as a3,
|
|
48609
|
+
isExpiredMarker as a4,
|
|
48610
|
+
isDoStreamStep as a5,
|
|
48611
|
+
extractConversation as a6,
|
|
48612
|
+
hasEncryptedFields as a7,
|
|
48613
|
+
EVENT_DATA_REF_FIELDS as a8,
|
|
48614
|
+
useSidebarDataOptional as a9,
|
|
48615
|
+
Slottable as aA,
|
|
48616
|
+
buttonVariants as aB,
|
|
48617
|
+
fetchEvent as aC,
|
|
48618
|
+
fetchEventsByCorrelationId as aD,
|
|
48619
|
+
isEncryptedData as aE,
|
|
48620
|
+
hydrateData as aF,
|
|
48621
|
+
getWebRevivers as aG,
|
|
48622
|
+
LIVE_UPDATE_INTERVAL_MS as aH,
|
|
48623
|
+
getEncryptionKeyForRun as aI,
|
|
48624
|
+
StreamViewer as aJ,
|
|
48625
|
+
composeRefs as aK,
|
|
48626
|
+
useFloating as aL,
|
|
48627
|
+
offset as aM,
|
|
48628
|
+
shift as aN,
|
|
48629
|
+
limitShift as aO,
|
|
48630
|
+
flip as aP,
|
|
48631
|
+
size as aQ,
|
|
48632
|
+
arrow as aR,
|
|
48633
|
+
hide as aS,
|
|
48634
|
+
autoUpdate as aT,
|
|
48635
|
+
cancelRun as aU,
|
|
48636
|
+
reenqueueRun as aV,
|
|
48637
|
+
wakeUpRun as aW,
|
|
48638
|
+
resumeHook as aX,
|
|
48639
|
+
recreateRun as aY,
|
|
48640
|
+
clsx as aa,
|
|
48641
|
+
useRowWindow as ab,
|
|
48642
|
+
isSpanDimmedBySearch as ac,
|
|
48643
|
+
ROW_HEIGHT_PX as ad,
|
|
48644
|
+
getSpanDurationMs as ae,
|
|
48645
|
+
getHighResInMs as af,
|
|
48646
|
+
IconButton as ag,
|
|
48647
|
+
TooltipProvider as ah,
|
|
48648
|
+
ActiveSpanProvider as ai,
|
|
48649
|
+
useActiveSpan as aj,
|
|
48650
|
+
searchSpans as ak,
|
|
48651
|
+
computeRootBounds as al,
|
|
48652
|
+
computeTimeMarkers as am,
|
|
48653
|
+
TIMELINE_PADDING_PX as an,
|
|
48654
|
+
Timeline as ao,
|
|
48655
|
+
TimelineHeader as ap,
|
|
48656
|
+
Tooltip$1 as aq,
|
|
48657
|
+
TooltipTrigger$1 as ar,
|
|
48658
|
+
TooltipContent$1 as as,
|
|
48659
|
+
SidebarDataProvider as at,
|
|
48660
|
+
hydrateResourceIOWithKey as au,
|
|
48661
|
+
hydrateResourceIO as av,
|
|
48662
|
+
fetchHook as aw,
|
|
48663
|
+
fetchStep as ax,
|
|
48664
|
+
fetchStreams as ay,
|
|
48665
|
+
Slot as az,
|
|
48535
48666
|
TooltipContent as b,
|
|
48536
48667
|
createLucideIcon as c,
|
|
48537
48668
|
cn as d,
|
|
48538
48669
|
Toaster as e,
|
|
48539
|
-
TooltipProvider as f,
|
|
48540
|
-
|
|
48541
|
-
|
|
48542
|
-
|
|
48543
|
-
|
|
48544
|
-
|
|
48545
|
-
|
|
48546
|
-
|
|
48547
|
-
|
|
48548
|
-
|
|
48549
|
-
|
|
48550
|
-
|
|
48670
|
+
TooltipProvider$1 as f,
|
|
48671
|
+
useToast as g,
|
|
48672
|
+
fetchRuns as h,
|
|
48673
|
+
fetchHooks as i,
|
|
48674
|
+
getPaginationDisplay as j,
|
|
48675
|
+
fetchEvents as k,
|
|
48676
|
+
useCallbackRef as l,
|
|
48677
|
+
useComposedRefs$1 as m,
|
|
48678
|
+
composeEventHandlers as n,
|
|
48679
|
+
useLayoutEffect2 as o,
|
|
48680
|
+
Portal$1 as p,
|
|
48681
|
+
useId as q,
|
|
48551
48682
|
runHealthCheck as r,
|
|
48552
|
-
|
|
48683
|
+
createPopperScope as s,
|
|
48553
48684
|
toast as t,
|
|
48554
48685
|
useServerConfig as u,
|
|
48555
|
-
|
|
48556
|
-
|
|
48557
|
-
|
|
48558
|
-
|
|
48559
|
-
|
|
48686
|
+
DismissableLayer as v,
|
|
48687
|
+
createContextScope as w,
|
|
48688
|
+
createSlot as x,
|
|
48689
|
+
useControllableState as y,
|
|
48690
|
+
Root2 as z
|
|
48560
48691
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { r as reactExports, j as jsxRuntimeExports, w as withComponentProps, x as withErrorBoundaryProps, M as Meta, L as Links, S as ScrollRestoration, y as Scripts, O as Outlet, z as useRouteError, i as isRouteErrorResponse, A as Link, B as useNavigate, C as useSearchParams } from "./index-
|
|
2
|
-
import { c as createLucideIcon, u as useServerConfig, T as Tooltip, a as TooltipTrigger, b as TooltipContent, r as runHealthCheck, t as toast, B as Button, L as LoaderCircle, d as cn, e as Toaster$1, S as ServerConfigProvider, f as TooltipProvider } from "./mermaid-3ZIDBTTL-
|
|
1
|
+
import { r as reactExports, j as jsxRuntimeExports, w as withComponentProps, x as withErrorBoundaryProps, M as Meta, L as Links, S as ScrollRestoration, y as Scripts, O as Outlet, z as useRouteError, i as isRouteErrorResponse, A as Link, B as useNavigate, C as useSearchParams } from "./index-BXZSIDEp.js";
|
|
2
|
+
import { c as createLucideIcon, u as useServerConfig, T as Tooltip, a as TooltipTrigger, b as TooltipContent, r as runHealthCheck, t as toast, B as Button, L as LoaderCircle, d as cn, e as Toaster$1, S as ServerConfigProvider, f as TooltipProvider } from "./mermaid-3ZIDBTTL-CeSti4VQ.js";
|
|
3
3
|
var M = (e, i, s, u, m, a, l, h) => {
|
|
4
4
|
let d = document.documentElement, w = ["light", "dark"];
|
|
5
5
|
function p(n) {
|