@workflow/web 5.0.0-beta.5 → 5.0.0-beta.6
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-CEh0YXii.js → encryption-DU49MAQV.js} +1 -1
- package/build/client/assets/{highlighted-body-B3W2YXNL-L1CrwoL_.js → highlighted-body-B3W2YXNL-BZLzBNxn.js} +1 -1
- package/build/client/assets/{home-B6UmDDP6.js → home-DmK2qlF4.js} +3 -3
- package/build/client/assets/{index-B4xuge0I.js → index-Byi8AWfe.js} +31 -0
- package/build/client/assets/{manifest-e4c1c787.js → manifest-f8f46e3c.js} +1 -1
- package/build/client/assets/{mermaid-3ZIDBTTL-BQLU7GUr.js → mermaid-3ZIDBTTL-D3hhpLut.js} +8 -5
- package/build/client/assets/{root-C0Tu5TVN.css → root-5XHFuftH.css} +1 -1
- package/build/client/assets/{root-Yk3JVwUh.js → root-DCSDR-Tx.js} +1 -1
- package/build/client/assets/{run-detail-DMUaWXhb.js → run-detail-qu2t8u4x.js} +5 -5
- package/build/client/assets/{server-build-DqaxIrF0.css → server-build-olrGumlh.css} +1 -1
- package/build/client/assets/{workflow-graph-viewer-yqeN-U_2.js → workflow-graph-viewer-Bl8eU-PY.js} +2 -2
- package/build/server/assets/{app-L1V62FgT.js → app-C_Lhht8k.js} +1 -1
- package/build/server/assets/{highlighted-body-B3W2YXNL-CZjJIpdD.js → highlighted-body-B3W2YXNL-DOOlKIMb.js} +2 -2
- package/build/server/assets/{index-BwtNigf1.js → index-CRYPN_tt.js} +3 -3
- package/build/server/assets/{mermaid-3ZIDBTTL-Cc8IPTBj.js → mermaid-3ZIDBTTL-CglyhPap.js} +2 -2
- package/build/server/assets/{server-build-DtcOUEHS.js → server-build-CeQwCbX_.js} +139 -20
- package/build/server/assets/{token-DHnArVm7.js → token-CZpVopko.js} +2 -2
- package/build/server/assets/{token-util-B3uKeZ0s.js → token-util-DUvMx9Gj.js} +2 -2
- package/build/server/index.js +1 -1
- package/package.json +6 -6
|
@@ -14,7 +14,7 @@ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "
|
|
|
14
14
|
var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
|
|
15
15
|
var __superGet = (cls, obj, key) => __reflectGet(__getProtoOf(cls), key, obj);
|
|
16
16
|
var _a2, _b, _c, _listeners, _onabort, _reader, _root, _hasMagic, _uflag, _parts, _parent, _parentIndex, _negs, _filledNegs, _options, _toString, _emptyExt, _AST_instances, fillNegs_fn, _AST_static, parseAST_fn, canAdoptWithSpace_fn, canAdopt_fn, canAdoptType_fn, adoptWithSpace_fn, adopt_fn, canUsurpType_fn, canUsurp_fn, usurp_fn, flatten_fn, partsToRegExp_fn, parseGlob_fn, _Minimatch_instances, matchGlobstar_fn, matchGlobStarBodySections_fn, matchOne_fn, _worldPromise, _Run_instances, lazyWorldPromise_get, _encryptionKeyPromise, _resilientStart, getEncryptionKey_fn, pollReturnValue_fn;
|
|
17
|
-
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-
|
|
17
|
+
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-C_Lhht8k.js";
|
|
18
18
|
import require$$0$3, { PassThrough } from "node:stream";
|
|
19
19
|
import require$$0 from "util";
|
|
20
20
|
import require$$1 from "crypto";
|
|
@@ -48697,7 +48697,10 @@ const HookConflictEventSchema = BaseEventSchema.extend({
|
|
|
48697
48697
|
eventType: literal("hook_conflict"),
|
|
48698
48698
|
correlationId: string$3(),
|
|
48699
48699
|
eventData: object$1({
|
|
48700
|
-
token: string$3()
|
|
48700
|
+
token: string$3(),
|
|
48701
|
+
// TODO: Make this required once all persisted hook_conflict events and
|
|
48702
|
+
// remote World implementations always include the active hook owner's run ID.
|
|
48703
|
+
conflictingRunId: string$3().optional()
|
|
48701
48704
|
})
|
|
48702
48705
|
});
|
|
48703
48706
|
const WaitCreatedEventSchema = BaseEventSchema.extend({
|
|
@@ -80048,7 +80051,7 @@ var tn = f("block", "before:content-[counter(line)]", "before:inline-block", "be
|
|
|
80048
80051
|
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 });
|
|
80049
80052
|
var Se = reactExports.createContext({ code: "" }), de = () => reactExports.useContext(Se);
|
|
80050
80053
|
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 }) });
|
|
80051
|
-
var cn$1 = /\n+$/, dn = reactExports.lazy(() => import("./highlighted-body-B3W2YXNL-
|
|
80054
|
+
var cn$1 = /\n+$/, dn = reactExports.lazy(() => import("./highlighted-body-B3W2YXNL-DOOlKIMb.js").then((e) => ({ default: e.HighlightedCodeBlockBody }))), rt = ({ code: e, language: t, className: o, children: n, isIncomplete: s2 = false, ...r2 }) => {
|
|
80052
80055
|
let i = reactExports.useMemo(() => e.replace(cn$1, ""), [e]), c = reactExports.useMemo(() => ({ bg: "transparent", fg: "inherit", tokens: i.split(`
|
|
80053
80056
|
`).map((a2) => [{ content: a2, color: "inherit", bgColor: "transparent", htmlStyle: {}, offset: 0 }]) }), [i]);
|
|
80054
80057
|
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 }) })] }) });
|
|
@@ -80370,7 +80373,7 @@ var Dt = ({ children: e, className: t, onDownload: o, onError: n }) => {
|
|
|
80370
80373
|
}, []), 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] });
|
|
80371
80374
|
};
|
|
80372
80375
|
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 }) })] });
|
|
80373
|
-
var Jn = reactExports.lazy(() => import("./mermaid-3ZIDBTTL-
|
|
80376
|
+
var Jn = reactExports.lazy(() => import("./mermaid-3ZIDBTTL-CglyhPap.js").then((e) => ({ default: e.Mermaid }))), Kn = /language-([^\s]+)/;
|
|
80374
80377
|
function ke(e, t) {
|
|
80375
80378
|
if (!(e != null && e.position || t != null && t.position)) return true;
|
|
80376
80379
|
if (!(e != null && e.position && (t != null && t.position))) return false;
|
|
@@ -84166,7 +84169,7 @@ function NewTraceViewerContent({ trace: trace2 }) {
|
|
|
84166
84169
|
}
|
|
84167
84170
|
return data.stepId ?? data.runId ?? data.hookId ?? selectedSpan.spanId;
|
|
84168
84171
|
}, [selectedSpan == null ? void 0 : selectedSpan.data, selectedSpan == null ? void 0 : selectedSpan.resource, selectedSpan == null ? void 0 : selectedSpan.spanId]);
|
|
84169
|
-
return jsxRuntimeExports.jsxs("div", { "data-pane": "pane-root", "data-has-detail": activeSpan ? "" : void 0, className: "grid w-full h-full max-h-full grid-cols-[minmax(100px,1fr)] data-[has-detail]:grid-cols-[minmax(100px,1fr)_clamp(280px,420px,100%)]", children: [jsxRuntimeExports.jsxs("div", { id: "trace-parent", className: "grid grid-rows-[1fr] h-full min-h-0 overflow-hidden relative bg-background-100", children: [jsxRuntimeExports.jsxs(SplitPane, { startHeader: jsxRuntimeExports.jsxs("div", { className: "bg-background-100 border-b border-gray-alpha-400 h-10 min-h-10 flex items-center px-2 gap-1.5", children: [jsxRuntimeExports.jsx(Search, { className: "w-3.5 h-3.5 shrink-0 text-gray-800" }), jsxRuntimeExports.jsx("input", { id: "trace-viewer-search", name: "trace-viewer-search", type: "text", value: searchQuery, onChange: (e) => setSearchQuery(e.target.value), placeholder: "Search spans...", "aria-label": "Search spans", className: "flex-1 min-w-0 bg-transparent text-sm text-gray-1000 placeholder:text-gray-800 outline-none" }), searchQuery && jsxRuntimeExports.jsx("button", { type: "button", onClick: () => setSearchQuery(""), className: "shrink-0 p-0.5 rounded-sm text-gray-800 hover:text-gray-1000 hover:bg-gray-200 transition-colors", children: jsxRuntimeExports.jsx(X$3, { className: "w-3 h-3" }) })] }), endHeader: jsxRuntimeExports.jsx(TimelineHeader, { markers: timeMarkers, hoverInfo: hoverInfo2 }), children: [jsxRuntimeExports.jsx("div", { className: "block overflow-visible", children: jsxRuntimeExports.jsx(EventList, { spans: filteredSpans, activeSpanId, onSelectSpan: handleSelectSpan }) }), jsxRuntimeExports.jsx("div", { ref: timelineRef, className: "block min-h-0 overflow-visible relative", onDoubleClick: resetZoom, onMouseMove: handleTimelineMouseMove, onMouseLeave: handleTimelineMouseLeave, children: jsxRuntimeExports.jsx(Timeline, { spans: filteredSpans, viewStart: viewport.start, viewEnd: viewport.end, markers: timeMarkers, selectedId: activeSpanId, onSelect: handleSelectSpan, hoverFraction, altHeld }) })] }), jsxRuntimeExports.jsxs("div", { className: "absolute right-3 bottom-3 z-[5] flex items-center border border-gray-alpha-400 rounded-lg bg-background-100 shadow-sm overflow-hidden divide-x divide-gray-alpha-400", children: [jsxRuntimeExports.jsx("button", { type: "button", className: "flex items-center justify-center w-8 h-8 text-gray-900 cursor-pointer transition-colors duration-[120ms] ease-in-out hover:text-gray-1000 hover:bg-gray-alpha-100", onClick: zoomOut, "aria-label": "Zoom out", children: jsxRuntimeExports.jsx(ZoomOut, { className: "w-4 h-4" }) }), jsxRuntimeExports.jsx("button", { type: "button", className: "flex items-center justify-center w-8 h-8 text-gray-900 cursor-pointer transition-colors duration-[120ms] ease-in-out hover:text-gray-1000 hover:bg-gray-alpha-100", onClick: resetZoom, "aria-label": "Reset zoom", children: jsxRuntimeExports.jsx(RotateCcw, { className: "w-3.5 h-3.5" }) }), jsxRuntimeExports.jsx("button", { type: "button", className: "flex items-center justify-center w-8 h-8 text-gray-900 cursor-pointer transition-colors duration-[120ms] ease-in-out hover:text-gray-1000 hover:bg-gray-alpha-100", onClick: zoomIn, "aria-label": "Zoom in", children: jsxRuntimeExports.jsx(ZoomIn, { className: "w-4 h-4" }) })] })] }), activeSpan && sidebar ? jsxRuntimeExports.jsxs("aside", { className: "flex flex-col h-full max-h-full bg-background-100 border-l border-gray-alpha-400 overflow-auto", children: [jsxRuntimeExports.jsx("div", { className: "flex-shrink-0 px-4 pt-4 pb-3", children: jsxRuntimeExports.jsxs("div", { className: "flex items-start justify-between gap-2", children: [jsxRuntimeExports.jsxs("div", { className: "min-w-0 flex-1", children: [jsxRuntimeExports.jsx("span", { className: "text-[15px] font-semibold text-gray-1000 truncate block", children: selectedSpanName }), selectedResourceId && jsxRuntimeExports.jsxs("div", { className: "mt-1 flex items-center gap-2", children: [selectedResource && jsxRuntimeExports.jsx("span", { className: `inline-flex items-center rounded-md px-1.5 py-0.5 text-[11px] font-medium leading-none shrink-0 ${selectedResource === "step" ? "bg-green-200 text-green-900" : selectedResource === "run" ? "bg-blue-200 text-blue-900" : selectedResource === "hook" ? "bg-yellow-200 text-yellow-900" : "bg-gray-200 text-gray-900"}`, children: selectedResource.charAt(0).toUpperCase() + selectedResource.slice(1) }), jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-1 text-[13px] font-mono text-gray-700 min-w-0", title: selectedResourceId, children: [jsxRuntimeExports.jsx("span", { className: "truncate", children: selectedResourceId }), jsxRuntimeExports.jsx(CopyButton, { copyText: selectedResourceId, ariaLabel: "Copy ID", className: "shrink-0" })] })] })] }), jsxRuntimeExports.jsx("button", { type: "button", className: "p-1 rounded-md text-gray-900 hover:text-gray-1000 hover:bg-gray-alpha-200 transition-colors shrink-0", onClick: clearActiveSpan, children: jsxRuntimeExports.jsx(X$3, { className: "w-4 h-4" }) })] }) }), jsxRuntimeExports.jsx("div", { className: "flex-1 overflow-y-auto", children: jsxRuntimeExports.jsx(ErrorBoundary$1, { children: jsxRuntimeExports.jsx(EntityDetailPanel, { run: sidebar.run, onStreamClick: sidebar.onStreamClick, onRunClick: sidebar.onRunClick, spanDetailData: sidebar.spanDetailData, spanDetailError: sidebar.spanDetailError, spanDetailLoading: sidebar.spanDetailLoading, onSpanSelect: sidebar.onSpanSelect, onWakeUpSleep: sidebar.onWakeUpSleep, onLoadEventData: sidebar.onLoadEventData, onResolveHook: sidebar.onResolveHook, encryptionKey: sidebar.encryptionKey, onDecrypt: sidebar.onDecrypt, isDecrypting: sidebar.isDecrypting, selectedSpan }) }) })] }) : activeSpan ? jsxRuntimeExports.jsx(DetailPanel, { span: activeSpan, rootStart: root2.startTime, onClose: clearActiveSpan }) : null] });
|
|
84172
|
+
return jsxRuntimeExports.jsxs("div", { "data-pane": "pane-root", "data-has-detail": activeSpan ? "" : void 0, className: "grid w-full h-full max-h-full grid-cols-[minmax(100px,1fr)] data-[has-detail]:grid-cols-[minmax(100px,1fr)_clamp(280px,420px,100%)]", children: [jsxRuntimeExports.jsxs("div", { id: "trace-parent", className: "grid grid-rows-[1fr] h-full min-h-0 overflow-hidden relative bg-background-100", children: [jsxRuntimeExports.jsxs(SplitPane, { startHeader: jsxRuntimeExports.jsxs("div", { className: "bg-background-100 border-b border-gray-alpha-400 h-10 min-h-10 flex items-center px-2 gap-1.5", children: [jsxRuntimeExports.jsx(Search, { className: "w-3.5 h-3.5 shrink-0 text-gray-800" }), jsxRuntimeExports.jsx("input", { id: "trace-viewer-search", name: "trace-viewer-search", type: "text", value: searchQuery, onChange: (e) => setSearchQuery(e.target.value), placeholder: "Search spans...", "aria-label": "Search spans", className: "flex-1 min-w-0 bg-transparent text-sm text-gray-1000 placeholder:text-gray-800 outline-none" }), searchQuery && jsxRuntimeExports.jsx("button", { type: "button", onClick: () => setSearchQuery(""), className: "shrink-0 p-0.5 rounded-sm text-gray-800 hover:text-gray-1000 hover:bg-gray-200 transition-colors", children: jsxRuntimeExports.jsx(X$3, { className: "w-3 h-3" }) })] }), endHeader: jsxRuntimeExports.jsx(TimelineHeader, { markers: timeMarkers, hoverInfo: hoverInfo2 }), children: [jsxRuntimeExports.jsx("div", { className: "block overflow-visible", children: jsxRuntimeExports.jsx(EventList, { spans: filteredSpans, activeSpanId, onSelectSpan: handleSelectSpan }) }), jsxRuntimeExports.jsx("div", { ref: timelineRef, className: "block min-h-0 overflow-visible relative", onDoubleClick: resetZoom, onMouseMove: handleTimelineMouseMove, onMouseLeave: handleTimelineMouseLeave, children: jsxRuntimeExports.jsx(Timeline, { spans: filteredSpans, viewStart: viewport.start, viewEnd: viewport.end, markers: timeMarkers, selectedId: activeSpanId, onSelect: handleSelectSpan, hoverFraction, altHeld }) })] }), jsxRuntimeExports.jsxs("div", { className: "absolute right-3 bottom-3 z-[5] flex items-center border border-gray-alpha-400 rounded-lg bg-background-100 shadow-sm overflow-hidden divide-x divide-gray-alpha-400", children: [jsxRuntimeExports.jsx("button", { type: "button", className: "flex items-center justify-center w-8 h-8 text-gray-900 cursor-pointer transition-colors duration-[time:120ms] ease-in-out hover:text-gray-1000 hover:bg-gray-alpha-100", onClick: zoomOut, "aria-label": "Zoom out", children: jsxRuntimeExports.jsx(ZoomOut, { className: "w-4 h-4" }) }), jsxRuntimeExports.jsx("button", { type: "button", className: "flex items-center justify-center w-8 h-8 text-gray-900 cursor-pointer transition-colors duration-[time:120ms] ease-in-out hover:text-gray-1000 hover:bg-gray-alpha-100", onClick: resetZoom, "aria-label": "Reset zoom", children: jsxRuntimeExports.jsx(RotateCcw, { className: "w-3.5 h-3.5" }) }), jsxRuntimeExports.jsx("button", { type: "button", className: "flex items-center justify-center w-8 h-8 text-gray-900 cursor-pointer transition-colors duration-[time:120ms] ease-in-out hover:text-gray-1000 hover:bg-gray-alpha-100", onClick: zoomIn, "aria-label": "Zoom in", children: jsxRuntimeExports.jsx(ZoomIn, { className: "w-4 h-4" }) })] })] }), activeSpan && sidebar ? jsxRuntimeExports.jsxs("aside", { className: "flex flex-col h-full max-h-full bg-background-100 border-l border-gray-alpha-400 overflow-auto", children: [jsxRuntimeExports.jsx("div", { className: "flex-shrink-0 px-4 pt-4 pb-3", children: jsxRuntimeExports.jsxs("div", { className: "flex items-start justify-between gap-2", children: [jsxRuntimeExports.jsxs("div", { className: "min-w-0 flex-1", children: [jsxRuntimeExports.jsx("span", { className: "text-[15px] font-semibold text-gray-1000 truncate block", children: selectedSpanName }), selectedResourceId && jsxRuntimeExports.jsxs("div", { className: "mt-1 flex items-center gap-2", children: [selectedResource && jsxRuntimeExports.jsx("span", { className: `inline-flex items-center rounded-md px-1.5 py-0.5 text-[11px] font-medium leading-none shrink-0 ${selectedResource === "step" ? "bg-green-200 text-green-900" : selectedResource === "run" ? "bg-blue-200 text-blue-900" : selectedResource === "hook" ? "bg-yellow-200 text-yellow-900" : "bg-gray-200 text-gray-900"}`, children: selectedResource.charAt(0).toUpperCase() + selectedResource.slice(1) }), jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-1 text-[13px] font-mono text-gray-700 min-w-0", title: selectedResourceId, children: [jsxRuntimeExports.jsx("span", { className: "truncate", children: selectedResourceId }), jsxRuntimeExports.jsx(CopyButton, { copyText: selectedResourceId, ariaLabel: "Copy ID", className: "shrink-0" })] })] })] }), jsxRuntimeExports.jsx("button", { type: "button", className: "p-1 rounded-md text-gray-900 hover:text-gray-1000 hover:bg-gray-alpha-200 transition-colors shrink-0", onClick: clearActiveSpan, children: jsxRuntimeExports.jsx(X$3, { className: "w-4 h-4" }) })] }) }), jsxRuntimeExports.jsx("div", { className: "flex-1 overflow-y-auto", children: jsxRuntimeExports.jsx(ErrorBoundary$1, { children: jsxRuntimeExports.jsx(EntityDetailPanel, { run: sidebar.run, onStreamClick: sidebar.onStreamClick, onRunClick: sidebar.onRunClick, spanDetailData: sidebar.spanDetailData, spanDetailError: sidebar.spanDetailError, spanDetailLoading: sidebar.spanDetailLoading, onSpanSelect: sidebar.onSpanSelect, onWakeUpSleep: sidebar.onWakeUpSleep, onLoadEventData: sidebar.onLoadEventData, onResolveHook: sidebar.onResolveHook, encryptionKey: sidebar.encryptionKey, onDecrypt: sidebar.onDecrypt, isDecrypting: sidebar.isDecrypting, selectedSpan }) }) })] }) : activeSpan ? jsxRuntimeExports.jsx(DetailPanel, { span: activeSpan, rootStart: root2.startTime, onClose: clearActiveSpan }) : null] });
|
|
84170
84173
|
}
|
|
84171
84174
|
const NewTraceViewer = ({ run, events: events2, sidebarData }) => {
|
|
84172
84175
|
const traceWithMeta = reactExports.useMemo(() => {
|
|
@@ -87383,7 +87386,8 @@ function buildFramedDetails(hint2, slug) {
|
|
|
87383
87386
|
}
|
|
87384
87387
|
const ERROR_SLUGS = {
|
|
87385
87388
|
WEBHOOK_INVALID_RESPOND_WITH_VALUE: "webhook-invalid-respond-with-value",
|
|
87386
|
-
WEBHOOK_RESPONSE_NOT_SENT: "webhook-response-not-sent"
|
|
87389
|
+
WEBHOOK_RESPONSE_NOT_SENT: "webhook-response-not-sent",
|
|
87390
|
+
HOOK_CONFLICT: "hook-conflict"
|
|
87387
87391
|
};
|
|
87388
87392
|
class WorkflowError extends Error {
|
|
87389
87393
|
constructor(message2, options) {
|
|
@@ -87500,6 +87504,25 @@ class WorkflowRunNotFoundError extends WorkflowError {
|
|
|
87500
87504
|
return isError(value) && value.name === "WorkflowRunNotFoundError";
|
|
87501
87505
|
}
|
|
87502
87506
|
}
|
|
87507
|
+
class HookConflictError extends WorkflowError {
|
|
87508
|
+
constructor(token, conflictingRunId) {
|
|
87509
|
+
super(`Hook token "${token}" is already in use by another workflow${conflictingRunId ? ` (run "${conflictingRunId}")` : ""}`, {
|
|
87510
|
+
slug: ERROR_SLUGS.HOOK_CONFLICT
|
|
87511
|
+
});
|
|
87512
|
+
__publicField(this, "token");
|
|
87513
|
+
// TODO: Make this required once all persisted hook_conflict events and World
|
|
87514
|
+
// implementations always include the active hook owner's run ID.
|
|
87515
|
+
__publicField(this, "conflictingRunId");
|
|
87516
|
+
this.name = "HookConflictError";
|
|
87517
|
+
this.token = token;
|
|
87518
|
+
if (conflictingRunId !== void 0) {
|
|
87519
|
+
this.conflictingRunId = conflictingRunId;
|
|
87520
|
+
}
|
|
87521
|
+
}
|
|
87522
|
+
static is(value) {
|
|
87523
|
+
return isError(value) && value.name === "HookConflictError";
|
|
87524
|
+
}
|
|
87525
|
+
}
|
|
87503
87526
|
class HookNotFoundError extends WorkflowError {
|
|
87504
87527
|
constructor(token) {
|
|
87505
87528
|
super("Hook not found", {});
|
|
@@ -87608,6 +87631,7 @@ class RetryableError extends Error {
|
|
|
87608
87631
|
const VERCEL_403_ERROR_MESSAGE = "Your current vercel account does not have access to this resource. Use `vercel login` or `vercel switch` to ensure you are linked to the right account.";
|
|
87609
87632
|
const FATAL_ERROR_KEY = Symbol.for("@workflow/errors//FatalError");
|
|
87610
87633
|
const RETRYABLE_ERROR_KEY = Symbol.for("@workflow/errors//RetryableError");
|
|
87634
|
+
const HOOK_CONFLICT_ERROR_KEY = Symbol.for("@workflow/errors//HookConflictError");
|
|
87611
87635
|
if (typeof globalThis !== "undefined") {
|
|
87612
87636
|
if (!Object.hasOwn(globalThis, FATAL_ERROR_KEY)) {
|
|
87613
87637
|
Object.defineProperty(globalThis, FATAL_ERROR_KEY, {
|
|
@@ -87625,6 +87649,14 @@ if (typeof globalThis !== "undefined") {
|
|
|
87625
87649
|
configurable: false
|
|
87626
87650
|
});
|
|
87627
87651
|
}
|
|
87652
|
+
if (!Object.hasOwn(globalThis, HOOK_CONFLICT_ERROR_KEY)) {
|
|
87653
|
+
Object.defineProperty(globalThis, HOOK_CONFLICT_ERROR_KEY, {
|
|
87654
|
+
value: HookConflictError,
|
|
87655
|
+
writable: false,
|
|
87656
|
+
enumerable: false,
|
|
87657
|
+
configurable: false
|
|
87658
|
+
});
|
|
87659
|
+
}
|
|
87628
87660
|
}
|
|
87629
87661
|
const colorEnabled = (() => {
|
|
87630
87662
|
var _a3;
|
|
@@ -88095,7 +88127,7 @@ const encryption = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePr
|
|
|
88095
88127
|
encrypt: encrypt$1,
|
|
88096
88128
|
importKey
|
|
88097
88129
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
88098
|
-
const version$1 = "5.0.0-beta.
|
|
88130
|
+
const version$1 = "5.0.0-beta.6";
|
|
88099
88131
|
const WorldCacheKey = Symbol.for("@workflow/world//cache");
|
|
88100
88132
|
const WorldCachePromiseKey = Symbol.for("@workflow/world//cachePromise");
|
|
88101
88133
|
const GetWorldFnKey$1 = Symbol.for("@workflow/world//getWorldFn");
|
|
@@ -89691,6 +89723,20 @@ function getCommonReducers(global2 = globalThis) {
|
|
|
89691
89723
|
// See `makeErrorSubclassReducer` for implementation details.
|
|
89692
89724
|
EvalError: makeErrorSubclassReducer("EvalError"),
|
|
89693
89725
|
FatalError: makeErrorSubclassReducer("FatalError"),
|
|
89726
|
+
HookConflictError: (value) => {
|
|
89727
|
+
const base = reduceNamedErrorSubclassBase("HookConflictError", value);
|
|
89728
|
+
if (!base)
|
|
89729
|
+
return false;
|
|
89730
|
+
const error2 = value;
|
|
89731
|
+
const reduced = {
|
|
89732
|
+
...base,
|
|
89733
|
+
token: error2.token
|
|
89734
|
+
};
|
|
89735
|
+
if (error2.conflictingRunId !== void 0) {
|
|
89736
|
+
reduced.conflictingRunId = error2.conflictingRunId;
|
|
89737
|
+
}
|
|
89738
|
+
return reduced;
|
|
89739
|
+
},
|
|
89694
89740
|
RangeError: makeErrorSubclassReducer("RangeError"),
|
|
89695
89741
|
ReferenceError: makeErrorSubclassReducer("ReferenceError"),
|
|
89696
89742
|
// RetryableError carries an extra `retryAfter` Date that we serialize as
|
|
@@ -89821,6 +89867,16 @@ function getCommonRevivers$1(global2 = globalThis) {
|
|
|
89821
89867
|
error2.cause = value.cause;
|
|
89822
89868
|
return error2;
|
|
89823
89869
|
},
|
|
89870
|
+
HookConflictError: (value) => {
|
|
89871
|
+
const Ctor = global2[Symbol.for("@workflow/errors//HookConflictError")] ?? HookConflictError;
|
|
89872
|
+
const error2 = new Ctor(value.token, value.conflictingRunId);
|
|
89873
|
+
if (value.stack !== void 0)
|
|
89874
|
+
error2.stack = value.stack;
|
|
89875
|
+
if ("cause" in value) {
|
|
89876
|
+
error2.cause = value.cause;
|
|
89877
|
+
}
|
|
89878
|
+
return error2;
|
|
89879
|
+
},
|
|
89824
89880
|
RangeError: makeErrorSubclassReviver(global2, "RangeError"),
|
|
89825
89881
|
ReferenceError: makeErrorSubclassReviver(global2, "ReferenceError"),
|
|
89826
89882
|
RetryableError: (value) => {
|
|
@@ -116276,6 +116332,20 @@ const LOCAL_QUEUE_MAX_VISIBILITY = parseInt(process.env.WORKFLOW_LOCAL_QUEUE_MAX
|
|
|
116276
116332
|
const MAX_SAFE_TIMEOUT_MS = 2147483647;
|
|
116277
116333
|
const DEFAULT_CONCURRENCY_LIMIT = 1e3;
|
|
116278
116334
|
const WORKFLOW_LOCAL_QUEUE_CONCURRENCY = parseInt(process.env.WORKFLOW_LOCAL_QUEUE_CONCURRENCY ?? "0", 10) || DEFAULT_CONCURRENCY_LIMIT;
|
|
116335
|
+
const DETACHED_ARRAYBUFFER_ERROR = "Cannot perform ArrayBuffer.prototype.slice on a detached ArrayBuffer";
|
|
116336
|
+
const PROXY_HANDLER_DOCS_URL = "https://workflow-sdk.dev/docs/getting-started/next#configure-proxy-handler";
|
|
116337
|
+
function isDetachedArrayBufferQueueError(error2) {
|
|
116338
|
+
let current = error2;
|
|
116339
|
+
const visited = /* @__PURE__ */ new Set();
|
|
116340
|
+
while (current && typeof current === "object" && !visited.has(current)) {
|
|
116341
|
+
visited.add(current);
|
|
116342
|
+
if ("message" in current && typeof current.message === "string" && current.message.includes(DETACHED_ARRAYBUFFER_ERROR)) {
|
|
116343
|
+
return true;
|
|
116344
|
+
}
|
|
116345
|
+
current = "cause" in current ? current.cause : void 0;
|
|
116346
|
+
}
|
|
116347
|
+
return false;
|
|
116348
|
+
}
|
|
116279
116349
|
function getQueueRoute(queueName) {
|
|
116280
116350
|
if (queueName.startsWith("__wkf_step_")) {
|
|
116281
116351
|
return { pathname: "step", prefix: "__wkf_step_" };
|
|
@@ -116388,7 +116458,17 @@ function createQueue$2(config2) {
|
|
|
116388
116458
|
})().catch((err) => {
|
|
116389
116459
|
const isAbortError = (err == null ? void 0 : err.name) === "AbortError" || (err == null ? void 0 : err.name) === "ResponseAborted";
|
|
116390
116460
|
if (!isAbortError) {
|
|
116391
|
-
|
|
116461
|
+
if (isDetachedArrayBufferQueueError(err)) {
|
|
116462
|
+
console.error(`[local world] Queue operation failed: detected "${DETACHED_ARRAYBUFFER_ERROR}". This usually means a Next.js proxy/middleware consumed Workflow's internal request before the executor could read it. Exclude \`/.well-known/workflow/*\` from your matcher. See ${PROXY_HANDLER_DOCS_URL}`, {
|
|
116463
|
+
queueName,
|
|
116464
|
+
messageId,
|
|
116465
|
+
...runId && { runId },
|
|
116466
|
+
...stepId && { stepId },
|
|
116467
|
+
originalError: err
|
|
116468
|
+
});
|
|
116469
|
+
} else {
|
|
116470
|
+
console.error("[local world] Queue operation failed:", err);
|
|
116471
|
+
}
|
|
116392
116472
|
}
|
|
116393
116473
|
}).finally(() => {
|
|
116394
116474
|
for (const fn2 of cleanup) {
|
|
@@ -116617,6 +116697,19 @@ async function handleLegacyEvent(basedir, runId, data, currentRun, params) {
|
|
|
116617
116697
|
}
|
|
116618
116698
|
}
|
|
116619
116699
|
const stepLocks = /* @__PURE__ */ new Map();
|
|
116700
|
+
const HookTokenClaimSchema = object$1({
|
|
116701
|
+
runId: string$3()
|
|
116702
|
+
});
|
|
116703
|
+
async function readHookTokenClaim(constraintPath) {
|
|
116704
|
+
try {
|
|
116705
|
+
return await readJSON(constraintPath, HookTokenClaimSchema);
|
|
116706
|
+
} catch (error2) {
|
|
116707
|
+
if (error2 instanceof SyntaxError || error2 instanceof ZodError) {
|
|
116708
|
+
return null;
|
|
116709
|
+
}
|
|
116710
|
+
throw error2;
|
|
116711
|
+
}
|
|
116712
|
+
}
|
|
116620
116713
|
function withStepLock(key, fn2) {
|
|
116621
116714
|
const prev = stepLocks.get(key);
|
|
116622
116715
|
const taskBox = {};
|
|
@@ -117053,11 +117146,13 @@ function createEventsStorage(basedir, tag) {
|
|
|
117053
117146
|
runId: effectiveRunId
|
|
117054
117147
|
}));
|
|
117055
117148
|
if (!tokenClaimed) {
|
|
117149
|
+
const existingClaim = await readHookTokenClaim(constraintPath);
|
|
117056
117150
|
const conflictEvent = {
|
|
117057
117151
|
eventType: "hook_conflict",
|
|
117058
117152
|
correlationId: data.correlationId,
|
|
117059
117153
|
eventData: {
|
|
117060
|
-
token: hookData.token
|
|
117154
|
+
token: hookData.token,
|
|
117155
|
+
...existingClaim ? { conflictingRunId: existingClaim.runId } : {}
|
|
117061
117156
|
},
|
|
117062
117157
|
runId: effectiveRunId,
|
|
117063
117158
|
eventId,
|
|
@@ -117740,7 +117835,7 @@ function createLocalWorld(args) {
|
|
|
117740
117835
|
const basedir = mergedConfig.dataDir;
|
|
117741
117836
|
const hooksDir = path$3.join(basedir, "hooks");
|
|
117742
117837
|
const taggedHookFiles = await listTaggedFiles(hooksDir, tag);
|
|
117743
|
-
const { HookSchema: HookSchema2 } = await import("./index-
|
|
117838
|
+
const { HookSchema: HookSchema2 } = await import("./index-CRYPN_tt.js");
|
|
117744
117839
|
await Promise.all(taggedHookFiles.map(async (hookFile) => {
|
|
117745
117840
|
const hook = await readJSON(path$3.join(hooksDir, hookFile), HookSchema2);
|
|
117746
117841
|
if (hook == null ? void 0 : hook.token) {
|
|
@@ -117892,8 +117987,8 @@ function requireGetVercelOidcToken() {
|
|
|
117892
117987
|
}
|
|
117893
117988
|
try {
|
|
117894
117989
|
const [{ getTokenPayload, isExpired }, { refreshToken }] = await Promise.all([
|
|
117895
|
-
await import("./token-util-
|
|
117896
|
-
await import("./token-
|
|
117990
|
+
await import("./token-util-DUvMx9Gj.js").then((n) => n.t),
|
|
117991
|
+
await import("./token-CZpVopko.js").then((n) => n.t)
|
|
117897
117992
|
]);
|
|
117898
117993
|
if (!token || isExpired(getTokenPayload(token), options == null ? void 0 : options.expirationBufferMs)) {
|
|
117899
117994
|
await refreshToken(options);
|
|
@@ -118935,16 +119030,22 @@ var StreamingMultipartParser = class {
|
|
|
118935
119030
|
let index2 = 0;
|
|
118936
119031
|
let chunkLength = chunk.length;
|
|
118937
119032
|
if (this.buffer !== null) {
|
|
118938
|
-
const
|
|
118939
|
-
const
|
|
118940
|
-
if (
|
|
119033
|
+
const bufferLength = this.buffer.length;
|
|
119034
|
+
const newSize = bufferLength + chunkLength;
|
|
119035
|
+
if (this.state === 2) {
|
|
119036
|
+
if (newSize > this.maxHeaderSize) {
|
|
119037
|
+
throw new MultipartParseError(
|
|
119038
|
+
`Buffer size limit exceeded: ${newSize} bytes > ${this.maxHeaderSize} bytes. This may indicate malformed multipart data with oversized headers.`
|
|
119039
|
+
);
|
|
119040
|
+
}
|
|
119041
|
+
} else if (bufferLength > this.maxBoundaryBuffer) {
|
|
118941
119042
|
throw new MultipartParseError(
|
|
118942
|
-
`
|
|
119043
|
+
`Boundary buffer limit exceeded: ${bufferLength} bytes > ${this.maxBoundaryBuffer} bytes. This may indicate malformed multipart data with invalid boundaries.`
|
|
118943
119044
|
);
|
|
118944
119045
|
}
|
|
118945
119046
|
const newChunk = new Uint8Array(newSize);
|
|
118946
119047
|
newChunk.set(this.buffer, 0);
|
|
118947
|
-
newChunk.set(chunk,
|
|
119048
|
+
newChunk.set(chunk, bufferLength);
|
|
118948
119049
|
chunk = newChunk;
|
|
118949
119050
|
chunkLength = chunk.length;
|
|
118950
119051
|
this.buffer = null;
|
|
@@ -122516,7 +122617,7 @@ Cause: ${cause}`
|
|
|
122516
122617
|
}
|
|
122517
122618
|
console.debug("[VQS Debug] Request:", JSON.stringify(logData, null, 2));
|
|
122518
122619
|
}
|
|
122519
|
-
init2.headers.set("User-Agent", `@vercel/queue/${"0.1.
|
|
122620
|
+
init2.headers.set("User-Agent", `@vercel/queue/${"0.1.7"}`);
|
|
122520
122621
|
init2.headers.set("Vqs-Client-Ts", (/* @__PURE__ */ new Date()).toISOString());
|
|
122521
122622
|
const fetchInit = this.dispatcher ? { ...init2, dispatcher: this.dispatcher } : init2;
|
|
122522
122623
|
const response2 = await fetch(url2, fetchInit);
|
|
@@ -123058,7 +123159,7 @@ var QueueClient = class {
|
|
|
123058
123159
|
setApi(this, new ApiClient({ ...options, region }));
|
|
123059
123160
|
}
|
|
123060
123161
|
};
|
|
123061
|
-
const version = "5.0.0-beta.
|
|
123162
|
+
const version = "5.0.0-beta.5";
|
|
123062
123163
|
const HTTP_DEBUG_ENABLED = typeof process !== "undefined" && typeof process.env.DEBUG === "string" && (process.env.DEBUG.includes("workflow:") || process.env.DEBUG === "*");
|
|
123063
123164
|
function httpLog(method, endpoint, status, ms2) {
|
|
123064
123165
|
if (HTTP_DEBUG_ENABLED) {
|
|
@@ -123367,6 +123468,14 @@ const MAX_DELAY_SECONDS = Number(
|
|
|
123367
123468
|
process.env.VERCEL_QUEUE_MAX_DELAY_SECONDS || 82800
|
|
123368
123469
|
// 23 hours - leave 1h buffer before 24h retention limit
|
|
123369
123470
|
);
|
|
123471
|
+
const HANDLER_ERROR_RETRY_AFTER_SECONDS = 1;
|
|
123472
|
+
const HANDLER_ERROR_MAX_RETRY_AFTER_SECONDS = 60;
|
|
123473
|
+
const HANDLER_ERROR_RETRY_JITTER_RATIO = 0.25;
|
|
123474
|
+
function getHandlerErrorRetryAfterSeconds(deliveryCount) {
|
|
123475
|
+
const backoffSeconds = Math.min(Math.max(HANDLER_ERROR_RETRY_AFTER_SECONDS, 2 ** (deliveryCount - 1)), HANDLER_ERROR_MAX_RETRY_AFTER_SECONDS);
|
|
123476
|
+
const jitterSeconds = Math.floor(Math.random() * (Math.ceil(backoffSeconds * HANDLER_ERROR_RETRY_JITTER_RATIO) + 1));
|
|
123477
|
+
return Math.max(HANDLER_ERROR_RETRY_AFTER_SECONDS, backoffSeconds - jitterSeconds);
|
|
123478
|
+
}
|
|
123370
123479
|
function getHeadersFromPayload(payload) {
|
|
123371
123480
|
const headers2 = {};
|
|
123372
123481
|
if ("runId" in payload && typeof payload.runId === "string") {
|
|
@@ -123459,6 +123568,16 @@ function createQueue$1(config2) {
|
|
|
123459
123568
|
const delaySeconds = result.timeoutSeconds > 0 ? Math.min(result.timeoutSeconds, MAX_DELAY_SECONDS) : void 0;
|
|
123460
123569
|
await queue(queueName, payload, { deploymentId, delaySeconds });
|
|
123461
123570
|
}
|
|
123571
|
+
}, {
|
|
123572
|
+
// Without an explicit retry directive, @vercel/queue leaves failed
|
|
123573
|
+
// handler messages invisible until the default 300s visibility timeout
|
|
123574
|
+
// expires. Start retrying quickly, then back off by delivery count
|
|
123575
|
+
// with jitter so an outage or poison message cannot hot-loop or
|
|
123576
|
+
// redrive in lockstep. Workflow handlers are event-sourced and must
|
|
123577
|
+
// remain idempotent because queue retries can happen close together.
|
|
123578
|
+
retry: (_error, { deliveryCount }) => ({
|
|
123579
|
+
afterSeconds: getHandlerErrorRetryAfterSeconds(deliveryCount)
|
|
123580
|
+
})
|
|
123462
123581
|
});
|
|
123463
123582
|
return async (req) => {
|
|
123464
123583
|
const rawId = req.headers.get("x-vercel-id");
|
|
@@ -150877,7 +150996,7 @@ const route4 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProper
|
|
|
150877
150996
|
__proto__: null,
|
|
150878
150997
|
loader
|
|
150879
150998
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
150880
|
-
const serverManifest = { "entry": { "module": "/assets/entry.client-DtOpLtMQ.js", "imports": ["/assets/index-BsV8i_Jn.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-
|
|
150999
|
+
const serverManifest = { "entry": { "module": "/assets/entry.client-DtOpLtMQ.js", "imports": ["/assets/index-BsV8i_Jn.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-DCSDR-Tx.js", "imports": ["/assets/index-BsV8i_Jn.js", "/assets/mermaid-3ZIDBTTL-D3hhpLut.js"], "css": ["/assets/root-5XHFuftH.css", "/assets/mermaid-3ZIDBTTL-DKxHcEOp.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-DmK2qlF4.js", "imports": ["/assets/index-BsV8i_Jn.js", "/assets/workflow-graph-viewer-Bl8eU-PY.js", "/assets/mermaid-3ZIDBTTL-D3hhpLut.js", "/assets/index-Byi8AWfe.js"], "css": ["/assets/workflow-graph-viewer-DnlNuQQH.css", "/assets/mermaid-3ZIDBTTL-DKxHcEOp.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-qu2t8u4x.js", "imports": ["/assets/index-BsV8i_Jn.js", "/assets/workflow-graph-viewer-Bl8eU-PY.js", "/assets/mermaid-3ZIDBTTL-D3hhpLut.js", "/assets/encryption-DU49MAQV.js", "/assets/index-Byi8AWfe.js"], "css": ["/assets/workflow-graph-viewer-DnlNuQQH.css", "/assets/mermaid-3ZIDBTTL-DKxHcEOp.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-f8f46e3c.js", "version": "f8f46e3c", "sri": void 0 };
|
|
150881
151000
|
const assetsBuildDirectory = "build/client";
|
|
150882
151001
|
const basename = "/";
|
|
150883
151002
|
const future = { "unstable_optimizeDeps": false, "unstable_subResourceIntegrity": false, "unstable_trailingSlashAwareDataRequests": false, "unstable_previewServerPrerendering": false, "v8_middleware": false, "v8_splitRouteModules": false, "v8_viteEnvironmentApi": false };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { g as getDefaultExportFromCjs } from "./app-
|
|
2
|
-
import { C as requireTokenError, A as requireTokenUtil } from "./server-build-
|
|
1
|
+
import { g as getDefaultExportFromCjs } from "./app-C_Lhht8k.js";
|
|
2
|
+
import { C as requireTokenError, A as requireTokenUtil } from "./server-build-CeQwCbX_.js";
|
|
3
3
|
function _mergeNamespaces(n, m) {
|
|
4
4
|
for (var i = 0; i < m.length; i++) {
|
|
5
5
|
const e = m[i];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { g as getDefaultExportFromCjs } from "./app-
|
|
2
|
-
import { A as requireTokenUtil } from "./server-build-
|
|
1
|
+
import { g as getDefaultExportFromCjs } from "./app-C_Lhht8k.js";
|
|
2
|
+
import { A as requireTokenUtil } from "./server-build-CeQwCbX_.js";
|
|
3
3
|
function _mergeNamespaces(n, m) {
|
|
4
4
|
for (var i = 0; i < m.length; i++) {
|
|
5
5
|
const e = m[i];
|
package/build/server/index.js
CHANGED
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.
|
|
4
|
+
"version": "5.0.0-beta.6",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"private": false,
|
|
7
7
|
"files": [
|
|
@@ -72,12 +72,12 @@
|
|
|
72
72
|
"vite": "^6",
|
|
73
73
|
"vitest": "^3",
|
|
74
74
|
"jsdom": "^26",
|
|
75
|
-
"@workflow/core": "5.0.0-beta.
|
|
76
|
-
"@workflow/errors": "5.0.0-beta.
|
|
75
|
+
"@workflow/core": "5.0.0-beta.6",
|
|
76
|
+
"@workflow/errors": "5.0.0-beta.3",
|
|
77
77
|
"@workflow/utils": "5.0.0-beta.2",
|
|
78
|
-
"@workflow/web-shared": "5.0.0-beta.
|
|
79
|
-
"@workflow/world": "5.0.0-beta.
|
|
80
|
-
"@workflow/world-vercel": "5.0.0-beta.
|
|
78
|
+
"@workflow/web-shared": "5.0.0-beta.6",
|
|
79
|
+
"@workflow/world": "5.0.0-beta.3",
|
|
80
|
+
"@workflow/world-vercel": "5.0.0-beta.5"
|
|
81
81
|
},
|
|
82
82
|
"scripts": {
|
|
83
83
|
"dev": "react-router dev",
|