@workflow/web 4.1.21 → 4.1.22

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.
@@ -1 +1 @@
1
- window.__reactRouterManifest={"entry":{"module":"/assets/entry.client-C_C46bD6.js","imports":["/assets/index-BsV8i_Jn.js"],"css":[]},"routes":{"root":{"id":"root","path":"","hasAction":true,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasClientMiddleware":false,"hasDefaultExport":true,"hasErrorBoundary":true,"module":"/assets/root-BxnaECGo.js","imports":["/assets/index-BsV8i_Jn.js","/assets/mermaid-3ZIDBTTL-Bp6ZST9_.js"],"css":["/assets/root-BOS11TzD.css","/assets/mermaid-3ZIDBTTL-yyHEMZs4.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-Blj6TeEE.js","imports":["/assets/index-BsV8i_Jn.js","/assets/workflow-graph-viewer-C6PWoIIU.js","/assets/mermaid-3ZIDBTTL-Bp6ZST9_.js","/assets/index-DZSXezpI.js"],"css":["/assets/workflow-graph-viewer-yls6qlc0.css","/assets/mermaid-3ZIDBTTL-yyHEMZs4.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-1KdCfmI4.js","imports":["/assets/index-BsV8i_Jn.js","/assets/workflow-graph-viewer-C6PWoIIU.js","/assets/mermaid-3ZIDBTTL-Bp6ZST9_.js","/assets/encryption-BRhjWsZh.js","/assets/index-DZSXezpI.js"],"css":["/assets/workflow-graph-viewer-yls6qlc0.css","/assets/mermaid-3ZIDBTTL-yyHEMZs4.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-d91343fe.js","version":"d91343fe"};
1
+ window.__reactRouterManifest={"entry":{"module":"/assets/entry.client-C_C46bD6.js","imports":["/assets/index-BsV8i_Jn.js"],"css":[]},"routes":{"root":{"id":"root","path":"","hasAction":true,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasClientMiddleware":false,"hasDefaultExport":true,"hasErrorBoundary":true,"module":"/assets/root-BxnaECGo.js","imports":["/assets/index-BsV8i_Jn.js","/assets/mermaid-3ZIDBTTL-Bp6ZST9_.js"],"css":["/assets/root-BOS11TzD.css","/assets/mermaid-3ZIDBTTL-yyHEMZs4.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-Blj6TeEE.js","imports":["/assets/index-BsV8i_Jn.js","/assets/workflow-graph-viewer-C6PWoIIU.js","/assets/mermaid-3ZIDBTTL-Bp6ZST9_.js","/assets/index-DZSXezpI.js"],"css":["/assets/workflow-graph-viewer-yls6qlc0.css","/assets/mermaid-3ZIDBTTL-yyHEMZs4.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-DivTczoC.js","imports":["/assets/index-BsV8i_Jn.js","/assets/workflow-graph-viewer-C6PWoIIU.js","/assets/mermaid-3ZIDBTTL-Bp6ZST9_.js","/assets/encryption-BRhjWsZh.js","/assets/index-DZSXezpI.js"],"css":["/assets/workflow-graph-viewer-yls6qlc0.css","/assets/mermaid-3ZIDBTTL-yyHEMZs4.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-7bf3847b.js","version":"7bf3847b"};
@@ -641,7 +641,6 @@ function EventRow({ event, index, isFirst, isLast, isExpanded, onToggleExpand, a
641
641
  }, []);
642
642
  reactExports.useEffect(() => {
643
643
  if (encryptionKey && hasAttemptedLoad && onLoadEventData) {
644
- setLoadedEventData(null);
645
644
  setHasAttemptedLoad(false);
646
645
  onLoadEventData(event).then((data) => {
647
646
  if (data !== null && data !== void 0) {
@@ -9180,7 +9180,7 @@ const app = express();
9180
9180
  app.all(
9181
9181
  "/{*splat}",
9182
9182
  createRequestHandler({
9183
- build: () => import("./server-build-BFktO0pM.js").then((n) => n.a6)
9183
+ build: () => import("./server-build-B1ehSvPo.js").then((n) => n.a6)
9184
9184
  })
9185
9185
  );
9186
9186
  app.use(
@@ -2,8 +2,8 @@ import { createRequire as __wkfCreateRequire } from "node:module";
2
2
  if (typeof globalThis.require === "undefined") {
3
3
  globalThis.require = __wkfCreateRequire(import.meta.url);
4
4
  }
5
- import { a0 as R, a1 as Ks, a2 as jsxRuntimeExports, a3 as Qe } from "./server-build-BFktO0pM.js";
6
- import { r as reactExports } from "./app-eQjjf4RE.js";
5
+ import { a0 as R, a1 as Ks, a2 as jsxRuntimeExports, a3 as Qe } from "./server-build-B1ehSvPo.js";
6
+ import { r as reactExports } from "./app-RN9KG5Qq.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 globalThis.require === "undefined") {
3
3
  globalThis.require = __wkfCreateRequire(import.meta.url);
4
4
  }
5
- import { H as HookSchema } from "./server-build-BFktO0pM.js";
6
- import { B, D, a, E, b, c, d, e, L, M, f, g, P, Q, h, R, S, i, j, k, l, m, n, o, p, T, q, r, s, t, u, V, W, v, w, x, y, z, A, C, F, G, I, J, K, O, U, X, Y, Z, _, $ } from "./server-build-BFktO0pM.js";
7
- import "./app-eQjjf4RE.js";
5
+ import { H as HookSchema } from "./server-build-B1ehSvPo.js";
6
+ import { B, D, a, E, b, c, d, e, L, M, f, g, P, Q, h, R, S, i, j, k, l, m, n, o, p, T, q, r, s, t, u, V, W, v, w, x, y, z, A, C, F, G, I, J, K, O, U, X, Y, Z, _, $ } from "./server-build-B1ehSvPo.js";
7
+ import "./app-RN9KG5Qq.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 globalThis.require === "undefined") {
3
3
  globalThis.require = __wkfCreateRequire(import.meta.url);
4
4
  }
5
- import { N as Nt } from "./server-build-BFktO0pM.js";
6
- import "./app-eQjjf4RE.js";
5
+ import { N as Nt } from "./server-build-B1ehSvPo.js";
6
+ import "./app-RN9KG5Qq.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 globalThis.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-eQjjf4RE.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-RN9KG5Qq.js";
22
22
  import require$$0$5, { PassThrough, Transform as Transform$1 } from "node:stream";
23
23
  import require$$0 from "util";
24
24
  import require$$1 from "crypto";
@@ -53040,7 +53040,6 @@ function EventRow({ event, index: index2, isFirst, isLast, isExpanded, onToggleE
53040
53040
  }, []);
53041
53041
  reactExports.useEffect(() => {
53042
53042
  if (encryptionKey && hasAttemptedLoad && onLoadEventData) {
53043
- setLoadedEventData(null);
53044
53043
  setHasAttemptedLoad(false);
53045
53044
  onLoadEventData(event).then((data) => {
53046
53045
  if (data !== null && data !== void 0) {
@@ -81858,7 +81857,7 @@ var tn = f("block", "before:content-[counter(line)]", "before:inline-block", "be
81858
81857
  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 });
81859
81858
  var Se = reactExports.createContext({ code: "" }), de = () => reactExports.useContext(Se);
81860
81859
  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 }) });
81861
- var cn$1 = /\n+$/, dn = reactExports.lazy(() => import("./highlighted-body-B3W2YXNL-DkTToHdM.js").then((e) => ({ default: e.HighlightedCodeBlockBody }))), rt = ({ code: e, language: t, className: o, children: n, isIncomplete: s2 = false, ...r2 }) => {
81860
+ var cn$1 = /\n+$/, dn = reactExports.lazy(() => import("./highlighted-body-B3W2YXNL-BHd4-kG6.js").then((e) => ({ default: e.HighlightedCodeBlockBody }))), rt = ({ code: e, language: t, className: o, children: n, isIncomplete: s2 = false, ...r2 }) => {
81862
81861
  let i = reactExports.useMemo(() => e.replace(cn$1, ""), [e]), c = reactExports.useMemo(() => ({ bg: "transparent", fg: "inherit", tokens: i.split(`
81863
81862
  `).map((a2) => [{ content: a2, color: "inherit", bgColor: "transparent", htmlStyle: {}, offset: 0 }]) }), [i]);
81864
81863
  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 }) })] }) });
@@ -82180,7 +82179,7 @@ var Dt = ({ children: e, className: t, onDownload: o, onError: n }) => {
82180
82179
  }, []), 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] });
82181
82180
  };
82182
82181
  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 }) })] });
82183
- var Jn = reactExports.lazy(() => import("./mermaid-3ZIDBTTL-DvwsvCUy.js").then((e) => ({ default: e.Mermaid }))), Kn = /language-([^\s]+)/;
82182
+ var Jn = reactExports.lazy(() => import("./mermaid-3ZIDBTTL-DNnc363s.js").then((e) => ({ default: e.Mermaid }))), Kn = /language-([^\s]+)/;
82184
82183
  function ke(e, t) {
82185
82184
  if (!(e != null && e.position || t != null && t.position)) return true;
82186
82185
  if (!(e != null && e.position && (t != null && t.position))) return false;
@@ -92072,7 +92071,7 @@ createLogger("build", {
92072
92071
  debugNamespace: "workflow:build"
92073
92072
  });
92074
92073
  const MAX_QUEUE_DELIVERIES = 48;
92075
- const version$1 = "4.8.5";
92074
+ const version$1 = "4.8.6";
92076
92075
  const execFileAsync = promisify(execFile);
92077
92076
  function parsePort$1(value, radix = 10) {
92078
92077
  const port = parseInt(value, radix);
@@ -118907,6 +118906,8 @@ function createQueue$2(config2) {
118907
118906
  const transport = new TypedJsonTransport();
118908
118907
  const generateId2 = monotonicFactory();
118909
118908
  const semaphore = new libExports.Sema(WORKFLOW_LOCAL_QUEUE_CONCURRENCY);
118909
+ const closeController = new AbortController();
118910
+ const closeSignal = closeController.signal;
118910
118911
  const inflightMessages = /* @__PURE__ */ new Map();
118911
118912
  const directHandlers = /* @__PURE__ */ new Map();
118912
118913
  const queue = async (queueName, message2, opts) => {
@@ -118965,6 +118966,7 @@ function createQueue$2(config2) {
118965
118966
  headers: new Headers(headers2),
118966
118967
  body: body2,
118967
118968
  agents: nodeHttpAgents,
118969
+ signal: closeSignal,
118968
118970
  headersTimeoutMs: agentOptions.headersTimeout,
118969
118971
  bodyTimeoutMs: agentOptions.bodyTimeout
118970
118972
  }) : (
@@ -118974,7 +118976,8 @@ function createQueue$2(config2) {
118974
118976
  duplex: "half",
118975
118977
  dispatcher: httpAgent,
118976
118978
  headers: headers2,
118977
- body: body2
118979
+ body: body2,
118980
+ signal: closeSignal
118978
118981
  })
118979
118982
  );
118980
118983
  }
@@ -119080,6 +119083,9 @@ function createQueue$2(config2) {
119080
119083
  directHandlers.set(prefix, handler);
119081
119084
  },
119082
119085
  async close() {
119086
+ if (closeSignal.aborted)
119087
+ return;
119088
+ closeController.abort();
119083
119089
  if (nodeHttpAgents)
119084
119090
  destroyNodeHttpAgents(nodeHttpAgents);
119085
119091
  await (httpAgent == null ? void 0 : httpAgent.close());
@@ -120727,7 +120733,7 @@ function createLocalWorld(args) {
120727
120733
  const basedir = mergedConfig.dataDir;
120728
120734
  const hooksDir = path$3.join(basedir, "hooks");
120729
120735
  const taggedHookFiles = await listTaggedFiles(hooksDir, tag);
120730
- const { HookSchema: HookSchema2 } = await import("./index-Ctx7nEpR.js");
120736
+ const { HookSchema: HookSchema2 } = await import("./index-9aIXU-9S.js");
120731
120737
  await Promise.all(taggedHookFiles.map(async (hookFile) => {
120732
120738
  const hook = await readJSON(path$3.join(hooksDir, hookFile), HookSchema2);
120733
120739
  if (hook == null ? void 0 : hook.token) {
@@ -121154,8 +121160,8 @@ function requireGetVercelOidcToken() {
121154
121160
  }
121155
121161
  try {
121156
121162
  const [{ getTokenPayload, isExpired }, { refreshToken }] = await Promise.all([
121157
- await import("./token-util-u3-O6-cJ.js").then((n) => n.t),
121158
- await import("./token-B9AfalZB.js").then((n) => n.t)
121163
+ await import("./token-util-0IzeGP3A.js").then((n) => n.t),
121164
+ await import("./token-Csl_4rgO.js").then((n) => n.t)
121159
121165
  ]);
121160
121166
  if (!token || isExpired(getTokenPayload(token), options == null ? void 0 : options.expirationBufferMs)) {
121161
121167
  await refreshToken(options);
@@ -121880,7 +121886,7 @@ function httpClientSpanAttributes(args) {
121880
121886
  };
121881
121887
  }
121882
121888
  async function instrumentedFetch(opts) {
121883
- const { method, url: url2, headers: headers2, body: body2, dispatcher: dispatcher2, peerService = "workflow-server", timeoutMs = REQUEST_TIMEOUT_MS, signal: callerSignal, injectTraceContext = true, cacheBust = true, logLabel, buildError, onTransportOutcome } = opts;
121889
+ const { method, url: url2, headers: headers2, body: body2, dispatcher: dispatcher2, peerService = "workflow-server", timeoutMs = REQUEST_TIMEOUT_MS, signal: callerSignal, injectTraceContext = true, cacheBust = true, logLabel, buildError, onTransportOutcome, deferTransportSuccessUntilBody = false } = opts;
121884
121890
  const label = logLabel ?? url2;
121885
121891
  return trace(`http ${method}`, { kind: await getSpanKind("CLIENT") }, async (span) => {
121886
121892
  var _a3, _b2, _c;
@@ -121929,18 +121935,31 @@ async function instrumentedFetch(opts) {
121929
121935
  throw error2;
121930
121936
  }
121931
121937
  const ms2 = Date.now() - start2;
121932
- onTransportOutcome == null ? void 0 : onTransportOutcome();
121938
+ if (!deferTransportSuccessUntilBody)
121939
+ onTransportOutcome == null ? void 0 : onTransportOutcome();
121933
121940
  httpLog(method, label, response2, ms2);
121934
121941
  span == null ? void 0 : span.setAttributes({ ...HttpResponseStatusCode(response2.status) });
121935
121942
  if (!response2.ok) {
121936
121943
  span == null ? void 0 : span.setAttributes({ ...ErrorType(`HTTP ${response2.status}`) });
121937
121944
  logCurlRepro(method, url2, headers2);
121938
121945
  if (buildError) {
121939
- const error3 = await buildError(response2);
121946
+ let error3;
121947
+ try {
121948
+ error3 = await buildError(response2);
121949
+ } catch (cause) {
121950
+ if (deferTransportSuccessUntilBody) {
121951
+ onTransportOutcome == null ? void 0 : onTransportOutcome(cause);
121952
+ }
121953
+ throw cause;
121954
+ }
121955
+ if (deferTransportSuccessUntilBody)
121956
+ onTransportOutcome == null ? void 0 : onTransportOutcome();
121940
121957
  (_b2 = span == null ? void 0 : span.recordException) == null ? void 0 : _b2.call(span, error3);
121941
121958
  throw error3;
121942
121959
  }
121943
121960
  const text2 = await response2.text().catch(() => "");
121961
+ if (deferTransportSuccessUntilBody)
121962
+ onTransportOutcome == null ? void 0 : onTransportOutcome();
121944
121963
  const error2 = errorForResponse(response2.status, `${method} ${label} -> HTTP ${response2.status}: ${response2.statusText}${text2 ? ` ${text2}` : ""}${formatVercelDiagnostics(response2.headers)}`, {
121945
121964
  url: url2,
121946
121965
  retryAfter: parseRetryAfter(response2.headers.get("Retry-After"))
@@ -126642,7 +126661,7 @@ var QueueClient = class {
126642
126661
  setApi(this, new ApiClient({ ...options, region }));
126643
126662
  }
126644
126663
  };
126645
- const version = "4.7.1";
126664
+ const version = "4.7.2";
126646
126665
  const IDEMPOTENT_METHODS = /* @__PURE__ */ new Set(["GET", "HEAD"]);
126647
126666
  const MAX_BODY_PARSE_RETRIES = 2;
126648
126667
  const BODY_PARSE_RETRY_BASE_MS = 100;
@@ -127144,17 +127163,30 @@ function createQueue$1(config2) {
127144
127163
  const ResolveLatestDeploymentResponseSchema = object$1({
127145
127164
  id: string$3()
127146
127165
  });
127166
+ async function resolveDeploymentIdentityToken(config2) {
127167
+ if (config2 == null ? void 0 : config2.token)
127168
+ return config2.token;
127169
+ if (process.env.VERCEL === "1") {
127170
+ const oidcToken = await distExports.getVercelOidcToken().catch(() => null);
127171
+ if (oidcToken)
127172
+ return oidcToken;
127173
+ }
127174
+ return resolveVercelApiToken(config2);
127175
+ }
127147
127176
  function createResolveLatestDeploymentId(config2) {
127148
127177
  return async function resolveLatestDeploymentId() {
127178
+ var _a3;
127149
127179
  const currentDeploymentId = process.env.VERCEL_DEPLOYMENT_ID;
127150
127180
  if (!currentDeploymentId) {
127151
127181
  throw new Error("Cannot resolve latest deployment: VERCEL_DEPLOYMENT_ID environment variable is not set");
127152
127182
  }
127153
- const token = await resolveVercelApiToken(config2);
127183
+ const token = await resolveDeploymentIdentityToken(config2);
127154
127184
  if (!token) {
127155
127185
  throw new Error("Cannot resolve latest deployment: no OIDC token or VERCEL_TOKEN available");
127156
127186
  }
127157
- const url2 = `https://api.vercel.com/v1/workflow/resolve-latest-deployment/${encodeURIComponent(currentDeploymentId)}`;
127187
+ const teamId = (_a3 = config2 == null ? void 0 : config2.projectConfig) == null ? void 0 : _a3.teamId;
127188
+ const query = teamId ? `?${new URLSearchParams({ teamId })}` : "";
127189
+ const url2 = `https://api.vercel.com/v1/workflow/resolve-latest-deployment/${encodeURIComponent(currentDeploymentId)}${query}`;
127158
127190
  const response2 = await instrumentedFetch({
127159
127191
  method: "GET",
127160
127192
  url: url2,
@@ -127171,7 +127203,8 @@ function createResolveLatestDeploymentId(config2) {
127171
127203
  } catch {
127172
127204
  body2 = "<unable to read response body>";
127173
127205
  }
127174
- return new Error(`Failed to resolve latest deployment for ${currentDeploymentId}: HTTP ${res.status} ${res.statusText}${body2 ? ` ${body2}` : ""}`);
127206
+ const hint = res.status === 404 ? ". The deployment exists but was not visible to the identity this request authenticated as, which means the request resolved to a different team. Set the World's `projectConfig.teamId` to scope it explicitly." : "";
127207
+ return new Error(`Failed to resolve latest deployment for ${currentDeploymentId}: HTTP ${res.status} ${res.statusText}${body2 ? ` — ${body2}` : ""}${hint}`);
127175
127208
  }
127176
127209
  });
127177
127210
  const data = await response2.json();
@@ -127437,7 +127470,7 @@ async function* readerToIterator(reader) {
127437
127470
  }
127438
127471
  async function fetchV4(url2, init2, config2, opName) {
127439
127472
  const dispatcher2 = getEventsDispatcher(config2);
127440
- return instrumentedFetch({
127473
+ const response2 = await instrumentedFetch({
127441
127474
  method: init2.method,
127442
127475
  url: url2,
127443
127476
  headers: init2.headers,
@@ -127448,9 +127481,40 @@ async function fetchV4(url2, init2, config2, opName) {
127448
127481
  // service indefinitely, so without this every request routed onto it fails
127449
127482
  // until the compute instance is recycled — see noteEventsTransportOutcome.
127450
127483
  onTransportOutcome: (error2) => noteEventsTransportOutcome(dispatcher2, error2),
127484
+ deferTransportSuccessUntilBody: true,
127451
127485
  timeoutMs: null,
127452
127486
  logLabel: opName,
127453
- buildError: async (response2) => errorFromV4Response(response2.status, headersToRecord(response2.headers), await response2.text(), opName, url2)
127487
+ buildError: async (response3) => errorFromV4Response(response3.status, headersToRecord(response3.headers), await response3.text(), opName, url2)
127488
+ });
127489
+ if (!response2.body) {
127490
+ noteEventsTransportOutcome(dispatcher2);
127491
+ return response2;
127492
+ }
127493
+ const reader = response2.body.getReader();
127494
+ const body2 = new ReadableStream({
127495
+ async pull(controller) {
127496
+ try {
127497
+ const chunk = await reader.read();
127498
+ if (chunk.done) {
127499
+ noteEventsTransportOutcome(dispatcher2);
127500
+ controller.close();
127501
+ } else {
127502
+ controller.enqueue(chunk.value);
127503
+ }
127504
+ } catch (cause) {
127505
+ noteEventsTransportOutcome(dispatcher2, cause);
127506
+ controller.error(cause);
127507
+ }
127508
+ },
127509
+ cancel(reason) {
127510
+ noteEventsTransportOutcome(dispatcher2);
127511
+ return reader.cancel(reason);
127512
+ }
127513
+ });
127514
+ return new Response(body2, {
127515
+ status: response2.status,
127516
+ statusText: response2.statusText,
127517
+ headers: response2.headers
127454
127518
  });
127455
127519
  }
127456
127520
  function headersToRecord(headers2) {
@@ -155798,7 +155862,7 @@ const route4 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProper
155798
155862
  __proto__: null,
155799
155863
  loader
155800
155864
  }, Symbol.toStringTag, { value: "Module" }));
155801
- const serverManifest = { "entry": { "module": "/assets/entry.client-C_C46bD6.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-BxnaECGo.js", "imports": ["/assets/index-BsV8i_Jn.js", "/assets/mermaid-3ZIDBTTL-Bp6ZST9_.js"], "css": ["/assets/root-BOS11TzD.css", "/assets/mermaid-3ZIDBTTL-yyHEMZs4.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-Blj6TeEE.js", "imports": ["/assets/index-BsV8i_Jn.js", "/assets/workflow-graph-viewer-C6PWoIIU.js", "/assets/mermaid-3ZIDBTTL-Bp6ZST9_.js", "/assets/index-DZSXezpI.js"], "css": ["/assets/workflow-graph-viewer-yls6qlc0.css", "/assets/mermaid-3ZIDBTTL-yyHEMZs4.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-1KdCfmI4.js", "imports": ["/assets/index-BsV8i_Jn.js", "/assets/workflow-graph-viewer-C6PWoIIU.js", "/assets/mermaid-3ZIDBTTL-Bp6ZST9_.js", "/assets/encryption-BRhjWsZh.js", "/assets/index-DZSXezpI.js"], "css": ["/assets/workflow-graph-viewer-yls6qlc0.css", "/assets/mermaid-3ZIDBTTL-yyHEMZs4.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-d91343fe.js", "version": "d91343fe", "sri": void 0 };
155865
+ const serverManifest = { "entry": { "module": "/assets/entry.client-C_C46bD6.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-BxnaECGo.js", "imports": ["/assets/index-BsV8i_Jn.js", "/assets/mermaid-3ZIDBTTL-Bp6ZST9_.js"], "css": ["/assets/root-BOS11TzD.css", "/assets/mermaid-3ZIDBTTL-yyHEMZs4.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-Blj6TeEE.js", "imports": ["/assets/index-BsV8i_Jn.js", "/assets/workflow-graph-viewer-C6PWoIIU.js", "/assets/mermaid-3ZIDBTTL-Bp6ZST9_.js", "/assets/index-DZSXezpI.js"], "css": ["/assets/workflow-graph-viewer-yls6qlc0.css", "/assets/mermaid-3ZIDBTTL-yyHEMZs4.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-DivTczoC.js", "imports": ["/assets/index-BsV8i_Jn.js", "/assets/workflow-graph-viewer-C6PWoIIU.js", "/assets/mermaid-3ZIDBTTL-Bp6ZST9_.js", "/assets/encryption-BRhjWsZh.js", "/assets/index-DZSXezpI.js"], "css": ["/assets/workflow-graph-viewer-yls6qlc0.css", "/assets/mermaid-3ZIDBTTL-yyHEMZs4.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-7bf3847b.js", "version": "7bf3847b", "sri": void 0 };
155802
155866
  const assetsBuildDirectory = "build/client";
155803
155867
  const basename = "/";
155804
155868
  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 globalThis.require === "undefined") {
3
3
  globalThis.require = __wkfCreateRequire(import.meta.url);
4
4
  }
5
- import { g as getDefaultExportFromCjs } from "./app-eQjjf4RE.js";
6
- import { a5 as requireTokenError, a4 as requireTokenUtil } from "./server-build-BFktO0pM.js";
5
+ import { g as getDefaultExportFromCjs } from "./app-RN9KG5Qq.js";
6
+ import { a5 as requireTokenError, a4 as requireTokenUtil } from "./server-build-B1ehSvPo.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 globalThis.require === "undefined") {
3
3
  globalThis.require = __wkfCreateRequire(import.meta.url);
4
4
  }
5
- import { g as getDefaultExportFromCjs } from "./app-eQjjf4RE.js";
6
- import { a4 as requireTokenUtil } from "./server-build-BFktO0pM.js";
5
+ import { g as getDefaultExportFromCjs } from "./app-RN9KG5Qq.js";
6
+ import { a4 as requireTokenUtil } from "./server-build-B1ehSvPo.js";
7
7
  function _mergeNamespaces(n, m) {
8
8
  for (var i = 0; i < m.length; i++) {
9
9
  const e = m[i];
@@ -2,7 +2,7 @@ import { createRequire as __wkfCreateRequire } from "node:module";
2
2
  if (typeof globalThis.require === "undefined") {
3
3
  globalThis.require = __wkfCreateRequire(import.meta.url);
4
4
  }
5
- import { n } from "./assets/app-eQjjf4RE.js";
5
+ import { n } from "./assets/app-RN9KG5Qq.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": "4.1.21",
4
+ "version": "4.1.22",
5
5
  "type": "module",
6
6
  "private": false,
7
7
  "files": [
@@ -71,12 +71,12 @@
71
71
  "vite": "^6",
72
72
  "vitest": "^3",
73
73
  "jsdom": "^26",
74
- "@workflow/core": "4.8.5",
74
+ "@workflow/core": "4.8.6",
75
75
  "@workflow/errors": "4.2.1",
76
76
  "@workflow/utils": "4.1.4",
77
- "@workflow/web-shared": "4.1.21",
77
+ "@workflow/web-shared": "4.1.22",
78
78
  "@workflow/world": "4.5.0",
79
- "@workflow/world-vercel": "4.7.1"
79
+ "@workflow/world-vercel": "4.7.2"
80
80
  },
81
81
  "scripts": {
82
82
  "dev": "react-router dev",