@workflow/web 5.0.0-beta.30 → 5.0.0-beta.32

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 (19) hide show
  1. package/build/client/assets/{arrow-up-right-qJMh7AD6.js → arrow-up-right-UTJqZa58.js} +1 -1
  2. package/build/client/assets/{highlighted-body-B3W2YXNL-TNY6Phfb.js → highlighted-body-B3W2YXNL-BJU4jA-M.js} +1 -1
  3. package/build/client/assets/{home-VRVjXSQY.js → home-1xisMAzt.js} +2 -2
  4. package/build/client/assets/{manifest-479fb7d3.js → manifest-37d4814f.js} +1 -1
  5. package/build/client/assets/{mermaid-3ZIDBTTL-CnDvMd8R.js → mermaid-3ZIDBTTL-BxUZpfmG.js} +4 -4
  6. package/build/client/assets/{root-C7ElgjAN.js → root-mjlqO83r.js} +2 -2
  7. package/build/client/assets/{run-detail-CmptzMYo.js → run-detail-ysogMwZA.js} +3 -3
  8. package/build/client/assets/{workflow-graph-viewer-DQf8ZZM2.js → workflow-graph-viewer-DpvUticH.js} +1 -1
  9. package/build/client/assets/{zstd-browser-decoder-VtbaLP8T.js → zstd-browser-decoder-BFS0fmpR.js} +1 -1
  10. package/build/server/assets/{app-CVZBwwJu.js → app-TShfJF1A.js} +1 -1
  11. package/build/server/assets/{highlighted-body-B3W2YXNL-DU9e_6JW.js → highlighted-body-B3W2YXNL-Cn3Ldhfl.js} +2 -2
  12. package/build/server/assets/{index-CtG82ntm.js → index-BuK37-uW.js} +3 -3
  13. package/build/server/assets/{mermaid-3ZIDBTTL-DgV-PzsY.js → mermaid-3ZIDBTTL-Conbg-cC.js} +2 -2
  14. package/build/server/assets/{server-build-CRXCLKDJ.js → server-build-GYVyEwoy.js} +57 -20
  15. package/build/server/assets/{token-bLcjz8Va.js → token-B0_1Gw9R.js} +2 -2
  16. package/build/server/assets/{token-util-C0zuFOay.js → token-util-B_XNC39V.js} +2 -2
  17. package/build/server/assets/{zstd-browser-decoder-BgFuN9zt.js → zstd-browser-decoder-DmzLFSRd.js} +2 -2
  18. package/build/server/index.js +1 -1
  19. package/package.json +6 -6
@@ -1,4 +1,4 @@
1
- import { c as createLucideIcon } from "./mermaid-3ZIDBTTL-CnDvMd8R.js";
1
+ import { c as createLucideIcon } from "./mermaid-3ZIDBTTL-BxUZpfmG.js";
2
2
  /**
3
3
  * @license lucide-react v0.575.0 - ISC
4
4
  *
@@ -1,4 +1,4 @@
1
- import { R, K as Ks, Q as Qe } from "./mermaid-3ZIDBTTL-CnDvMd8R.js";
1
+ import { R, K as Ks, Q as Qe } from "./mermaid-3ZIDBTTL-BxUZpfmG.js";
2
2
  import { r as reactExports, j as jsxRuntimeExports } from "./index-Q81MFBxC.js";
3
3
  var L = ({ code: s, language: t, raw: e, className: n, ...d$1 }) => {
4
4
  let { shikiTheme: l } = reactExports.useContext(R), o = Ks(), [m, i] = reactExports.useState(e);
@@ -1,6 +1,6 @@
1
1
  import { r as reactExports, j as jsxRuntimeExports, c as Link, R as ReactExports, p as reactDomExports, e as useSearchParams, d as useNavigate, D as useLocation, w as withComponentProps } from "./index-Q81MFBxC.js";
2
- import { R as ResolveHookModal, S as Send, r as requireShim, u as unwrapOrThrow, W as WorkflowWebAPIError, C as Check, a as Copy, f as fetchHookToken, b as Skeleton, c as RelativeTime, A as Alert, d as CircleAlert, e as AlertTitle, g as getErrorTitle, h as AlertDescription, i as getErrorMessage, j as CopyableText, D as DropdownMenu, k as DropdownMenuTrigger, E as Ellipsis, l as DropdownMenuContent, m as DropdownMenuItem, n as resumeHook, o as createCollection, p as hideOthers, q as ReactRemoveScroll, s as useDirection, t as ChevronUp, X, v as useControllableState$1, P as Primitive$1, w as composeEventHandlers$1, x as Presence, y as useSize, z as createContextScope$1, B as cancelRun, F as reenqueueRun, G as parseWorkflowName, H as StatusBadge, Z as Zap, I as CircleX, J as RunActionsDropdownItems, K as unwrapServerActionResult, L as WorkflowGraphViewer, T as Tabs, M as TabsList, N as TabsTrigger, O as TabsContent, Q as ErrorBoundary } from "./workflow-graph-viewer-DQf8ZZM2.js";
3
- import { c as createLucideIcon, h as useToast, e as cn, i as fetchRuns, j as fetchHooks, k as getPaginationDisplay, T as Tooltip, a as TooltipTrigger, L as LoaderCircle, b as TooltipContent, D as DEFAULT_PAGE_SIZE, B as Button, C as ChevronRight, l as fetchEvents, m as useCallbackRef, n as useComposedRefs, P as Primitive, A as Anchor, o as composeEventHandlers, p as useLayoutEffect2, q as Portal$2, s as useId, v as createPopperScope, w as DismissableLayer, x as createContextScope, y as createSlot, z as Content$1, E as useControllableState, F as Root2$1, V as VISUALLY_HIDDEN_STYLES, G as Arrow, H as ChevronDown, I as useComposedRefs$1, u as useServerConfig, t as toast, J as fetchRun, M as cva, N as Presence$1, O as createContext2, U as fetchWorkflowsManifest } from "./mermaid-3ZIDBTTL-CnDvMd8R.js";
2
+ import { R as ResolveHookModal, S as Send, r as requireShim, u as unwrapOrThrow, W as WorkflowWebAPIError, C as Check, a as Copy, f as fetchHookToken, b as Skeleton, c as RelativeTime, A as Alert, d as CircleAlert, e as AlertTitle, g as getErrorTitle, h as AlertDescription, i as getErrorMessage, j as CopyableText, D as DropdownMenu, k as DropdownMenuTrigger, E as Ellipsis, l as DropdownMenuContent, m as DropdownMenuItem, n as resumeHook, o as createCollection, p as hideOthers, q as ReactRemoveScroll, s as useDirection, t as ChevronUp, X, v as useControllableState$1, P as Primitive$1, w as composeEventHandlers$1, x as Presence, y as useSize, z as createContextScope$1, B as cancelRun, F as reenqueueRun, G as parseWorkflowName, H as StatusBadge, Z as Zap, I as CircleX, J as RunActionsDropdownItems, K as unwrapServerActionResult, L as WorkflowGraphViewer, T as Tabs, M as TabsList, N as TabsTrigger, O as TabsContent, Q as ErrorBoundary } from "./workflow-graph-viewer-DpvUticH.js";
3
+ import { c as createLucideIcon, h as useToast, e as cn, i as fetchRuns, j as fetchHooks, k as getPaginationDisplay, T as Tooltip, a as TooltipTrigger, L as LoaderCircle, b as TooltipContent, D as DEFAULT_PAGE_SIZE, B as Button, C as ChevronRight, l as fetchEvents, m as useCallbackRef, n as useComposedRefs, P as Primitive, A as Anchor, o as composeEventHandlers, p as useLayoutEffect2, q as Portal$2, s as useId, v as createPopperScope, w as DismissableLayer, x as createContextScope, y as createSlot, z as Content$1, E as useControllableState, F as Root2$1, V as VISUALLY_HIDDEN_STYLES, G as Arrow, H as ChevronDown, I as useComposedRefs$1, u as useServerConfig, t as toast, J as fetchRun, M as cva, N as Presence$1, O as createContext2, U as fetchWorkflowsManifest } from "./mermaid-3ZIDBTTL-BxUZpfmG.js";
4
4
  import "./index-STTN0-2V.js";
5
5
  /**
6
6
  * @license lucide-react v0.575.0 - ISC
@@ -1 +1 @@
1
- window.__reactRouterManifest={"entry":{"module":"/assets/entry.client-Q4eUIqMI.js","imports":["/assets/index-Q81MFBxC.js"],"css":[]},"routes":{"root":{"id":"root","path":"","hasAction":true,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasClientMiddleware":false,"hasDefaultExport":true,"hasErrorBoundary":true,"module":"/assets/root-C7ElgjAN.js","imports":["/assets/index-Q81MFBxC.js","/assets/mermaid-3ZIDBTTL-CnDvMd8R.js","/assets/arrow-up-right-qJMh7AD6.js"],"css":["/assets/root-CQggqXow.css","/assets/mermaid-3ZIDBTTL-DDxQhcP4.css"]},"routes/home":{"id":"routes/home","parentId":"root","index":true,"hasAction":false,"hasLoader":false,"hasClientAction":false,"hasClientLoader":false,"hasClientMiddleware":false,"hasDefaultExport":true,"hasErrorBoundary":false,"module":"/assets/home-VRVjXSQY.js","imports":["/assets/index-Q81MFBxC.js","/assets/workflow-graph-viewer-DQf8ZZM2.js","/assets/mermaid-3ZIDBTTL-CnDvMd8R.js","/assets/index-STTN0-2V.js"],"css":["/assets/workflow-graph-viewer-DnlNuQQH.css","/assets/mermaid-3ZIDBTTL-DDxQhcP4.css"]},"routes/run-detail":{"id":"routes/run-detail","parentId":"root","path":"run/:runId","hasAction":false,"hasLoader":false,"hasClientAction":false,"hasClientLoader":false,"hasClientMiddleware":false,"hasDefaultExport":true,"hasErrorBoundary":false,"module":"/assets/run-detail-CmptzMYo.js","imports":["/assets/index-Q81MFBxC.js","/assets/workflow-graph-viewer-DQf8ZZM2.js","/assets/mermaid-3ZIDBTTL-CnDvMd8R.js","/assets/arrow-up-right-qJMh7AD6.js","/assets/encryption-CLVP4klT.js","/assets/index-STTN0-2V.js"],"css":["/assets/run-detail-CWoGxu_0.css","/assets/workflow-graph-viewer-DnlNuQQH.css","/assets/mermaid-3ZIDBTTL-DDxQhcP4.css"]},"routes/api.rpc":{"id":"routes/api.rpc","parentId":"root","path":"api/rpc","hasAction":true,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasClientMiddleware":false,"hasDefaultExport":false,"hasErrorBoundary":false,"module":"/assets/api.rpc-l0sNRNKZ.js","imports":[],"css":[]},"routes/api.stream.$streamId":{"id":"routes/api.stream.$streamId","parentId":"root","path":"api/stream/:streamId","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasClientMiddleware":false,"hasDefaultExport":false,"hasErrorBoundary":false,"module":"/assets/api.stream._streamId-l0sNRNKZ.js","imports":[],"css":[]}},"url":"/assets/manifest-479fb7d3.js","version":"479fb7d3"};
1
+ window.__reactRouterManifest={"entry":{"module":"/assets/entry.client-Q4eUIqMI.js","imports":["/assets/index-Q81MFBxC.js"],"css":[]},"routes":{"root":{"id":"root","path":"","hasAction":true,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasClientMiddleware":false,"hasDefaultExport":true,"hasErrorBoundary":true,"module":"/assets/root-mjlqO83r.js","imports":["/assets/index-Q81MFBxC.js","/assets/mermaid-3ZIDBTTL-BxUZpfmG.js","/assets/arrow-up-right-UTJqZa58.js"],"css":["/assets/root-CQggqXow.css","/assets/mermaid-3ZIDBTTL-DDxQhcP4.css"]},"routes/home":{"id":"routes/home","parentId":"root","index":true,"hasAction":false,"hasLoader":false,"hasClientAction":false,"hasClientLoader":false,"hasClientMiddleware":false,"hasDefaultExport":true,"hasErrorBoundary":false,"module":"/assets/home-1xisMAzt.js","imports":["/assets/index-Q81MFBxC.js","/assets/workflow-graph-viewer-DpvUticH.js","/assets/mermaid-3ZIDBTTL-BxUZpfmG.js","/assets/index-STTN0-2V.js"],"css":["/assets/workflow-graph-viewer-DnlNuQQH.css","/assets/mermaid-3ZIDBTTL-DDxQhcP4.css"]},"routes/run-detail":{"id":"routes/run-detail","parentId":"root","path":"run/:runId","hasAction":false,"hasLoader":false,"hasClientAction":false,"hasClientLoader":false,"hasClientMiddleware":false,"hasDefaultExport":true,"hasErrorBoundary":false,"module":"/assets/run-detail-ysogMwZA.js","imports":["/assets/index-Q81MFBxC.js","/assets/workflow-graph-viewer-DpvUticH.js","/assets/mermaid-3ZIDBTTL-BxUZpfmG.js","/assets/arrow-up-right-UTJqZa58.js","/assets/encryption-CLVP4klT.js","/assets/index-STTN0-2V.js"],"css":["/assets/run-detail-CWoGxu_0.css","/assets/workflow-graph-viewer-DnlNuQQH.css","/assets/mermaid-3ZIDBTTL-DDxQhcP4.css"]},"routes/api.rpc":{"id":"routes/api.rpc","parentId":"root","path":"api/rpc","hasAction":true,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasClientMiddleware":false,"hasDefaultExport":false,"hasErrorBoundary":false,"module":"/assets/api.rpc-l0sNRNKZ.js","imports":[],"css":[]},"routes/api.stream.$streamId":{"id":"routes/api.stream.$streamId","parentId":"root","path":"api/stream/:streamId","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasClientMiddleware":false,"hasDefaultExport":false,"hasErrorBoundary":false,"module":"/assets/api.stream._streamId-l0sNRNKZ.js","imports":[],"css":[]}},"url":"/assets/manifest-37d4814f.js","version":"37d4814f"};
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/encryption-CLVP4klT.js","assets/index-STTN0-2V.js","assets/index-Q81MFBxC.js","assets/zstd-browser-decoder-VtbaLP8T.js","assets/highlighted-body-B3W2YXNL-TNY6Phfb.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/encryption-CLVP4klT.js","assets/index-STTN0-2V.js","assets/index-Q81MFBxC.js","assets/zstd-browser-decoder-BFS0fmpR.js","assets/highlighted-body-B3W2YXNL-BJU4jA-M.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);
@@ -15314,7 +15314,7 @@ const WorkflowRunBaseSchema = object({
15314
15314
  errorCode: string$2().optional(),
15315
15315
  /**
15316
15316
  * Plaintext string-string metadata attached to the run via
15317
- * `experimental_setAttributes()` (or, in the future, materialized
15317
+ * `setAttributes()` (or, in the future, materialized
15318
15318
  * from `attr_set` events). Stored unencrypted alongside other
15319
15319
  * plaintext fields so observability surfaces can read it without
15320
15320
  * going through the decryption pipeline.
@@ -16510,7 +16510,7 @@ async function hydrateResourceIOAsync(resource, key) {
16510
16510
  return { hydrateDataWithKey: hydrateDataWithKey3 };
16511
16511
  }, true ? void 0 : void 0);
16512
16512
  const { ensureZstdDecoderRegistered } = await __vitePreload(async () => {
16513
- const { ensureZstdDecoderRegistered: ensureZstdDecoderRegistered2 } = await import("./zstd-browser-decoder-VtbaLP8T.js");
16513
+ const { ensureZstdDecoderRegistered: ensureZstdDecoderRegistered2 } = await import("./zstd-browser-decoder-BFS0fmpR.js");
16514
16514
  return { ensureZstdDecoderRegistered: ensureZstdDecoderRegistered2 };
16515
16515
  }, true ? __vite__mapDeps([3,2]) : void 0);
16516
16516
  ensureZstdDecoderRegistered();
@@ -44072,7 +44072,7 @@ var tn = f("block", "before:content-[counter(line)]", "before:inline-block", "be
44072
44072
  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 });
44073
44073
  var Se = reactExports.createContext({ code: "" }), de = () => reactExports.useContext(Se);
44074
44074
  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 }) });
44075
- var cn$1 = /\n+$/, dn = reactExports.lazy(() => __vitePreload(() => import("./highlighted-body-B3W2YXNL-TNY6Phfb.js"), true ? __vite__mapDeps([4,2]) : void 0).then((e) => ({ default: e.HighlightedCodeBlockBody }))), rt = ({ code: e, language: t, className: o, children: n, isIncomplete: s2 = false, ...r2 }) => {
44075
+ var cn$1 = /\n+$/, dn = reactExports.lazy(() => __vitePreload(() => import("./highlighted-body-B3W2YXNL-BJU4jA-M.js"), true ? __vite__mapDeps([4,2]) : void 0).then((e) => ({ default: e.HighlightedCodeBlockBody }))), rt = ({ code: e, language: t, className: o, children: n, isIncomplete: s2 = false, ...r2 }) => {
44076
44076
  let i = reactExports.useMemo(() => e.replace(cn$1, ""), [e]), c = reactExports.useMemo(() => ({ bg: "transparent", fg: "inherit", tokens: i.split(`
44077
44077
  `).map((a2) => [{ content: a2, color: "inherit", bgColor: "transparent", htmlStyle: {}, offset: 0 }]) }), [i]);
44078
44078
  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 }) })] }) });
@@ -1,6 +1,6 @@
1
1
  import { r as reactExports, j as jsxRuntimeExports, w as withComponentProps, a as withErrorBoundaryProps, M as Meta, L as Links, S as ScrollRestoration, b as Scripts, O as Outlet, u as useRouteError, i as isRouteErrorResponse, c as Link, d as useNavigate, e as useSearchParams } from "./index-Q81MFBxC.js";
2
- import { c as createLucideIcon, u as useServerConfig, T as Tooltip, a as TooltipTrigger, b as TooltipContent, d as runHealthCheck, t as toast, B as Button, L as LoaderCircle, e as cn, f as Toaster$1, S as ServerConfigProvider, g as TooltipProvider } from "./mermaid-3ZIDBTTL-CnDvMd8R.js";
3
- import { A as ArrowUpRight } from "./arrow-up-right-qJMh7AD6.js";
2
+ import { c as createLucideIcon, u as useServerConfig, T as Tooltip, a as TooltipTrigger, b as TooltipContent, d as runHealthCheck, t as toast, B as Button, L as LoaderCircle, e as cn, f as Toaster$1, S as ServerConfigProvider, g as TooltipProvider } from "./mermaid-3ZIDBTTL-BxUZpfmG.js";
3
+ import { A as ArrowUpRight } from "./arrow-up-right-UTJqZa58.js";
4
4
  var M = (e, i, s, u, m, a, l, h) => {
5
5
  let d = document.documentElement, w = ["light", "dark"];
6
6
  function p(n) {
@@ -1,7 +1,7 @@
1
1
  import { r as reactExports, j as jsxRuntimeExports, p as reactDomExports, G as ReactDOM, d as useNavigate, e as useSearchParams, c as Link, w as withComponentProps, H as useParams } from "./index-Q81MFBxC.js";
2
- import { C as Check, a as Copy, d as CircleAlert, U as parseStepName, G as parseWorkflowName, V as ErrorCard, Y as format, Z as Zap, S as Send, R as ResolveHookModal, t as ChevronUp, X, Q as ErrorBoundary, _ as Circle, u as unwrapOrThrow, W as WorkflowWebAPIError, K as unwrapServerActionResult, $ as useEscapeKeydown, w as composeEventHandlers, a0 as useCallbackRef, a1 as useLayoutEffect2, v as useControllableState, a2 as useId, a3 as createContext2, x as Presence, z as createContextScope, p as hideOthers, q as ReactRemoveScroll, a4 as useFocusGuards, a5 as LAYOUT, a6 as wakeUpRun, n as resumeHook, A as Alert, e as AlertTitle, g as getErrorTitle, h as AlertDescription, i as getErrorMessage, b as Skeleton$1, a7 as RunActionsButtons, H as StatusBadge, j as CopyableText, c as RelativeTime, T as Tabs, M as TabsList, N as TabsTrigger, O as TabsContent, B as cancelRun, a8 as recreateRun } from "./workflow-graph-viewer-DQf8ZZM2.js";
3
- import { c as createLucideIcon, W as cn, X as DataInspector, Y as DecryptClickContext, Z as Button, $ as Spinner, a0 as Lock, a1 as CollapsibleRoot, a2 as CollapsibleTrigger, a3 as CollapsibleContent, M as cva, a4 as RESERVED_ATTRIBUTE_KEY_PREFIX, a5 as ContextCardProvider, h as useToast, a6 as Skeleton, a7 as Yr, a8 as isEncryptedMarker, C as ChevronRight, a9 as TimestampTooltip, aa as formatDuration, ab as isHookLifecycleEventType, ac as isTerminalStepEventType, ad as isWaitEventType, ae as isStepEventType, af as _r, ag as RunClickContext, ah as StreamClickContext, ai as Collapsible, aj as isExpiredMarker, ak as isDoStreamStep, al as extractConversation, am as getEventDataRefFields, an as hasEncryptedFields, ao as useSidebarDataOptional, ap as isTerminalWorkflowRunStatus, aq as clsx, ar as useActiveSpan, as as useSidebarData, at as Tooltip, au as TooltipTrigger, av as IconButton, aw as TooltipContent, H as ChevronDown, ax as useRowWindow, ay as isSpanDimmedBySearch, az as ROW_HEIGHT_PX, aA as getSpanDurationMs, aB as isSpanErrored, aC as formatDurationPrecise, aD as TooltipProvider, aE as ActiveSpanProvider, aF as useReducedMotion, aG as searchSpans, aH as computeRootBounds, aI as computeTimeMarkers, aJ as clampViewportToRoot, aK as getHighResInMs, aL as scrollRowIntoView, aM as TIMELINE_PADDING_PX, aN as Minimap, aO as Timeline, aP as TimelineHeader, aQ as wheelZoomScaleFactor, aR as wheelDeltaToPixels, aS as SidebarDataProvider, aT as fetchHook, l as fetchEvents, aU as hydrateResourceIOAsync, J as fetchRun, aV as fetchStep, aW as hydrateResourceIO, aX as fetchStreams, aY as Slot, I as useComposedRefs, aZ as Slottable, e as cn$1, a_ as buttonVariants, a$ as fetchEvent, b0 as fetchEventsByCorrelationId, b1 as isEncryptedData, b2 as hydrateData, b3 as getWebRevivers, T as Tooltip$1, a as TooltipTrigger$1, b as TooltipContent$1, b4 as LIVE_UPDATE_INTERVAL_MS$1, u as useServerConfig, b5 as getEncryptionKeyForRun, t as toast, L as LoaderCircle, b6 as StreamViewer } from "./mermaid-3ZIDBTTL-CnDvMd8R.js";
4
- import { A as ArrowUpRight } from "./arrow-up-right-qJMh7AD6.js";
2
+ import { C as Check, a as Copy, d as CircleAlert, U as parseStepName, G as parseWorkflowName, V as ErrorCard, Y as format, Z as Zap, S as Send, R as ResolveHookModal, t as ChevronUp, X, Q as ErrorBoundary, _ as Circle, u as unwrapOrThrow, W as WorkflowWebAPIError, K as unwrapServerActionResult, $ as useEscapeKeydown, w as composeEventHandlers, a0 as useCallbackRef, a1 as useLayoutEffect2, v as useControllableState, a2 as useId, a3 as createContext2, x as Presence, z as createContextScope, p as hideOthers, q as ReactRemoveScroll, a4 as useFocusGuards, a5 as LAYOUT, a6 as wakeUpRun, n as resumeHook, A as Alert, e as AlertTitle, g as getErrorTitle, h as AlertDescription, i as getErrorMessage, b as Skeleton$1, a7 as RunActionsButtons, H as StatusBadge, j as CopyableText, c as RelativeTime, T as Tabs, M as TabsList, N as TabsTrigger, O as TabsContent, B as cancelRun, a8 as recreateRun } from "./workflow-graph-viewer-DpvUticH.js";
3
+ import { c as createLucideIcon, W as cn, X as DataInspector, Y as DecryptClickContext, Z as Button, $ as Spinner, a0 as Lock, a1 as CollapsibleRoot, a2 as CollapsibleTrigger, a3 as CollapsibleContent, M as cva, a4 as RESERVED_ATTRIBUTE_KEY_PREFIX, a5 as ContextCardProvider, h as useToast, a6 as Skeleton, a7 as Yr, a8 as isEncryptedMarker, C as ChevronRight, a9 as TimestampTooltip, aa as formatDuration, ab as isHookLifecycleEventType, ac as isTerminalStepEventType, ad as isWaitEventType, ae as isStepEventType, af as _r, ag as RunClickContext, ah as StreamClickContext, ai as Collapsible, aj as isExpiredMarker, ak as isDoStreamStep, al as extractConversation, am as getEventDataRefFields, an as hasEncryptedFields, ao as useSidebarDataOptional, ap as isTerminalWorkflowRunStatus, aq as clsx, ar as useActiveSpan, as as useSidebarData, at as Tooltip, au as TooltipTrigger, av as IconButton, aw as TooltipContent, H as ChevronDown, ax as useRowWindow, ay as isSpanDimmedBySearch, az as ROW_HEIGHT_PX, aA as getSpanDurationMs, aB as isSpanErrored, aC as formatDurationPrecise, aD as TooltipProvider, aE as ActiveSpanProvider, aF as useReducedMotion, aG as searchSpans, aH as computeRootBounds, aI as computeTimeMarkers, aJ as clampViewportToRoot, aK as getHighResInMs, aL as scrollRowIntoView, aM as TIMELINE_PADDING_PX, aN as Minimap, aO as Timeline, aP as TimelineHeader, aQ as wheelZoomScaleFactor, aR as wheelDeltaToPixels, aS as SidebarDataProvider, aT as fetchHook, l as fetchEvents, aU as hydrateResourceIOAsync, J as fetchRun, aV as fetchStep, aW as hydrateResourceIO, aX as fetchStreams, aY as Slot, I as useComposedRefs, aZ as Slottable, e as cn$1, a_ as buttonVariants, a$ as fetchEvent, b0 as fetchEventsByCorrelationId, b1 as isEncryptedData, b2 as hydrateData, b3 as getWebRevivers, T as Tooltip$1, a as TooltipTrigger$1, b as TooltipContent$1, b4 as LIVE_UPDATE_INTERVAL_MS$1, u as useServerConfig, b5 as getEncryptionKeyForRun, t as toast, L as LoaderCircle, b6 as StreamViewer } from "./mermaid-3ZIDBTTL-BxUZpfmG.js";
4
+ import { A as ArrowUpRight } from "./arrow-up-right-UTJqZa58.js";
5
5
  import { decrypt, importKey } from "./encryption-CLVP4klT.js";
6
6
  import "./index-STTN0-2V.js";
7
7
  /**
@@ -1,7 +1,7 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
3
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
- import { c as createLucideIcon, H as ChevronDown, W as cn, e as cn$1, M as cva, b7 as composeRefs, I as useComposedRefs, b8 as useFloating, b9 as offset, ba as shift, bb as limitShift, bc as flip, bd as size, be as arrow, bf as hide, bg as autoUpdate, C as ChevronRight, bh as cancelRun$1, bi as reenqueueRun$1, bj as wakeUpRun$1, bk as resumeHook$1, bl as fetchHookToken$1, bm as recreateRun$1, T as Tooltip, a as TooltipTrigger, b as TooltipContent, x as createContextScope$1, n as useComposedRefs$1, y as createSlot, aa as formatDuration, B as Button, t as toast, s as useId$1, P as Primitive$1, o as composeEventHandlers$1, E as useControllableState$1, m as useCallbackRef$2, N as Presence$1 } from "./mermaid-3ZIDBTTL-CnDvMd8R.js";
4
+ import { c as createLucideIcon, H as ChevronDown, W as cn, e as cn$1, M as cva, b7 as composeRefs, I as useComposedRefs, b8 as useFloating, b9 as offset, ba as shift, bb as limitShift, bc as flip, bd as size, be as arrow, bf as hide, bg as autoUpdate, C as ChevronRight, bh as cancelRun$1, bi as reenqueueRun$1, bj as wakeUpRun$1, bk as resumeHook$1, bl as fetchHookToken$1, bm as recreateRun$1, T as Tooltip, a as TooltipTrigger, b as TooltipContent, x as createContextScope$1, n as useComposedRefs$1, y as createSlot, aa as formatDuration, B as Button, t as toast, s as useId$1, P as Primitive$1, o as composeEventHandlers$1, E as useControllableState$1, m as useCallbackRef$2, N as Presence$1 } from "./mermaid-3ZIDBTTL-BxUZpfmG.js";
5
5
  import { r as reactExports, j as jsxRuntimeExports, p as reactDomExports, R as ReactExports, I as React, G as ReactDOM, f as requireReact, g as getDefaultExportFromCjs } from "./index-Q81MFBxC.js";
6
6
  import { V as VERCEL_403_ERROR_MESSAGE } from "./index-STTN0-2V.js";
7
7
  function parseName(tag, name) {
@@ -1,4 +1,4 @@
1
- import { r as registerZstdDecoder, _ as __vitePreload } from "./mermaid-3ZIDBTTL-CnDvMd8R.js";
1
+ import { r as registerZstdDecoder, _ as __vitePreload } from "./mermaid-3ZIDBTTL-BxUZpfmG.js";
2
2
  import "./index-Q81MFBxC.js";
3
3
  let registered = false;
4
4
  let modulePromise;
@@ -9180,7 +9180,7 @@ const app = express();
9180
9180
  app.all(
9181
9181
  "/{*splat}",
9182
9182
  createRequestHandler({
9183
- build: () => import("./server-build-CRXCLKDJ.js").then((n) => n.aB)
9183
+ build: () => import("./server-build-GYVyEwoy.js").then((n) => n.aB)
9184
9184
  })
9185
9185
  );
9186
9186
  app.use(
@@ -2,8 +2,8 @@ import { createRequire as __wkfCreateRequire } from "node:module";
2
2
  if (typeof require === "undefined") {
3
3
  globalThis.require = __wkfCreateRequire(import.meta.url);
4
4
  }
5
- import { au as R, av as Ks, aw as jsxRuntimeExports, ax as Qe } from "./server-build-CRXCLKDJ.js";
6
- import { r as reactExports } from "./app-CVZBwwJu.js";
5
+ import { au as R, av as Ks, aw as jsxRuntimeExports, ax as Qe } from "./server-build-GYVyEwoy.js";
6
+ import { r as reactExports } from "./app-TShfJF1A.js";
7
7
  import "node:stream";
8
8
  import "util";
9
9
  import "crypto";
@@ -2,9 +2,9 @@ import { createRequire as __wkfCreateRequire } from "node:module";
2
2
  if (typeof require === "undefined") {
3
3
  globalThis.require = __wkfCreateRequire(import.meta.url);
4
4
  }
5
- import { H as HookSchema } from "./server-build-CRXCLKDJ.js";
6
- import { A, a, b, c, d, e, f, g, h, i, j, B, C, D, k, E, l, m, n, o, p, q, r, L, M, P, Q, s, R, t, S, u, v, w, x, y, z, F, G, I, T, J, K, O, U, V, W, X, Y, Z, _, $, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at } from "./server-build-CRXCLKDJ.js";
7
- import "./app-CVZBwwJu.js";
5
+ import { H as HookSchema } from "./server-build-GYVyEwoy.js";
6
+ import { A, a, b, c, d, e, f, g, h, i, j, B, C, D, k, E, l, m, n, o, p, q, r, L, M, P, Q, s, R, t, S, u, v, w, x, y, z, F, G, I, T, J, K, O, U, V, W, X, Y, Z, _, $, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at } from "./server-build-GYVyEwoy.js";
7
+ import "./app-TShfJF1A.js";
8
8
  import "stream";
9
9
  import "express";
10
10
  import "node:stream";
@@ -2,8 +2,8 @@ import { createRequire as __wkfCreateRequire } from "node:module";
2
2
  if (typeof require === "undefined") {
3
3
  globalThis.require = __wkfCreateRequire(import.meta.url);
4
4
  }
5
- import { N as Nt } from "./server-build-CRXCLKDJ.js";
6
- import "./app-CVZBwwJu.js";
5
+ import { N as Nt } from "./server-build-GYVyEwoy.js";
6
+ import "./app-TShfJF1A.js";
7
7
  import "stream";
8
8
  import "express";
9
9
  import "node:stream";
@@ -18,7 +18,7 @@ import { createRequire as __wkfCreateRequire } from "node:module";
18
18
  if (typeof require === "undefined") {
19
19
  globalThis.require = __wkfCreateRequire(import.meta.url);
20
20
  }
21
- import { a as requireReact, S as ServerRouter, c as createReadableStreamFromReadable, r as reactExports, g as getDefaultExportFromCjs, R as React, b as ReactExports, w as withComponentProps, d as withErrorBoundaryProps, M as Meta, L as Links, e as ScrollRestoration, f as Scripts, O as Outlet, u as useNavigate, h as useSearchParams, i as Link$1, j as useRouteError, k as isRouteErrorResponse, l as useLocation, m as useParams } from "./app-CVZBwwJu.js";
21
+ import { a as requireReact, S as ServerRouter, c as createReadableStreamFromReadable, r as reactExports, g as getDefaultExportFromCjs, R as React, b as ReactExports, w as withComponentProps, d as withErrorBoundaryProps, M as Meta, L as Links, e as ScrollRestoration, f as Scripts, O as Outlet, u as useNavigate, h as useSearchParams, i as Link$1, j as useRouteError, k as isRouteErrorResponse, l as useLocation, m as useParams } from "./app-TShfJF1A.js";
22
22
  import require$$0$4, { PassThrough } from "node:stream";
23
23
  import require$$0 from "util";
24
24
  import require$$1 from "crypto";
@@ -48345,7 +48345,7 @@ const WorkflowRunBaseSchema = object$1({
48345
48345
  errorCode: string$3().optional(),
48346
48346
  /**
48347
48347
  * Plaintext string-string metadata attached to the run via
48348
- * `experimental_setAttributes()` (or, in the future, materialized
48348
+ * `setAttributes()` (or, in the future, materialized
48349
48349
  * from `attr_set` events). Stored unencrypted alongside other
48350
48350
  * plaintext fields so observability surfaces can read it without
48351
48351
  * going through the decryption pipeline.
@@ -48673,7 +48673,8 @@ const QueuePayloadSchema = union([
48673
48673
  StepInvokePayloadSchema,
48674
48674
  HealthCheckPayloadSchema
48675
48675
  ]);
48676
- async function reenqueueActiveRuns(runs, enqueue, label) {
48676
+ async function reenqueueActiveRuns(runs, enqueue, label, namespace2) {
48677
+ const workflowQueuePrefix = getQueueTopicPrefix("workflow", resolveQueueNamespace(namespace2));
48677
48678
  let reenqueued = 0;
48678
48679
  for (const status of ["pending", "running"]) {
48679
48680
  let cursor;
@@ -48686,7 +48687,7 @@ async function reenqueueActiveRuns(runs, enqueue, label) {
48686
48687
  });
48687
48688
  for (const run2 of page.data) {
48688
48689
  try {
48689
- const queueName = `__wkf_workflow_${run2.workflowName}`;
48690
+ const queueName = `${workflowQueuePrefix}${run2.workflowName}`;
48690
48691
  await enqueue(queueName, { runId: run2.runId });
48691
48692
  reenqueued++;
48692
48693
  } catch (err) {
@@ -50142,7 +50143,7 @@ function replaceEncryptedAndExpiredWithMarkers(resource) {
50142
50143
  }
50143
50144
  async function hydrateResourceIOAsync(resource, key) {
50144
50145
  const { hydrateDataWithKey: hydrateDataWithKey2 } = await Promise.resolve().then(() => serializationFormat);
50145
- const { ensureZstdDecoderRegistered } = await import("./zstd-browser-decoder-BgFuN9zt.js");
50146
+ const { ensureZstdDecoderRegistered } = await import("./zstd-browser-decoder-DmzLFSRd.js");
50146
50147
  ensureZstdDecoderRegistered();
50147
50148
  const cryptoKey = key ? await Promise.resolve().then(() => encryption).then(({ importKey: importKey2 }) => importKey2(key)) : void 0;
50148
50149
  const revivers = getRevivers();
@@ -83107,7 +83108,7 @@ var tn = f("block", "before:content-[counter(line)]", "before:inline-block", "be
83107
83108
  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 });
83108
83109
  var Se = reactExports.createContext({ code: "" }), de = () => reactExports.useContext(Se);
83109
83110
  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 }) });
83110
- var cn$1 = /\n+$/, dn = reactExports.lazy(() => import("./highlighted-body-B3W2YXNL-DU9e_6JW.js").then((e) => ({ default: e.HighlightedCodeBlockBody }))), rt = ({ code: e, language: t, className: o, children: n, isIncomplete: s2 = false, ...r2 }) => {
83111
+ var cn$1 = /\n+$/, dn = reactExports.lazy(() => import("./highlighted-body-B3W2YXNL-Cn3Ldhfl.js").then((e) => ({ default: e.HighlightedCodeBlockBody }))), rt = ({ code: e, language: t, className: o, children: n, isIncomplete: s2 = false, ...r2 }) => {
83111
83112
  let i = reactExports.useMemo(() => e.replace(cn$1, ""), [e]), c = reactExports.useMemo(() => ({ bg: "transparent", fg: "inherit", tokens: i.split(`
83112
83113
  `).map((a2) => [{ content: a2, color: "inherit", bgColor: "transparent", htmlStyle: {}, offset: 0 }]) }), [i]);
83113
83114
  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 }) })] }) });
@@ -83429,7 +83430,7 @@ var Dt = ({ children: e, className: t, onDownload: o, onError: n }) => {
83429
83430
  }, []), jsxRuntimeExports.jsxs("div", { className: "relative", ref: i, children: [jsxRuntimeExports.jsx("button", { className: f("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50", t), disabled: c, onClick: () => r2(!s2), title: "Download table", type: "button", children: e != null ? e : jsxRuntimeExports.jsx(Z, { size: 14 }) }), s2 ? jsxRuntimeExports.jsxs("div", { className: "absolute top-full right-0 z-10 mt-1 min-w-[120px] overflow-hidden rounded-md border border-border bg-background shadow-lg", children: [jsxRuntimeExports.jsx("button", { className: "w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40", onClick: () => a2("csv"), title: "Download table as CSV", type: "button", children: "CSV" }), jsxRuntimeExports.jsx("button", { className: "w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40", onClick: () => a2("markdown"), title: "Download table as Markdown", type: "button", children: "Markdown" })] }) : null] });
83430
83431
  };
83431
83432
  var Vt = ({ children: e, className: t, showControls: o, ...n }) => jsxRuntimeExports.jsxs("div", { className: "my-4 flex flex-col gap-2 rounded-lg border border-border bg-sidebar p-2", "data-streamdown": "table-wrapper", children: [o ? jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-end gap-1", children: [jsxRuntimeExports.jsx(Ht, {}), jsxRuntimeExports.jsx(Dt, {})] }) : null, jsxRuntimeExports.jsx("div", { className: "border-collapse overflow-x-auto overscroll-y-auto rounded-md border border-border bg-background", children: jsxRuntimeExports.jsx("table", { className: f("w-full divide-y divide-border", t), "data-streamdown": "table", ...n, children: e }) })] });
83432
- var Jn = reactExports.lazy(() => import("./mermaid-3ZIDBTTL-DgV-PzsY.js").then((e) => ({ default: e.Mermaid }))), Kn = /language-([^\s]+)/;
83433
+ var Jn = reactExports.lazy(() => import("./mermaid-3ZIDBTTL-Conbg-cC.js").then((e) => ({ default: e.Mermaid }))), Kn = /language-([^\s]+)/;
83433
83434
  function ke(e, t) {
83434
83435
  if (!(e != null && e.position || t != null && t.position)) return true;
83435
83436
  if (!(e != null && e.position && (t != null && t.position))) return false;
@@ -91964,7 +91965,7 @@ const encryption = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePr
91964
91965
  encrypt: encrypt$1,
91965
91966
  importKey
91966
91967
  }, Symbol.toStringTag, { value: "Module" }));
91967
- const version$1 = "5.0.0-beta.30";
91968
+ const version$1 = "5.0.0-beta.32";
91968
91969
  function assertWorldSupportsRuntimeProtocol(world) {
91969
91970
  if (world.specVersion === SPEC_VERSION_CURRENT) {
91970
91971
  return;
@@ -93634,6 +93635,21 @@ const STREAM_FLUSH_INTERVAL_MS = 10;
93634
93635
  const getStreamFlushIntervalMs = () => envNumber("WORKFLOW_STREAM_FLUSH_INTERVAL_MS", STREAM_FLUSH_INTERVAL_MS, {
93635
93636
  integer: true
93636
93637
  });
93638
+ function recordStreamWriteFlush(startEpochMs, dispatchEpochMs, runId, name2, chunkCount, byteCount) {
93639
+ void (async () => {
93640
+ await recordElapsedSpan("workflow.stream.flush", startEpochMs, {
93641
+ kind: await getSpanKind$2("CLIENT"),
93642
+ attributes: {
93643
+ "workflow.run.id": runId,
93644
+ "workflow.stream.name": name2,
93645
+ "workflow.stream.operation": "flush",
93646
+ "workflow.stream.flush.buffer_dwell_ms": dispatchEpochMs - startEpochMs,
93647
+ "workflow.stream.flush.chunks": chunkCount,
93648
+ "workflow.stream.flush.bytes": byteCount
93649
+ }
93650
+ });
93651
+ })();
93652
+ }
93637
93653
  class WorkflowServerWritableStream extends WritableStream {
93638
93654
  /**
93639
93655
  * @param runReadyBarrier Turbo mode only: a promise that resolves once the
@@ -93666,6 +93682,7 @@ class WorkflowServerWritableStream extends WritableStream {
93666
93682
  let flushTimer = null;
93667
93683
  let flushPromise = null;
93668
93684
  let resolvedFlushIntervalMs;
93685
+ let batchStartAt;
93669
93686
  const flush = async () => {
93670
93687
  if (flushTimer) {
93671
93688
  clearTimeout(flushTimer);
@@ -93675,16 +93692,29 @@ class WorkflowServerWritableStream extends WritableStream {
93675
93692
  return;
93676
93693
  await ensureRunReady();
93677
93694
  const chunksToFlush = buffer2.slice();
93695
+ const batchStart = batchStartAt;
93696
+ batchStartAt = void 0;
93697
+ const dispatchAt = Date.now();
93678
93698
  const world = await worldPromise;
93679
93699
  if (resolvedFlushIntervalMs === void 0) {
93680
93700
  resolvedFlushIntervalMs = world.streamFlushIntervalMs ?? getStreamFlushIntervalMs();
93681
93701
  }
93682
- if (typeof world.streams.writeMulti === "function" && chunksToFlush.length > 1) {
93683
- await world.streams.writeMulti(runId, name2, chunksToFlush);
93684
- } else {
93685
- for (const chunk of chunksToFlush) {
93686
- await world.streams.write(runId, name2, chunk);
93702
+ try {
93703
+ if (typeof world.streams.writeMulti === "function" && chunksToFlush.length > 1) {
93704
+ await world.streams.writeMulti(runId, name2, chunksToFlush);
93705
+ } else {
93706
+ for (const chunk of chunksToFlush) {
93707
+ await world.streams.write(runId, name2, chunk);
93708
+ }
93709
+ }
93710
+ } catch (error2) {
93711
+ if (batchStart !== void 0) {
93712
+ batchStartAt = batchStartAt === void 0 ? batchStart : Math.min(batchStartAt, batchStart);
93687
93713
  }
93714
+ throw error2;
93715
+ }
93716
+ if (batchStart !== void 0) {
93717
+ recordStreamWriteFlush(batchStart, dispatchAt, runId, name2, chunksToFlush.length, chunksToFlush.reduce((sum, c) => sum + c.byteLength, 0));
93688
93718
  }
93689
93719
  buffer2 = [];
93690
93720
  };
@@ -93707,6 +93737,8 @@ class WorkflowServerWritableStream extends WritableStream {
93707
93737
  };
93708
93738
  super({
93709
93739
  async write(chunk) {
93740
+ if (batchStartAt === void 0)
93741
+ batchStartAt = Date.now();
93710
93742
  if (flushPromise) {
93711
93743
  await flushPromise;
93712
93744
  flushPromise = null;
@@ -97568,7 +97600,7 @@ const resumeHook$3 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.define
97568
97600
  }, Symbol.toStringTag, { value: "Module" }));
97569
97601
  function normalizeAttributeChanges(attrs, options = {}) {
97570
97602
  if (attrs === null || typeof attrs !== "object" || Array.isArray(attrs)) {
97571
- throw new FatalError(`experimental_setAttributes requires a plain object, got ${attrs === null ? "null" : Array.isArray(attrs) ? "array" : typeof attrs}`);
97603
+ throw new FatalError(`setAttributes requires a plain object, got ${attrs === null ? "null" : Array.isArray(attrs) ? "array" : typeof attrs}`);
97572
97604
  }
97573
97605
  const changes = Object.entries(attrs).map(([key, value]) => ({
97574
97606
  key,
@@ -127037,7 +127069,7 @@ function createWorld$1(args) {
127037
127069
  const basedir = mergedConfig.dataDir;
127038
127070
  const hooksDir = path$3.join(basedir, "hooks");
127039
127071
  const taggedHookFiles = await listTaggedFiles(hooksDir, tag);
127040
- const { HookSchema: HookSchema2 } = await import("./index-CtG82ntm.js");
127072
+ const { HookSchema: HookSchema2 } = await import("./index-BuK37-uW.js");
127041
127073
  await Promise.all(taggedHookFiles.map(async (hookFile) => {
127042
127074
  const hook = await readJSON(path$3.join(hooksDir, hookFile), HookSchema2);
127043
127075
  if (hook == null ? void 0 : hook.token) {
@@ -127220,8 +127252,8 @@ function requireGetVercelOidcToken() {
127220
127252
  }
127221
127253
  try {
127222
127254
  const [{ getTokenPayload, isExpired }, { refreshToken }] = await Promise.all([
127223
- await import("./token-util-C0zuFOay.js").then((n) => n.t),
127224
- await import("./token-bLcjz8Va.js").then((n) => n.t)
127255
+ await import("./token-util-B_XNC39V.js").then((n) => n.t),
127256
+ await import("./token-B0_1Gw9R.js").then((n) => n.t)
127225
127257
  ]);
127226
127258
  if (!token || isExpired(getTokenPayload(token), options == null ? void 0 : options.expirationBufferMs)) {
127227
127259
  await refreshToken(options);
@@ -127848,7 +127880,12 @@ function getDefaultStreamDispatcher() {
127848
127880
  let otelApiPromise$1 = null;
127849
127881
  async function getOtelApi$1() {
127850
127882
  if (!otelApiPromise$1) {
127851
- otelApiPromise$1 = import("./index-Dq5jTBN4.js").catch(() => null);
127883
+ otelApiPromise$1 = import("./index-Dq5jTBN4.js").catch((error2) => {
127884
+ if (typeof process !== "undefined" && typeof process.env.DEBUG === "string" && (process.env.DEBUG.includes("workflow:") || process.env.DEBUG === "*")) {
127885
+ console.warn("[workflow] @opentelemetry/api unavailable — world-vercel spans disabled:", error2 instanceof Error ? error2.message : error2);
127886
+ }
127887
+ return null;
127888
+ });
127852
127889
  }
127853
127890
  return otelApiPromise$1;
127854
127891
  }
@@ -128069,7 +128106,7 @@ async function instrumentedFetch(opts) {
128069
128106
  return response2;
128070
128107
  });
128071
128108
  }
128072
- const version = "5.0.0-beta.26";
128109
+ const version = "5.0.0-beta.28";
128073
128110
  const IDEMPOTENT_METHODS = /* @__PURE__ */ new Set(["GET", "HEAD"]);
128074
128111
  const MAX_BODY_PARSE_RETRIES = 2;
128075
128112
  const BODY_PARSE_RETRY_BASE_MS = 100;
@@ -158059,7 +158096,7 @@ const route4 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProper
158059
158096
  __proto__: null,
158060
158097
  loader
158061
158098
  }, Symbol.toStringTag, { value: "Module" }));
158062
- const serverManifest = { "entry": { "module": "/assets/entry.client-Q4eUIqMI.js", "imports": ["/assets/index-Q81MFBxC.js"], "css": [] }, "routes": { "root": { "id": "root", "parentId": void 0, "path": "", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasDefaultExport": true, "hasErrorBoundary": true, "module": "/assets/root-C7ElgjAN.js", "imports": ["/assets/index-Q81MFBxC.js", "/assets/mermaid-3ZIDBTTL-CnDvMd8R.js", "/assets/arrow-up-right-qJMh7AD6.js"], "css": ["/assets/root-CQggqXow.css", "/assets/mermaid-3ZIDBTTL-DDxQhcP4.css"], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/home": { "id": "routes/home", "parentId": "root", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasDefaultExport": true, "hasErrorBoundary": false, "module": "/assets/home-VRVjXSQY.js", "imports": ["/assets/index-Q81MFBxC.js", "/assets/workflow-graph-viewer-DQf8ZZM2.js", "/assets/mermaid-3ZIDBTTL-CnDvMd8R.js", "/assets/index-STTN0-2V.js"], "css": ["/assets/workflow-graph-viewer-DnlNuQQH.css", "/assets/mermaid-3ZIDBTTL-DDxQhcP4.css"], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/run-detail": { "id": "routes/run-detail", "parentId": "root", "path": "run/:runId", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasDefaultExport": true, "hasErrorBoundary": false, "module": "/assets/run-detail-CmptzMYo.js", "imports": ["/assets/index-Q81MFBxC.js", "/assets/workflow-graph-viewer-DQf8ZZM2.js", "/assets/mermaid-3ZIDBTTL-CnDvMd8R.js", "/assets/arrow-up-right-qJMh7AD6.js", "/assets/encryption-CLVP4klT.js", "/assets/index-STTN0-2V.js"], "css": ["/assets/run-detail-CWoGxu_0.css", "/assets/workflow-graph-viewer-DnlNuQQH.css", "/assets/mermaid-3ZIDBTTL-DDxQhcP4.css"], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/api.rpc": { "id": "routes/api.rpc", "parentId": "root", "path": "api/rpc", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasDefaultExport": false, "hasErrorBoundary": false, "module": "/assets/api.rpc-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/api.stream.$streamId": { "id": "routes/api.stream.$streamId", "parentId": "root", "path": "api/stream/:streamId", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasDefaultExport": false, "hasErrorBoundary": false, "module": "/assets/api.stream._streamId-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 } }, "url": "/assets/manifest-479fb7d3.js", "version": "479fb7d3", "sri": void 0 };
158099
+ const serverManifest = { "entry": { "module": "/assets/entry.client-Q4eUIqMI.js", "imports": ["/assets/index-Q81MFBxC.js"], "css": [] }, "routes": { "root": { "id": "root", "parentId": void 0, "path": "", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasDefaultExport": true, "hasErrorBoundary": true, "module": "/assets/root-mjlqO83r.js", "imports": ["/assets/index-Q81MFBxC.js", "/assets/mermaid-3ZIDBTTL-BxUZpfmG.js", "/assets/arrow-up-right-UTJqZa58.js"], "css": ["/assets/root-CQggqXow.css", "/assets/mermaid-3ZIDBTTL-DDxQhcP4.css"], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/home": { "id": "routes/home", "parentId": "root", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasDefaultExport": true, "hasErrorBoundary": false, "module": "/assets/home-1xisMAzt.js", "imports": ["/assets/index-Q81MFBxC.js", "/assets/workflow-graph-viewer-DpvUticH.js", "/assets/mermaid-3ZIDBTTL-BxUZpfmG.js", "/assets/index-STTN0-2V.js"], "css": ["/assets/workflow-graph-viewer-DnlNuQQH.css", "/assets/mermaid-3ZIDBTTL-DDxQhcP4.css"], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/run-detail": { "id": "routes/run-detail", "parentId": "root", "path": "run/:runId", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasDefaultExport": true, "hasErrorBoundary": false, "module": "/assets/run-detail-ysogMwZA.js", "imports": ["/assets/index-Q81MFBxC.js", "/assets/workflow-graph-viewer-DpvUticH.js", "/assets/mermaid-3ZIDBTTL-BxUZpfmG.js", "/assets/arrow-up-right-UTJqZa58.js", "/assets/encryption-CLVP4klT.js", "/assets/index-STTN0-2V.js"], "css": ["/assets/run-detail-CWoGxu_0.css", "/assets/workflow-graph-viewer-DnlNuQQH.css", "/assets/mermaid-3ZIDBTTL-DDxQhcP4.css"], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/api.rpc": { "id": "routes/api.rpc", "parentId": "root", "path": "api/rpc", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasDefaultExport": false, "hasErrorBoundary": false, "module": "/assets/api.rpc-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 }, "routes/api.stream.$streamId": { "id": "routes/api.stream.$streamId", "parentId": "root", "path": "api/stream/:streamId", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasClientMiddleware": false, "hasDefaultExport": false, "hasErrorBoundary": false, "module": "/assets/api.stream._streamId-l0sNRNKZ.js", "imports": [], "css": [], "clientActionModule": void 0, "clientLoaderModule": void 0, "clientMiddlewareModule": void 0, "hydrateFallbackModule": void 0 } }, "url": "/assets/manifest-37d4814f.js", "version": "37d4814f", "sri": void 0 };
158063
158100
  const assetsBuildDirectory = "build/client";
158064
158101
  const basename = "/";
158065
158102
  const future = { "unstable_optimizeDeps": false, "unstable_subResourceIntegrity": false, "unstable_trailingSlashAwareDataRequests": false, "unstable_previewServerPrerendering": false, "v8_middleware": false, "v8_splitRouteModules": false, "v8_viteEnvironmentApi": false };
@@ -2,8 +2,8 @@ import { createRequire as __wkfCreateRequire } from "node:module";
2
2
  if (typeof require === "undefined") {
3
3
  globalThis.require = __wkfCreateRequire(import.meta.url);
4
4
  }
5
- import { g as getDefaultExportFromCjs } from "./app-CVZBwwJu.js";
6
- import { aA as requireTokenError, az as requireTokenUtil } from "./server-build-CRXCLKDJ.js";
5
+ import { g as getDefaultExportFromCjs } from "./app-TShfJF1A.js";
6
+ import { aA as requireTokenError, az as requireTokenUtil } from "./server-build-GYVyEwoy.js";
7
7
  function _mergeNamespaces(n, m) {
8
8
  for (var i = 0; i < m.length; i++) {
9
9
  const e = m[i];
@@ -2,8 +2,8 @@ import { createRequire as __wkfCreateRequire } from "node:module";
2
2
  if (typeof require === "undefined") {
3
3
  globalThis.require = __wkfCreateRequire(import.meta.url);
4
4
  }
5
- import { g as getDefaultExportFromCjs } from "./app-CVZBwwJu.js";
6
- import { az as requireTokenUtil } from "./server-build-CRXCLKDJ.js";
5
+ import { g as getDefaultExportFromCjs } from "./app-TShfJF1A.js";
6
+ import { az as requireTokenUtil } from "./server-build-GYVyEwoy.js";
7
7
  function _mergeNamespaces(n, m) {
8
8
  for (var i = 0; i < m.length; i++) {
9
9
  const e = m[i];
@@ -2,8 +2,8 @@ import { createRequire as __wkfCreateRequire } from "node:module";
2
2
  if (typeof require === "undefined") {
3
3
  globalThis.require = __wkfCreateRequire(import.meta.url);
4
4
  }
5
- import { ay as registerZstdDecoder } from "./server-build-CRXCLKDJ.js";
6
- import "./app-CVZBwwJu.js";
5
+ import { ay as registerZstdDecoder } from "./server-build-GYVyEwoy.js";
6
+ import "./app-TShfJF1A.js";
7
7
  import "stream";
8
8
  import "express";
9
9
  import "node:stream";
@@ -2,7 +2,7 @@ import { createRequire as __wkfCreateRequire } from "node:module";
2
2
  if (typeof require === "undefined") {
3
3
  globalThis.require = __wkfCreateRequire(import.meta.url);
4
4
  }
5
- import { n } from "./assets/app-CVZBwwJu.js";
5
+ import { n } from "./assets/app-TShfJF1A.js";
6
6
  import "express";
7
7
  import "stream";
8
8
  export {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@workflow/web",
3
3
  "description": "Workflow Observability UI",
4
- "version": "5.0.0-beta.30",
4
+ "version": "5.0.0-beta.32",
5
5
  "type": "module",
6
6
  "private": false,
7
7
  "files": [
@@ -29,7 +29,7 @@
29
29
  "dependencies": {
30
30
  "express": "^5.2.1",
31
31
  "swr": "^2.3.6",
32
- "@workflow/world-local": "5.0.0-beta.26"
32
+ "@workflow/world-local": "5.0.0-beta.27"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@biomejs/biome": "^2.4.4",
@@ -74,12 +74,12 @@
74
74
  "typescript": "^6.0.3",
75
75
  "vite": "^6",
76
76
  "vitest": "^3",
77
- "@workflow/core": "5.0.0-beta.30",
77
+ "@workflow/core": "5.0.0-beta.32",
78
78
  "@workflow/errors": "5.0.0-beta.10",
79
79
  "@workflow/utils": "5.0.0-beta.6",
80
- "@workflow/web-shared": "5.0.0-beta.30",
81
- "@workflow/world": "5.0.0-beta.18",
82
- "@workflow/world-vercel": "5.0.0-beta.26"
80
+ "@workflow/web-shared": "5.0.0-beta.32",
81
+ "@workflow/world": "5.0.0-beta.19",
82
+ "@workflow/world-vercel": "5.0.0-beta.28"
83
83
  },
84
84
  "scripts": {
85
85
  "dev": "react-router dev",