@workflow/web 5.0.0-beta.21 → 5.0.0-beta.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.
Files changed (24) hide show
  1. package/build/client/assets/{highlighted-body-B3W2YXNL-LmACipCR.js → highlighted-body-B3W2YXNL-pQbU-Oll.js} +1 -1
  2. package/build/client/assets/{home-B-QPEXVb.js → home-Dz43xne_.js} +2 -2
  3. package/build/client/assets/manifest-3f730581.js +1 -0
  4. package/build/client/assets/{mermaid-3ZIDBTTL-DndzaIEl.js → mermaid-3ZIDBTTL-C_xy8SxZ.js} +318 -928
  5. package/build/client/assets/root-61NXpLSs.css +1 -0
  6. package/build/client/assets/{root--Sg25-Lb.js → root-BlFmfRST.js} +1 -1
  7. package/build/client/assets/run-detail-CWoGxu_0.css +1 -0
  8. package/build/client/assets/{run-detail-Djwnox1v.js → run-detail-T4JlTgHs.js} +81 -11
  9. package/build/client/assets/server-build-B8TvrR_Z.css +1 -0
  10. package/build/client/assets/{workflow-graph-viewer-j7J3_oSH.js → workflow-graph-viewer-BlDVZ5AU.js} +1 -1
  11. package/build/client/assets/{zstd-browser-decoder-DGiXPDxR.js → zstd-browser-decoder-Biv4GTD9.js} +1 -1
  12. package/build/server/assets/{app-BKhDtt1l.js → app-DN3f8amN.js} +1 -1
  13. package/build/server/assets/{highlighted-body-B3W2YXNL-Bbohhhvu.js → highlighted-body-B3W2YXNL-Bn21Jt9E.js} +2 -2
  14. package/build/server/assets/{index-CCVnYBh5.js → index-BAzmSj9V.js} +3 -3
  15. package/build/server/assets/{mermaid-3ZIDBTTL-GUOonG4P.js → mermaid-3ZIDBTTL-BDx4F1TF.js} +2 -2
  16. package/build/server/assets/{server-build-Bho0V9At.js → server-build-CbSfuKyC.js} +594 -1112
  17. package/build/server/assets/{token-DWlFlsmX.js → token-D-3FNfzy.js} +2 -2
  18. package/build/server/assets/{token-util-YVFsN8wA.js → token-util-6H5PWMXy.js} +2 -2
  19. package/build/server/assets/{zstd-browser-decoder-Bmj-2oQU.js → zstd-browser-decoder-C5Jfor_W.js} +2 -2
  20. package/build/server/index.js +1 -1
  21. package/package.json +5 -5
  22. package/build/client/assets/manifest-225d97da.js +0 -1
  23. package/build/client/assets/root-1hd8ZXAx.css +0 -1
  24. package/build/client/assets/server-build-DixvNjKe.css +0 -1
@@ -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, _d, _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, getEncryptionKeyLazily_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-BKhDtt1l.js";
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-DN3f8amN.js";
18
18
  import require$$0$4, { PassThrough } from "node:stream";
19
19
  import require$$0 from "util";
20
20
  import require$$1 from "crypto";
@@ -25755,7 +25755,7 @@ const arrow = (options, deps) => ({
25755
25755
  options: [options, deps]
25756
25756
  });
25757
25757
  var NAME$2 = "Arrow";
25758
- var Arrow$4 = reactExports.forwardRef((props, forwardedRef) => {
25758
+ var Arrow$3 = reactExports.forwardRef((props, forwardedRef) => {
25759
25759
  const { children: children2, width = 10, height = 5, ...arrowProps } = props;
25760
25760
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
25761
25761
  Primitive$2.svg,
@@ -25770,8 +25770,8 @@ var Arrow$4 = reactExports.forwardRef((props, forwardedRef) => {
25770
25770
  }
25771
25771
  );
25772
25772
  });
25773
- Arrow$4.displayName = NAME$2;
25774
- var Root$8 = Arrow$4;
25773
+ Arrow$3.displayName = NAME$2;
25774
+ var Root$8 = Arrow$3;
25775
25775
  function useSize$1(element2) {
25776
25776
  const [size2, setSize] = reactExports.useState(void 0);
25777
25777
  useLayoutEffect2$1(() => {
@@ -26076,7 +26076,7 @@ function getSideAndAlignFromPlacement$1(placement) {
26076
26076
  var Root2$5 = Popper$1;
26077
26077
  var Anchor$1 = PopperAnchor$1;
26078
26078
  var Content$4 = PopperContent$1;
26079
- var Arrow$3 = PopperArrow$1;
26079
+ var Arrow$2 = PopperArrow$1;
26080
26080
  var PORTAL_NAME$9 = "Portal";
26081
26081
  var Portal$7 = reactExports.forwardRef((props, forwardedRef) => {
26082
26082
  var _a3;
@@ -26653,7 +26653,7 @@ var TooltipArrow = reactExports.forwardRef(
26653
26653
  ARROW_NAME$4,
26654
26654
  __scopeTooltip
26655
26655
  );
26656
- return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ jsxRuntimeExports.jsx(Arrow$3, { ...popperScope, ...arrowProps, ref: forwardedRef });
26656
+ return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ jsxRuntimeExports.jsx(Arrow$2, { ...popperScope, ...arrowProps, ref: forwardedRef });
26657
26657
  }
26658
26658
  );
26659
26659
  TooltipArrow.displayName = ARROW_NAME$4;
@@ -26960,44 +26960,44 @@ const getGroupIdForArbitraryProperty = (className) => className.slice(1, -1).ind
26960
26960
  })();
26961
26961
  const createClassMap = (config2) => {
26962
26962
  const {
26963
- theme: theme3,
26963
+ theme,
26964
26964
  classGroups
26965
26965
  } = config2;
26966
- return processClassGroups(classGroups, theme3);
26966
+ return processClassGroups(classGroups, theme);
26967
26967
  };
26968
- const processClassGroups = (classGroups, theme3) => {
26968
+ const processClassGroups = (classGroups, theme) => {
26969
26969
  const classMap = createClassPartObject();
26970
26970
  for (const classGroupId in classGroups) {
26971
26971
  const group = classGroups[classGroupId];
26972
- processClassesRecursively(group, classMap, classGroupId, theme3);
26972
+ processClassesRecursively(group, classMap, classGroupId, theme);
26973
26973
  }
26974
26974
  return classMap;
26975
26975
  };
26976
- const processClassesRecursively = (classGroup, classPartObject, classGroupId, theme3) => {
26976
+ const processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {
26977
26977
  const len = classGroup.length;
26978
26978
  for (let i = 0; i < len; i++) {
26979
26979
  const classDefinition = classGroup[i];
26980
- processClassDefinition(classDefinition, classPartObject, classGroupId, theme3);
26980
+ processClassDefinition(classDefinition, classPartObject, classGroupId, theme);
26981
26981
  }
26982
26982
  };
26983
- const processClassDefinition = (classDefinition, classPartObject, classGroupId, theme3) => {
26983
+ const processClassDefinition = (classDefinition, classPartObject, classGroupId, theme) => {
26984
26984
  if (typeof classDefinition === "string") {
26985
26985
  processStringDefinition(classDefinition, classPartObject, classGroupId);
26986
26986
  return;
26987
26987
  }
26988
26988
  if (typeof classDefinition === "function") {
26989
- processFunctionDefinition(classDefinition, classPartObject, classGroupId, theme3);
26989
+ processFunctionDefinition(classDefinition, classPartObject, classGroupId, theme);
26990
26990
  return;
26991
26991
  }
26992
- processObjectDefinition(classDefinition, classPartObject, classGroupId, theme3);
26992
+ processObjectDefinition(classDefinition, classPartObject, classGroupId, theme);
26993
26993
  };
26994
26994
  const processStringDefinition = (classDefinition, classPartObject, classGroupId) => {
26995
26995
  const classPartObjectToEdit = classDefinition === "" ? classPartObject : getPart(classPartObject, classDefinition);
26996
26996
  classPartObjectToEdit.classGroupId = classGroupId;
26997
26997
  };
26998
- const processFunctionDefinition = (classDefinition, classPartObject, classGroupId, theme3) => {
26998
+ const processFunctionDefinition = (classDefinition, classPartObject, classGroupId, theme) => {
26999
26999
  if (isThemeGetter(classDefinition)) {
27000
- processClassesRecursively(classDefinition(theme3), classPartObject, classGroupId, theme3);
27000
+ processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);
27001
27001
  return;
27002
27002
  }
27003
27003
  if (classPartObject.validators === null) {
@@ -27005,12 +27005,12 @@ const processFunctionDefinition = (classDefinition, classPartObject, classGroupI
27005
27005
  }
27006
27006
  classPartObject.validators.push(createClassValidatorObject(classGroupId, classDefinition));
27007
27007
  };
27008
- const processObjectDefinition = (classDefinition, classPartObject, classGroupId, theme3) => {
27008
+ const processObjectDefinition = (classDefinition, classPartObject, classGroupId, theme) => {
27009
27009
  const entries = Object.entries(classDefinition);
27010
27010
  const len = entries.length;
27011
27011
  for (let i = 0; i < len; i++) {
27012
27012
  const [key, value] = entries[i];
27013
- processClassesRecursively(value, getPart(classPartObject, key), classGroupId, theme3);
27013
+ processClassesRecursively(value, getPart(classPartObject, key), classGroupId, theme);
27014
27014
  }
27015
27015
  };
27016
27016
  const getPart = (classPartObject, path2) => {
@@ -27290,7 +27290,7 @@ const createTailwindMerge = (createConfigFirst, ...createConfigRest) => {
27290
27290
  };
27291
27291
  const fallbackThemeArr = [];
27292
27292
  const fromTheme = (key) => {
27293
- const themeGetter = (theme3) => theme3[key] || fallbackThemeArr;
27293
+ const themeGetter = (theme) => theme[key] || fallbackThemeArr;
27294
27294
  themeGetter.isThemeGetter = true;
27295
27295
  return themeGetter;
27296
27296
  };
@@ -49103,6 +49103,7 @@ const EventSchema = AllEventsSchema.and(object$1({
49103
49103
  runId: string$3(),
49104
49104
  eventId: string$3(),
49105
49105
  createdAt: date$2(),
49106
+ occurredAt: date$2().optional(),
49106
49107
  specVersion: number$3().optional()
49107
49108
  }));
49108
49109
  const HookSchema = object$1({
@@ -49797,7 +49798,7 @@ function getWebRevivers() {
49797
49798
  URLSearchParams: (value) => new URLSearchParams(value === "." ? "" : value),
49798
49799
  // Web-specific overrides for class instances.
49799
49800
  // Create objects with a dynamically-named constructor so that
49800
- // react-inspector shows the class name (it reads constructor.name).
49801
+ // the data inspector shows the class name (it reads constructor.name).
49801
49802
  Class: (value) => `<class:${extractClassName(value.classId)}>`,
49802
49803
  Instance: (value) => {
49803
49804
  const runRef = serializedInstanceToRef(value);
@@ -49838,7 +49839,7 @@ function createEncryptedMarker(data) {
49838
49839
  });
49839
49840
  return obj;
49840
49841
  }
49841
- function isEncryptedMarker(value) {
49842
+ function isEncryptedMarker$1(value) {
49842
49843
  var _a3;
49843
49844
  return value !== null && typeof value === "object" && ((_a3 = value.constructor) == null ? void 0 : _a3.name) === ENCRYPTED_DISPLAY_NAME;
49844
49845
  }
@@ -49883,12 +49884,12 @@ function replaceEncryptedAndExpiredWithMarkers(resource) {
49883
49884
  async function hydrateResourceIOWithKey(resource, key) {
49884
49885
  const { hydrateDataWithKey: hydrateDataWithKey2 } = await Promise.resolve().then(() => serializationFormat);
49885
49886
  const { importKey: importKey2 } = await Promise.resolve().then(() => encryption);
49886
- const { ensureZstdDecoderRegistered } = await import("./zstd-browser-decoder-Bmj-2oQU.js");
49887
+ const { ensureZstdDecoderRegistered } = await import("./zstd-browser-decoder-C5Jfor_W.js");
49887
49888
  ensureZstdDecoderRegistered();
49888
49889
  const cryptoKey = await importKey2(key);
49889
49890
  const revivers = getRevivers();
49890
49891
  async function decryptField(value, rev, k2) {
49891
- if (isEncryptedMarker(value)) {
49892
+ if (isEncryptedMarker$1(value)) {
49892
49893
  const raw2 = value.__encryptedData;
49893
49894
  return hydrateDataWithKey2(raw2, rev, k2);
49894
49895
  }
@@ -49922,7 +49923,7 @@ function hasEncryptedFields(resource) {
49922
49923
  return false;
49923
49924
  const r2 = resource;
49924
49925
  for (const key of ["input", "output", "metadata", "error"]) {
49925
- if (isEncryptedMarker(r2[key]))
49926
+ if (isEncryptedMarker$1(r2[key]))
49926
49927
  return true;
49927
49928
  }
49928
49929
  if (r2.eventData && typeof r2.eventData === "object") {
@@ -49930,7 +49931,7 @@ function hasEncryptedFields(resource) {
49930
49931
  const refKeys = EVENT_DATA_REF_FIELDS[eventType] ?? [];
49931
49932
  const ed = r2.eventData;
49932
49933
  for (const key of refKeys) {
49933
- if (key in ed && isEncryptedMarker(ed[key]))
49934
+ if (key in ed && isEncryptedMarker$1(ed[key]))
49934
49935
  return true;
49935
49936
  }
49936
49937
  }
@@ -50767,7 +50768,7 @@ const Toaster$1 = /* @__PURE__ */ ReactExports.forwardRef(function Toaster(props
50767
50768
  const { id: id2, invert, position: position2 = "bottom-right", hotkey = [
50768
50769
  "altKey",
50769
50770
  "KeyT"
50770
- ], expand: expand2, closeButton, className, offset: offset2, mobileOffset, theme: theme3 = "light", richColors, duration: duration2, style: style2, visibleToasts = VISIBLE_TOASTS_AMOUNT, toastOptions, dir = getDocumentDirection(), gap = GAP, icons, containerAriaLabel = "Notifications" } = props;
50771
+ ], expand: expand2, closeButton, className, offset: offset2, mobileOffset, theme = "light", richColors, duration: duration2, style: style2, visibleToasts = VISIBLE_TOASTS_AMOUNT, toastOptions, dir = getDocumentDirection(), gap = GAP, icons, containerAriaLabel = "Notifications" } = props;
50771
50772
  const [toasts, setToasts] = ReactExports.useState([]);
50772
50773
  const filteredToasts = ReactExports.useMemo(() => {
50773
50774
  if (id2) {
@@ -50789,7 +50790,7 @@ const Toaster$1 = /* @__PURE__ */ ReactExports.forwardRef(function Toaster(props
50789
50790
  const [heights, setHeights] = ReactExports.useState([]);
50790
50791
  const [expanded2, setExpanded] = ReactExports.useState(false);
50791
50792
  const [interacting, setInteracting] = ReactExports.useState(false);
50792
- const [actualTheme, setActualTheme] = ReactExports.useState(theme3 !== "system" ? theme3 : typeof window !== "undefined" ? window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light" : "light");
50793
+ const [actualTheme, setActualTheme] = ReactExports.useState(theme !== "system" ? theme : typeof window !== "undefined" ? window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light" : "light");
50793
50794
  const listRef = ReactExports.useRef(null);
50794
50795
  const hotkeyLabel = hotkey.join("+").replace(/Key/g, "").replace(/Digit/g, "");
50795
50796
  const lastFocusedElementRef = ReactExports.useRef(null);
@@ -50840,11 +50841,11 @@ const Toaster$1 = /* @__PURE__ */ ReactExports.forwardRef(function Toaster(props
50840
50841
  toasts
50841
50842
  ]);
50842
50843
  ReactExports.useEffect(() => {
50843
- if (theme3 !== "system") {
50844
- setActualTheme(theme3);
50844
+ if (theme !== "system") {
50845
+ setActualTheme(theme);
50845
50846
  return;
50846
50847
  }
50847
- if (theme3 === "system") {
50848
+ if (theme === "system") {
50848
50849
  if (window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches) {
50849
50850
  setActualTheme("dark");
50850
50851
  } else {
@@ -50875,7 +50876,7 @@ const Toaster$1 = /* @__PURE__ */ ReactExports.forwardRef(function Toaster(props
50875
50876
  });
50876
50877
  }
50877
50878
  }, [
50878
- theme3
50879
+ theme
50879
50880
  ]);
50880
50881
  ReactExports.useEffect(() => {
50881
50882
  if (toasts.length <= 1) {
@@ -51127,792 +51128,6 @@ const buttonVariants$1 = cva([
51127
51128
  function Button$1({ className, variant, size: size2, type = "button", ...props }) {
51128
51129
  return jsxRuntimeExports.jsx("button", { type, className: cn$4(buttonVariants$1({ variant, size: size2, className })), ...props });
51129
51130
  }
51130
- var __create = Object.create;
51131
- var __defProp2 = Object.defineProperty;
51132
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
51133
- var __getOwnPropNames = Object.getOwnPropertyNames;
51134
- var __getProtoOf2 = Object.getPrototypeOf;
51135
- var __hasOwnProp = Object.prototype.hasOwnProperty;
51136
- var __commonJS = (cb, mod) => function __require() {
51137
- return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
51138
- };
51139
- var __export = (target2, all2) => {
51140
- for (var name2 in all2)
51141
- __defProp2(target2, name2, { get: all2[name2], enumerable: true });
51142
- };
51143
- var __copyProps = (to2, from, except, desc) => {
51144
- if (from && typeof from === "object" || typeof from === "function") {
51145
- for (let key of __getOwnPropNames(from))
51146
- if (!__hasOwnProp.call(to2, key) && key !== except)
51147
- __defProp2(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
51148
- }
51149
- return to2;
51150
- };
51151
- var __toESM = (mod, isNodeMode, target2) => (target2 = mod != null ? __create(__getProtoOf2(mod)) : {}, __copyProps(
51152
- // If the importer is in node compatibility mode or this is not an ESM
51153
- // file that has been converted to a CommonJS file using a Babel-
51154
- // compatible transform (i.e. "__esModule" has not been set), then set
51155
- // "default" to the CommonJS "module.exports" for node compatibility.
51156
- __defProp2(target2, "default", { value: mod, enumerable: true }),
51157
- mod
51158
- ));
51159
- var require_is_object = __commonJS({
51160
- "node_modules/is-object/index.js"(exports$1, module) {
51161
- module.exports = function isObject2(x2) {
51162
- return typeof x2 === "object" && x2 !== null;
51163
- };
51164
- }
51165
- });
51166
- var require_is_window = __commonJS({
51167
- "node_modules/is-window/index.js"(exports$1, module) {
51168
- module.exports = function(obj) {
51169
- if (obj == null) {
51170
- return false;
51171
- }
51172
- var o = Object(obj);
51173
- return o === o.window;
51174
- };
51175
- }
51176
- });
51177
- var require_is_dom = __commonJS({
51178
- "node_modules/is-dom/index.js"(exports$1, module) {
51179
- var isObject2 = require_is_object();
51180
- var isWindow = require_is_window();
51181
- function isNode2(val) {
51182
- if (!isObject2(val) || !isWindow(window) || typeof window.Node !== "function") {
51183
- return false;
51184
- }
51185
- return typeof val.nodeType === "number" && typeof val.nodeName === "string";
51186
- }
51187
- module.exports = isNode2;
51188
- }
51189
- });
51190
- var themes_exports = {};
51191
- __export(themes_exports, {
51192
- chromeDark: () => theme,
51193
- chromeLight: () => theme2
51194
- });
51195
- var theme = {
51196
- BASE_FONT_FAMILY: "Menlo, monospace",
51197
- BASE_FONT_SIZE: "11px",
51198
- BASE_LINE_HEIGHT: 1.2,
51199
- BASE_BACKGROUND_COLOR: "rgb(36, 36, 36)",
51200
- BASE_COLOR: "rgb(213, 213, 213)",
51201
- OBJECT_PREVIEW_ARRAY_MAX_PROPERTIES: 10,
51202
- OBJECT_PREVIEW_OBJECT_MAX_PROPERTIES: 5,
51203
- OBJECT_NAME_COLOR: "rgb(227, 110, 236)",
51204
- OBJECT_VALUE_NULL_COLOR: "rgb(127, 127, 127)",
51205
- OBJECT_VALUE_UNDEFINED_COLOR: "rgb(127, 127, 127)",
51206
- OBJECT_VALUE_REGEXP_COLOR: "rgb(233, 63, 59)",
51207
- OBJECT_VALUE_STRING_COLOR: "rgb(233, 63, 59)",
51208
- OBJECT_VALUE_SYMBOL_COLOR: "rgb(233, 63, 59)",
51209
- OBJECT_VALUE_NUMBER_COLOR: "hsl(252, 100%, 75%)",
51210
- OBJECT_VALUE_BOOLEAN_COLOR: "hsl(252, 100%, 75%)",
51211
- OBJECT_VALUE_FUNCTION_PREFIX_COLOR: "rgb(85, 106, 242)",
51212
- HTML_TAG_COLOR: "rgb(93, 176, 215)",
51213
- HTML_TAGNAME_COLOR: "rgb(93, 176, 215)",
51214
- HTML_TAGNAME_TEXT_TRANSFORM: "lowercase",
51215
- HTML_ATTRIBUTE_NAME_COLOR: "rgb(155, 187, 220)",
51216
- HTML_ATTRIBUTE_VALUE_COLOR: "rgb(242, 151, 102)",
51217
- HTML_COMMENT_COLOR: "rgb(137, 137, 137)",
51218
- HTML_DOCTYPE_COLOR: "rgb(192, 192, 192)",
51219
- ARROW_COLOR: "rgb(145, 145, 145)",
51220
- ARROW_MARGIN_RIGHT: 3,
51221
- ARROW_FONT_SIZE: 12,
51222
- ARROW_ANIMATION_DURATION: "0",
51223
- TREENODE_FONT_FAMILY: "Menlo, monospace",
51224
- TREENODE_FONT_SIZE: "11px",
51225
- TREENODE_LINE_HEIGHT: 1.2,
51226
- TREENODE_PADDING_LEFT: 12,
51227
- TABLE_BORDER_COLOR: "rgb(85, 85, 85)",
51228
- TABLE_TH_BACKGROUND_COLOR: "rgb(44, 44, 44)",
51229
- TABLE_TH_HOVER_COLOR: "rgb(48, 48, 48)",
51230
- TABLE_SORT_ICON_COLOR: "black",
51231
- //'rgb(48, 57, 66)',
51232
- TABLE_DATA_BACKGROUND_IMAGE: "linear-gradient(rgba(255, 255, 255, 0), rgba(255, 255, 255, 0) 50%, rgba(51, 139, 255, 0.0980392) 50%, rgba(51, 139, 255, 0.0980392))",
51233
- TABLE_DATA_BACKGROUND_SIZE: "128px 32px"
51234
- };
51235
- var theme2 = {
51236
- BASE_FONT_FAMILY: "Menlo, monospace",
51237
- BASE_FONT_SIZE: "11px",
51238
- BASE_LINE_HEIGHT: 1.2,
51239
- BASE_BACKGROUND_COLOR: "white",
51240
- BASE_COLOR: "black",
51241
- OBJECT_PREVIEW_ARRAY_MAX_PROPERTIES: 10,
51242
- OBJECT_PREVIEW_OBJECT_MAX_PROPERTIES: 5,
51243
- OBJECT_NAME_COLOR: "rgb(136, 19, 145)",
51244
- OBJECT_VALUE_NULL_COLOR: "rgb(128, 128, 128)",
51245
- OBJECT_VALUE_UNDEFINED_COLOR: "rgb(128, 128, 128)",
51246
- OBJECT_VALUE_REGEXP_COLOR: "rgb(196, 26, 22)",
51247
- OBJECT_VALUE_STRING_COLOR: "rgb(196, 26, 22)",
51248
- OBJECT_VALUE_SYMBOL_COLOR: "rgb(196, 26, 22)",
51249
- OBJECT_VALUE_NUMBER_COLOR: "rgb(28, 0, 207)",
51250
- OBJECT_VALUE_BOOLEAN_COLOR: "rgb(28, 0, 207)",
51251
- OBJECT_VALUE_FUNCTION_PREFIX_COLOR: "rgb(13, 34, 170)",
51252
- HTML_TAG_COLOR: "rgb(168, 148, 166)",
51253
- HTML_TAGNAME_COLOR: "rgb(136, 18, 128)",
51254
- HTML_TAGNAME_TEXT_TRANSFORM: "lowercase",
51255
- HTML_ATTRIBUTE_NAME_COLOR: "rgb(153, 69, 0)",
51256
- HTML_ATTRIBUTE_VALUE_COLOR: "rgb(26, 26, 166)",
51257
- HTML_COMMENT_COLOR: "rgb(35, 110, 37)",
51258
- HTML_DOCTYPE_COLOR: "rgb(192, 192, 192)",
51259
- ARROW_COLOR: "#6e6e6e",
51260
- ARROW_MARGIN_RIGHT: 3,
51261
- ARROW_FONT_SIZE: 12,
51262
- ARROW_ANIMATION_DURATION: "0",
51263
- TREENODE_FONT_FAMILY: "Menlo, monospace",
51264
- TREENODE_FONT_SIZE: "11px",
51265
- TREENODE_LINE_HEIGHT: 1.2,
51266
- TREENODE_PADDING_LEFT: 12,
51267
- TABLE_BORDER_COLOR: "#aaa",
51268
- TABLE_TH_BACKGROUND_COLOR: "#eee",
51269
- TABLE_TH_HOVER_COLOR: "hsla(0, 0%, 90%, 1)",
51270
- TABLE_SORT_ICON_COLOR: "#6e6e6e",
51271
- TABLE_DATA_BACKGROUND_IMAGE: "linear-gradient(to bottom, white, white 50%, rgb(234, 243, 255) 50%, rgb(234, 243, 255))",
51272
- TABLE_DATA_BACKGROUND_SIZE: "128px 32px"
51273
- };
51274
- var ExpandedPathsContext = reactExports.createContext([{}, () => {
51275
- }]);
51276
- var unselectable = {
51277
- WebkitTouchCallout: "none",
51278
- WebkitUserSelect: "none",
51279
- KhtmlUserSelect: "none",
51280
- MozUserSelect: "none",
51281
- msUserSelect: "none",
51282
- OUserSelect: "none",
51283
- userSelect: "none"
51284
- };
51285
- var createTheme = (theme3) => ({
51286
- DOMNodePreview: {
51287
- htmlOpenTag: {
51288
- base: {
51289
- color: theme3.HTML_TAG_COLOR
51290
- },
51291
- tagName: {
51292
- color: theme3.HTML_TAGNAME_COLOR,
51293
- textTransform: theme3.HTML_TAGNAME_TEXT_TRANSFORM
51294
- },
51295
- htmlAttributeName: {
51296
- color: theme3.HTML_ATTRIBUTE_NAME_COLOR
51297
- },
51298
- htmlAttributeValue: {
51299
- color: theme3.HTML_ATTRIBUTE_VALUE_COLOR
51300
- }
51301
- },
51302
- htmlCloseTag: {
51303
- base: {
51304
- color: theme3.HTML_TAG_COLOR
51305
- },
51306
- offsetLeft: {
51307
- /* hack: offset placeholder */
51308
- marginLeft: -theme3.TREENODE_PADDING_LEFT
51309
- },
51310
- tagName: {
51311
- color: theme3.HTML_TAGNAME_COLOR,
51312
- textTransform: theme3.HTML_TAGNAME_TEXT_TRANSFORM
51313
- }
51314
- },
51315
- htmlComment: {
51316
- color: theme3.HTML_COMMENT_COLOR
51317
- },
51318
- htmlDoctype: {
51319
- color: theme3.HTML_DOCTYPE_COLOR
51320
- }
51321
- },
51322
- ObjectPreview: {
51323
- objectDescription: {
51324
- fontStyle: "italic"
51325
- },
51326
- preview: {
51327
- fontStyle: "italic"
51328
- },
51329
- arrayMaxProperties: theme3.OBJECT_PREVIEW_ARRAY_MAX_PROPERTIES,
51330
- objectMaxProperties: theme3.OBJECT_PREVIEW_OBJECT_MAX_PROPERTIES
51331
- },
51332
- ObjectName: {
51333
- base: {
51334
- color: theme3.OBJECT_NAME_COLOR
51335
- },
51336
- dimmed: {
51337
- opacity: 0.6
51338
- }
51339
- },
51340
- ObjectValue: {
51341
- objectValueNull: {
51342
- color: theme3.OBJECT_VALUE_NULL_COLOR
51343
- },
51344
- objectValueUndefined: {
51345
- color: theme3.OBJECT_VALUE_UNDEFINED_COLOR
51346
- },
51347
- objectValueRegExp: {
51348
- color: theme3.OBJECT_VALUE_REGEXP_COLOR
51349
- },
51350
- objectValueString: {
51351
- color: theme3.OBJECT_VALUE_STRING_COLOR
51352
- },
51353
- objectValueSymbol: {
51354
- color: theme3.OBJECT_VALUE_SYMBOL_COLOR
51355
- },
51356
- objectValueNumber: {
51357
- color: theme3.OBJECT_VALUE_NUMBER_COLOR
51358
- },
51359
- objectValueBoolean: {
51360
- color: theme3.OBJECT_VALUE_BOOLEAN_COLOR
51361
- },
51362
- objectValueFunctionPrefix: {
51363
- color: theme3.OBJECT_VALUE_FUNCTION_PREFIX_COLOR,
51364
- fontStyle: "italic"
51365
- },
51366
- objectValueFunctionName: {
51367
- fontStyle: "italic"
51368
- }
51369
- },
51370
- TreeView: {
51371
- treeViewOutline: {
51372
- padding: 0,
51373
- margin: 0,
51374
- listStyleType: "none"
51375
- }
51376
- },
51377
- TreeNode: {
51378
- treeNodeBase: {
51379
- color: theme3.BASE_COLOR,
51380
- backgroundColor: theme3.BASE_BACKGROUND_COLOR,
51381
- lineHeight: theme3.TREENODE_LINE_HEIGHT,
51382
- cursor: "default",
51383
- boxSizing: "border-box",
51384
- listStyle: "none",
51385
- fontFamily: theme3.TREENODE_FONT_FAMILY,
51386
- fontSize: theme3.TREENODE_FONT_SIZE
51387
- },
51388
- treeNodePreviewContainer: {},
51389
- treeNodePlaceholder: {
51390
- whiteSpace: "pre",
51391
- fontSize: theme3.ARROW_FONT_SIZE,
51392
- marginRight: theme3.ARROW_MARGIN_RIGHT,
51393
- ...unselectable
51394
- },
51395
- treeNodeArrow: {
51396
- base: {
51397
- color: theme3.ARROW_COLOR,
51398
- display: "inline-block",
51399
- // lineHeight: '14px',
51400
- fontSize: theme3.ARROW_FONT_SIZE,
51401
- marginRight: theme3.ARROW_MARGIN_RIGHT,
51402
- ...parseFloat(theme3.ARROW_ANIMATION_DURATION) > 0 ? {
51403
- transition: `transform ${theme3.ARROW_ANIMATION_DURATION} ease 0s`
51404
- } : {},
51405
- ...unselectable
51406
- },
51407
- expanded: {
51408
- WebkitTransform: "rotateZ(90deg)",
51409
- MozTransform: "rotateZ(90deg)",
51410
- transform: "rotateZ(90deg)"
51411
- },
51412
- collapsed: {
51413
- WebkitTransform: "rotateZ(0deg)",
51414
- MozTransform: "rotateZ(0deg)",
51415
- transform: "rotateZ(0deg)"
51416
- }
51417
- },
51418
- treeNodeChildNodesContainer: {
51419
- margin: 0,
51420
- // reset user-agent style
51421
- paddingLeft: theme3.TREENODE_PADDING_LEFT
51422
- }
51423
- },
51424
- TableInspector: {
51425
- base: {
51426
- color: theme3.BASE_COLOR,
51427
- position: "relative",
51428
- border: `1px solid ${theme3.TABLE_BORDER_COLOR}`,
51429
- fontFamily: theme3.BASE_FONT_FAMILY,
51430
- fontSize: theme3.BASE_FONT_SIZE,
51431
- lineHeight: "120%",
51432
- boxSizing: "border-box",
51433
- cursor: "default"
51434
- }
51435
- },
51436
- TableInspectorHeaderContainer: {
51437
- base: {
51438
- top: 0,
51439
- height: "17px",
51440
- left: 0,
51441
- right: 0,
51442
- overflowX: "hidden"
51443
- },
51444
- table: {
51445
- tableLayout: "fixed",
51446
- borderSpacing: 0,
51447
- borderCollapse: "separate",
51448
- height: "100%",
51449
- width: "100%",
51450
- margin: 0
51451
- }
51452
- },
51453
- TableInspectorDataContainer: {
51454
- tr: {
51455
- display: "table-row"
51456
- },
51457
- td: {
51458
- boxSizing: "border-box",
51459
- border: "none",
51460
- // prevent overrides
51461
- height: "16px",
51462
- // /* 0.5 * table.background-size height */
51463
- verticalAlign: "top",
51464
- padding: "1px 4px",
51465
- WebkitUserSelect: "text",
51466
- whiteSpace: "nowrap",
51467
- textOverflow: "ellipsis",
51468
- overflow: "hidden",
51469
- lineHeight: "14px"
51470
- },
51471
- div: {
51472
- position: "static",
51473
- top: "17px",
51474
- bottom: 0,
51475
- overflowY: "overlay",
51476
- transform: "translateZ(0)",
51477
- left: 0,
51478
- right: 0,
51479
- overflowX: "hidden"
51480
- },
51481
- table: {
51482
- positon: "static",
51483
- left: 0,
51484
- top: 0,
51485
- right: 0,
51486
- bottom: 0,
51487
- borderTop: "0 none transparent",
51488
- margin: 0,
51489
- // prevent user agent stylesheet overrides
51490
- backgroundImage: theme3.TABLE_DATA_BACKGROUND_IMAGE,
51491
- backgroundSize: theme3.TABLE_DATA_BACKGROUND_SIZE,
51492
- tableLayout: "fixed",
51493
- // table
51494
- borderSpacing: 0,
51495
- borderCollapse: "separate",
51496
- // height: '100%',
51497
- width: "100%",
51498
- fontSize: theme3.BASE_FONT_SIZE,
51499
- lineHeight: "120%"
51500
- }
51501
- },
51502
- TableInspectorTH: {
51503
- base: {
51504
- position: "relative",
51505
- // anchor for sort icon container
51506
- height: "auto",
51507
- textAlign: "left",
51508
- backgroundColor: theme3.TABLE_TH_BACKGROUND_COLOR,
51509
- borderBottom: `1px solid ${theme3.TABLE_BORDER_COLOR}`,
51510
- fontWeight: "normal",
51511
- verticalAlign: "middle",
51512
- padding: "0 4px",
51513
- whiteSpace: "nowrap",
51514
- textOverflow: "ellipsis",
51515
- overflow: "hidden",
51516
- lineHeight: "14px",
51517
- ":hover": {
51518
- backgroundColor: theme3.TABLE_TH_HOVER_COLOR
51519
- }
51520
- },
51521
- div: {
51522
- whiteSpace: "nowrap",
51523
- textOverflow: "ellipsis",
51524
- overflow: "hidden",
51525
- // prevent user agent stylesheet overrides
51526
- fontSize: theme3.BASE_FONT_SIZE,
51527
- lineHeight: "120%"
51528
- }
51529
- },
51530
- TableInspectorLeftBorder: {
51531
- none: {
51532
- borderLeft: "none"
51533
- },
51534
- solid: {
51535
- borderLeft: `1px solid ${theme3.TABLE_BORDER_COLOR}`
51536
- }
51537
- },
51538
- TableInspectorSortIcon: {
51539
- display: "block",
51540
- marginRight: 3,
51541
- // 4,
51542
- width: 8,
51543
- height: 7,
51544
- marginTop: -7,
51545
- color: theme3.TABLE_SORT_ICON_COLOR,
51546
- fontSize: 12,
51547
- // lineHeight: 14
51548
- ...unselectable
51549
- }
51550
- });
51551
- var DEFAULT_THEME_NAME = "chromeLight";
51552
- var ThemeContext = reactExports.createContext(createTheme(themes_exports[DEFAULT_THEME_NAME]));
51553
- var useStyles = (baseStylesKey) => {
51554
- const themeStyles = reactExports.useContext(ThemeContext);
51555
- return themeStyles[baseStylesKey];
51556
- };
51557
- var themeAcceptor = (WrappedComponent) => {
51558
- const ThemeAcceptor = ({ theme: theme3 = DEFAULT_THEME_NAME, ...restProps }) => {
51559
- const themeStyles = reactExports.useMemo(() => {
51560
- switch (Object.prototype.toString.call(theme3)) {
51561
- case "[object String]":
51562
- return createTheme(themes_exports[theme3]);
51563
- case "[object Object]":
51564
- return createTheme(theme3);
51565
- default:
51566
- return createTheme(themes_exports[DEFAULT_THEME_NAME]);
51567
- }
51568
- }, [theme3]);
51569
- return /* @__PURE__ */ ReactExports.createElement(ThemeContext.Provider, { value: themeStyles }, /* @__PURE__ */ ReactExports.createElement(WrappedComponent, { ...restProps }));
51570
- };
51571
- return ThemeAcceptor;
51572
- };
51573
- var Arrow$2 = ({ expanded: expanded2, styles: styles2 }) => /* @__PURE__ */ ReactExports.createElement(
51574
- "span",
51575
- {
51576
- style: {
51577
- ...styles2.base,
51578
- ...expanded2 ? styles2.expanded : styles2.collapsed
51579
- }
51580
- },
51581
- "▶"
51582
- );
51583
- var TreeNode = reactExports.memo((props) => {
51584
- props = {
51585
- expanded: true,
51586
- nodeRenderer: ({ name: name2 }) => /* @__PURE__ */ ReactExports.createElement("span", null, name2),
51587
- onClick: () => {
51588
- },
51589
- shouldShowArrow: false,
51590
- shouldShowPlaceholder: true,
51591
- ...props
51592
- };
51593
- const { expanded: expanded2, onClick, children: children2, nodeRenderer, title, shouldShowArrow, shouldShowPlaceholder: shouldShowPlaceholder2 } = props;
51594
- const styles2 = useStyles("TreeNode");
51595
- const NodeRenderer2 = nodeRenderer;
51596
- return /* @__PURE__ */ ReactExports.createElement("li", { "aria-expanded": expanded2, role: "treeitem", style: styles2.treeNodeBase, title }, /* @__PURE__ */ ReactExports.createElement("div", { style: styles2.treeNodePreviewContainer, onClick }, shouldShowArrow || reactExports.Children.count(children2) > 0 ? /* @__PURE__ */ ReactExports.createElement(Arrow$2, { expanded: expanded2, styles: styles2.treeNodeArrow }) : shouldShowPlaceholder2 && /* @__PURE__ */ ReactExports.createElement("span", { style: styles2.treeNodePlaceholder }, " "), /* @__PURE__ */ ReactExports.createElement(NodeRenderer2, { ...props })), /* @__PURE__ */ ReactExports.createElement("ol", { role: "group", style: styles2.treeNodeChildNodesContainer }, expanded2 ? children2 : void 0));
51597
- });
51598
- var DEFAULT_ROOT_PATH = "$";
51599
- var WILDCARD = "*";
51600
- function hasChildNodes(data, dataIterator) {
51601
- return !dataIterator(data).next().done;
51602
- }
51603
- var wildcardPathsFromLevel = (level) => {
51604
- return Array.from(
51605
- { length: level },
51606
- (_2, i) => [DEFAULT_ROOT_PATH].concat(Array.from({ length: i }, () => "*")).join(".")
51607
- );
51608
- };
51609
- var getExpandedPaths = (data, dataIterator, expandPaths, expandLevel, prevExpandedPaths) => {
51610
- const wildcardPaths = [].concat(wildcardPathsFromLevel(expandLevel)).concat(expandPaths).filter((path2) => typeof path2 === "string");
51611
- const expandedPaths = [];
51612
- wildcardPaths.forEach((wildcardPath) => {
51613
- const keyPaths = wildcardPath.split(".");
51614
- const populatePaths = (curData, curPath, depth) => {
51615
- if (depth === keyPaths.length) {
51616
- expandedPaths.push(curPath);
51617
- return;
51618
- }
51619
- const key = keyPaths[depth];
51620
- if (depth === 0) {
51621
- if (hasChildNodes(curData, dataIterator) && (key === DEFAULT_ROOT_PATH || key === WILDCARD)) {
51622
- populatePaths(curData, DEFAULT_ROOT_PATH, depth + 1);
51623
- }
51624
- } else {
51625
- if (key === WILDCARD) {
51626
- for (const { name: name2, data: data2 } of dataIterator(curData)) {
51627
- if (hasChildNodes(data2, dataIterator)) {
51628
- populatePaths(data2, `${curPath}.${name2}`, depth + 1);
51629
- }
51630
- }
51631
- } else {
51632
- const value = curData[key];
51633
- if (hasChildNodes(value, dataIterator)) {
51634
- populatePaths(value, `${curPath}.${key}`, depth + 1);
51635
- }
51636
- }
51637
- }
51638
- };
51639
- populatePaths(data, "", 0);
51640
- });
51641
- return expandedPaths.reduce(
51642
- (obj, path2) => {
51643
- obj[path2] = true;
51644
- return obj;
51645
- },
51646
- { ...prevExpandedPaths }
51647
- );
51648
- };
51649
- var ConnectedTreeNode = reactExports.memo((props) => {
51650
- const { data, dataIterator, path: path2, depth, nodeRenderer } = props;
51651
- const [expandedPaths, setExpandedPaths] = reactExports.useContext(ExpandedPathsContext);
51652
- const nodeHasChildNodes = hasChildNodes(data, dataIterator);
51653
- const expanded2 = !!expandedPaths[path2];
51654
- const handleClick = reactExports.useCallback(
51655
- () => nodeHasChildNodes && setExpandedPaths((prevExpandedPaths) => ({
51656
- ...prevExpandedPaths,
51657
- [path2]: !expanded2
51658
- })),
51659
- [nodeHasChildNodes, setExpandedPaths, path2, expanded2]
51660
- );
51661
- return /* @__PURE__ */ ReactExports.createElement(
51662
- TreeNode,
51663
- {
51664
- expanded: expanded2,
51665
- onClick: handleClick,
51666
- shouldShowArrow: nodeHasChildNodes,
51667
- shouldShowPlaceholder: depth > 0,
51668
- nodeRenderer,
51669
- ...props
51670
- },
51671
- // only render if the node is expanded
51672
- expanded2 ? [...dataIterator(data)].map(({ name: name2, data: data2, ...renderNodeProps }) => {
51673
- return /* @__PURE__ */ ReactExports.createElement(
51674
- ConnectedTreeNode,
51675
- {
51676
- name: name2,
51677
- data: data2,
51678
- depth: depth + 1,
51679
- path: `${path2}.${name2}`,
51680
- key: name2,
51681
- dataIterator,
51682
- nodeRenderer,
51683
- ...renderNodeProps
51684
- }
51685
- );
51686
- }) : null
51687
- );
51688
- });
51689
- var TreeView = reactExports.memo(({ name: name2, data, dataIterator, nodeRenderer, expandPaths, expandLevel }) => {
51690
- const styles2 = useStyles("TreeView");
51691
- const stateAndSetter = reactExports.useState({});
51692
- const [, setExpandedPaths] = stateAndSetter;
51693
- reactExports.useLayoutEffect(
51694
- () => setExpandedPaths(
51695
- (prevExpandedPaths) => getExpandedPaths(data, dataIterator, expandPaths, expandLevel, prevExpandedPaths)
51696
- ),
51697
- [data, dataIterator, expandPaths, expandLevel]
51698
- );
51699
- return /* @__PURE__ */ ReactExports.createElement(ExpandedPathsContext.Provider, { value: stateAndSetter }, /* @__PURE__ */ ReactExports.createElement("ol", { role: "tree", style: styles2.treeViewOutline }, /* @__PURE__ */ ReactExports.createElement(
51700
- ConnectedTreeNode,
51701
- {
51702
- name: name2,
51703
- data,
51704
- dataIterator,
51705
- depth: 0,
51706
- path: DEFAULT_ROOT_PATH,
51707
- nodeRenderer
51708
- }
51709
- )));
51710
- });
51711
- var ObjectName = ({ name: name2, dimmed = false, styles: styles2 = {} }) => {
51712
- const themeStyles = useStyles("ObjectName");
51713
- const appliedStyles = {
51714
- ...themeStyles.base,
51715
- ...dimmed ? themeStyles["dimmed"] : {},
51716
- ...styles2
51717
- };
51718
- return /* @__PURE__ */ ReactExports.createElement("span", { style: appliedStyles }, name2);
51719
- };
51720
- var ObjectValue = ({ object: object2, styles: styles2 }) => {
51721
- const themeStyles = useStyles("ObjectValue");
51722
- const mkStyle = (key) => ({ ...themeStyles[key], ...styles2 });
51723
- switch (typeof object2) {
51724
- case "bigint":
51725
- return /* @__PURE__ */ ReactExports.createElement("span", { style: mkStyle("objectValueNumber") }, String(object2), "n");
51726
- case "number":
51727
- return /* @__PURE__ */ ReactExports.createElement("span", { style: mkStyle("objectValueNumber") }, String(object2));
51728
- case "string":
51729
- return /* @__PURE__ */ ReactExports.createElement("span", { style: mkStyle("objectValueString") }, '"', object2, '"');
51730
- case "boolean":
51731
- return /* @__PURE__ */ ReactExports.createElement("span", { style: mkStyle("objectValueBoolean") }, String(object2));
51732
- case "undefined":
51733
- return /* @__PURE__ */ ReactExports.createElement("span", { style: mkStyle("objectValueUndefined") }, "undefined");
51734
- case "object":
51735
- if (object2 === null) {
51736
- return /* @__PURE__ */ ReactExports.createElement("span", { style: mkStyle("objectValueNull") }, "null");
51737
- }
51738
- if (object2 instanceof Date) {
51739
- return /* @__PURE__ */ ReactExports.createElement("span", null, object2.toString());
51740
- }
51741
- if (object2 instanceof RegExp) {
51742
- return /* @__PURE__ */ ReactExports.createElement("span", { style: mkStyle("objectValueRegExp") }, object2.toString());
51743
- }
51744
- if (Array.isArray(object2)) {
51745
- return /* @__PURE__ */ ReactExports.createElement("span", null, `Array(${object2.length})`);
51746
- }
51747
- if (!object2.constructor) {
51748
- return /* @__PURE__ */ ReactExports.createElement("span", null, "Object");
51749
- }
51750
- if (typeof object2.constructor.isBuffer === "function" && object2.constructor.isBuffer(object2)) {
51751
- return /* @__PURE__ */ ReactExports.createElement("span", null, `Buffer[${object2.length}]`);
51752
- }
51753
- return /* @__PURE__ */ ReactExports.createElement("span", null, object2.constructor.name);
51754
- case "function":
51755
- return /* @__PURE__ */ ReactExports.createElement("span", null, /* @__PURE__ */ ReactExports.createElement("span", { style: mkStyle("objectValueFunctionPrefix") }, "ƒ "), /* @__PURE__ */ ReactExports.createElement("span", { style: mkStyle("objectValueFunctionName") }, object2.name, "()"));
51756
- case "symbol":
51757
- return /* @__PURE__ */ ReactExports.createElement("span", { style: mkStyle("objectValueSymbol") }, object2.toString());
51758
- default:
51759
- return /* @__PURE__ */ ReactExports.createElement("span", null);
51760
- }
51761
- };
51762
- var hasOwnProperty$1 = Object.prototype.hasOwnProperty;
51763
- var propertyIsEnumerable = Object.prototype.propertyIsEnumerable;
51764
- function getPropertyValue(object2, propertyName) {
51765
- const propertyDescriptor = Object.getOwnPropertyDescriptor(object2, propertyName);
51766
- if (propertyDescriptor.get) {
51767
- try {
51768
- return propertyDescriptor.get();
51769
- } catch {
51770
- return propertyDescriptor.get;
51771
- }
51772
- }
51773
- return object2[propertyName];
51774
- }
51775
- function intersperse(arr, sep2) {
51776
- if (arr.length === 0) {
51777
- return [];
51778
- }
51779
- return arr.slice(1).reduce((xs, x2) => xs.concat([sep2, x2]), [arr[0]]);
51780
- }
51781
- var ObjectPreview = ({ data }) => {
51782
- const styles2 = useStyles("ObjectPreview");
51783
- const object2 = data;
51784
- if (typeof object2 !== "object" || object2 === null || object2 instanceof Date || object2 instanceof RegExp) {
51785
- return /* @__PURE__ */ ReactExports.createElement(ObjectValue, { object: object2 });
51786
- }
51787
- if (Array.isArray(object2)) {
51788
- const maxProperties = styles2.arrayMaxProperties;
51789
- const previewArray = object2.slice(0, maxProperties).map((element2, index2) => /* @__PURE__ */ ReactExports.createElement(ObjectValue, { key: index2, object: element2 }));
51790
- if (object2.length > maxProperties) {
51791
- previewArray.push(/* @__PURE__ */ ReactExports.createElement("span", { key: "ellipsis" }, "…"));
51792
- }
51793
- const arrayLength = object2.length;
51794
- return /* @__PURE__ */ ReactExports.createElement(ReactExports.Fragment, null, /* @__PURE__ */ ReactExports.createElement("span", { style: styles2.objectDescription }, arrayLength === 0 ? `` : `(${arrayLength}) `), /* @__PURE__ */ ReactExports.createElement("span", { style: styles2.preview }, "[", intersperse(previewArray, ", "), "]"));
51795
- } else {
51796
- const maxProperties = styles2.objectMaxProperties;
51797
- const propertyNodes = [];
51798
- for (const propertyName in object2) {
51799
- if (hasOwnProperty$1.call(object2, propertyName)) {
51800
- let ellipsis;
51801
- if (propertyNodes.length === maxProperties - 1 && Object.keys(object2).length > maxProperties) {
51802
- ellipsis = /* @__PURE__ */ ReactExports.createElement("span", { key: "ellipsis" }, "…");
51803
- }
51804
- const propertyValue2 = getPropertyValue(object2, propertyName);
51805
- propertyNodes.push(
51806
- /* @__PURE__ */ ReactExports.createElement("span", { key: propertyName }, /* @__PURE__ */ ReactExports.createElement(ObjectName, { name: propertyName || `""` }), ": ", /* @__PURE__ */ ReactExports.createElement(ObjectValue, { object: propertyValue2 }), ellipsis)
51807
- );
51808
- if (ellipsis) break;
51809
- }
51810
- }
51811
- const objectConstructorName = object2.constructor ? object2.constructor.name : "Object";
51812
- return /* @__PURE__ */ ReactExports.createElement(ReactExports.Fragment, null, /* @__PURE__ */ ReactExports.createElement("span", { style: styles2.objectDescription }, objectConstructorName === "Object" ? "" : `${objectConstructorName} `), /* @__PURE__ */ ReactExports.createElement("span", { style: styles2.preview }, "{", intersperse(propertyNodes, ", "), "}"));
51813
- }
51814
- };
51815
- var ObjectRootLabel = ({ name: name2, data }) => {
51816
- if (typeof name2 === "string") {
51817
- return /* @__PURE__ */ ReactExports.createElement("span", null, /* @__PURE__ */ ReactExports.createElement(ObjectName, { name: name2 }), /* @__PURE__ */ ReactExports.createElement("span", null, ": "), /* @__PURE__ */ ReactExports.createElement(ObjectPreview, { data }));
51818
- } else {
51819
- return /* @__PURE__ */ ReactExports.createElement(ObjectPreview, { data });
51820
- }
51821
- };
51822
- var ObjectLabel = ({ name: name2, data, isNonenumerable = false }) => {
51823
- const object2 = data;
51824
- return /* @__PURE__ */ ReactExports.createElement("span", null, typeof name2 === "string" ? /* @__PURE__ */ ReactExports.createElement(ObjectName, { name: name2, dimmed: isNonenumerable }) : /* @__PURE__ */ ReactExports.createElement(ObjectPreview, { data: name2 }), /* @__PURE__ */ ReactExports.createElement("span", null, ": "), /* @__PURE__ */ ReactExports.createElement(ObjectValue, { object: object2 }));
51825
- };
51826
- var createIterator = (showNonenumerable, sortObjectKeys) => {
51827
- const objectIterator = function* (data) {
51828
- const shouldIterate = typeof data === "object" && data !== null || typeof data === "function";
51829
- if (!shouldIterate) return;
51830
- const dataIsArray = Array.isArray(data);
51831
- if (!dataIsArray && data[Symbol.iterator]) {
51832
- let i = 0;
51833
- for (const entry2 of data) {
51834
- if (Array.isArray(entry2) && entry2.length === 2) {
51835
- const [k2, v2] = entry2;
51836
- yield {
51837
- name: k2,
51838
- data: v2
51839
- };
51840
- } else {
51841
- yield {
51842
- name: i.toString(),
51843
- data: entry2
51844
- };
51845
- }
51846
- i++;
51847
- }
51848
- } else {
51849
- const keys2 = Object.getOwnPropertyNames(data);
51850
- if (sortObjectKeys === true && !dataIsArray) {
51851
- keys2.sort();
51852
- } else if (typeof sortObjectKeys === "function") {
51853
- keys2.sort(sortObjectKeys);
51854
- }
51855
- for (const propertyName of keys2) {
51856
- if (propertyIsEnumerable.call(data, propertyName)) {
51857
- const propertyValue2 = getPropertyValue(data, propertyName);
51858
- yield {
51859
- name: propertyName || `""`,
51860
- data: propertyValue2
51861
- };
51862
- } else if (showNonenumerable) {
51863
- let propertyValue2;
51864
- try {
51865
- propertyValue2 = getPropertyValue(data, propertyName);
51866
- } catch (e) {
51867
- }
51868
- if (propertyValue2 !== void 0) {
51869
- yield {
51870
- name: propertyName,
51871
- data: propertyValue2,
51872
- isNonenumerable: true
51873
- };
51874
- }
51875
- }
51876
- }
51877
- if (showNonenumerable && data !== Object.prototype) {
51878
- yield {
51879
- name: "__proto__",
51880
- data: Object.getPrototypeOf(data),
51881
- isNonenumerable: true
51882
- };
51883
- }
51884
- }
51885
- };
51886
- return objectIterator;
51887
- };
51888
- var defaultNodeRenderer = ({ depth, name: name2, data, isNonenumerable }) => depth === 0 ? /* @__PURE__ */ ReactExports.createElement(ObjectRootLabel, { name: name2, data }) : /* @__PURE__ */ ReactExports.createElement(ObjectLabel, { name: name2, data, isNonenumerable });
51889
- var ObjectInspector = ({ showNonenumerable = false, sortObjectKeys, nodeRenderer, ...treeViewProps }) => {
51890
- const dataIterator = createIterator(showNonenumerable, sortObjectKeys);
51891
- const renderer = nodeRenderer ? nodeRenderer : defaultNodeRenderer;
51892
- return /* @__PURE__ */ ReactExports.createElement(TreeView, { nodeRenderer: renderer, dataIterator, ...treeViewProps });
51893
- };
51894
- var themedObjectInspector = themeAcceptor(ObjectInspector);
51895
- __toESM(require_is_dom());
51896
- const useDarkMode = () => {
51897
- const [isDark, setIsDark] = reactExports.useState(() => {
51898
- if (typeof document === "undefined")
51899
- return false;
51900
- return document.documentElement.classList.contains("dark");
51901
- });
51902
- reactExports.useEffect(() => {
51903
- if (typeof document === "undefined")
51904
- return;
51905
- const observer = new MutationObserver(() => {
51906
- setIsDark(document.documentElement.classList.contains("dark"));
51907
- });
51908
- observer.observe(document.documentElement, {
51909
- attributes: true,
51910
- attributeFilter: ["class"]
51911
- });
51912
- return () => observer.disconnect();
51913
- }, []);
51914
- return isDark;
51915
- };
51916
51131
  function summarizeArrayBufferView(value) {
51917
51132
  const ta2 = value;
51918
51133
  const name2 = ta2.constructor.name;
@@ -51935,64 +51150,92 @@ function formatArrayBufferViewForDisplay(value) {
51935
51150
  return { text: summarizeArrayBufferView(value) };
51936
51151
  }
51937
51152
  }
51938
- const inspectorThemeExtendedLight = {
51939
- OBJECT_VALUE_DATE_COLOR: "var(--ds-pink-900)"
51940
- };
51941
- const inspectorThemeExtendedDark = {
51942
- OBJECT_VALUE_DATE_COLOR: "var(--ds-pink-900)"
51943
- };
51944
- const shared = {
51945
- BASE_FONT_SIZE: "11px",
51946
- BASE_LINE_HEIGHT: 1.4,
51947
- BASE_BACKGROUND_COLOR: "transparent",
51948
- OBJECT_PREVIEW_ARRAY_MAX_PROPERTIES: 10,
51949
- OBJECT_PREVIEW_OBJECT_MAX_PROPERTIES: 5,
51950
- HTML_TAGNAME_TEXT_TRANSFORM: "lowercase",
51951
- ARROW_MARGIN_RIGHT: 3,
51952
- ARROW_FONT_SIZE: 12,
51953
- TREENODE_FONT_FAMILY: "var(--font-mono)",
51954
- TREENODE_FONT_SIZE: "11px",
51955
- TREENODE_LINE_HEIGHT: 1.4,
51956
- TREENODE_PADDING_LEFT: 12,
51957
- TABLE_DATA_BACKGROUND_IMAGE: "none",
51958
- TABLE_DATA_BACKGROUND_SIZE: "0"
51959
- };
51960
- const geistTheme = {
51961
- ...shared,
51962
- // Base text
51963
- BASE_COLOR: "var(--ds-gray-1000)",
51964
- // Property names — default foreground (matches JSON key color in Geist Shiki)
51965
- OBJECT_NAME_COLOR: "var(--ds-gray-1000)",
51966
- // Strings & symbols — green
51967
- OBJECT_VALUE_STRING_COLOR: "var(--ds-green-900)",
51968
- OBJECT_VALUE_SYMBOL_COLOR: "var(--ds-green-900)",
51969
- // Numbers & booleans — green (Geist JSON tokens)
51970
- OBJECT_VALUE_NUMBER_COLOR: "var(--ds-green-900)",
51971
- OBJECT_VALUE_BOOLEAN_COLOR: "var(--ds-green-900)",
51972
- // null muted foreground
51973
- OBJECT_VALUE_NULL_COLOR: "var(--ds-gray-900)",
51974
- // undefined — muted foreground
51975
- OBJECT_VALUE_UNDEFINED_COLOR: "var(--ds-gray-900)",
51976
- // RegExp — purple
51977
- OBJECT_VALUE_REGEXP_COLOR: "var(--ds-purple-900)",
51978
- // Functions — purple
51979
- OBJECT_VALUE_FUNCTION_PREFIX_COLOR: "var(--ds-purple-900)",
51980
- // HTML (rarely used here, kept consistent with the palette)
51981
- HTML_TAG_COLOR: "var(--ds-gray-900)",
51982
- HTML_TAGNAME_COLOR: "var(--ds-blue-900)",
51983
- HTML_ATTRIBUTE_NAME_COLOR: "var(--ds-amber-900)",
51984
- HTML_ATTRIBUTE_VALUE_COLOR: "var(--ds-green-900)",
51985
- HTML_COMMENT_COLOR: "var(--ds-gray-700)",
51986
- HTML_DOCTYPE_COLOR: "var(--ds-gray-700)",
51987
- // Structural
51988
- ARROW_COLOR: "var(--ds-gray-700)",
51989
- TABLE_BORDER_COLOR: "var(--ds-gray-300)",
51990
- TABLE_TH_BACKGROUND_COLOR: "var(--ds-gray-100)",
51991
- TABLE_TH_HOVER_COLOR: "var(--ds-gray-200)",
51992
- TABLE_SORT_ICON_COLOR: "var(--ds-gray-700)"
51993
- };
51994
- const inspectorThemeLight = geistTheme;
51995
- const inspectorThemeDark = geistTheme;
51153
+ const CLS = {
51154
+ container: "wf-json-view",
51155
+ child: "wf-json-child",
51156
+ childFields: "wf-json-child-fields",
51157
+ label: "wf-json-label",
51158
+ clickableLabel: "wf-json-clickable-label",
51159
+ punctuation: "wf-json-punctuation",
51160
+ className: "wf-json-classname",
51161
+ expandIcon: "wf-json-expand-icon",
51162
+ collapseIcon: "wf-json-collapse-icon",
51163
+ collapsedContent: "wf-json-collapsed-content",
51164
+ string: "wf-json-string",
51165
+ number: "wf-json-number",
51166
+ boolean: "wf-json-boolean",
51167
+ null: "wf-json-null",
51168
+ undefined: "wf-json-undefined",
51169
+ date: "wf-json-date",
51170
+ regexp: "wf-json-regexp"
51171
+ };
51172
+ const JSON_VIEW_STYLES = `
51173
+ .${CLS.container} {
51174
+ display: inline;
51175
+ font-family: var(--font-mono);
51176
+ font-size: 13px;
51177
+ line-height: 20px;
51178
+ margin: 0;
51179
+ padding: 0;
51180
+ background: transparent;
51181
+ color: var(--ds-gray-1000);
51182
+ white-space: pre-wrap;
51183
+ word-wrap: break-word;
51184
+ }
51185
+ .${CLS.container} > .${CLS.child} > ul { padding-left: 0ch; }
51186
+ .${CLS.container} > .${CLS.child} { padding-left: 1.5ch; }
51187
+ .${CLS.child} { display: block; margin: 0; padding: 0 0 0 2ch; }
51188
+ .${CLS.child}:hover:not(:has(.${CLS.child}:hover)):not(:has(.${CLS.child} ~ .${CLS.child})) {
51189
+ background-color: var(--ds-gray-alpha-100);
51190
+ border-radius: 4px;
51191
+ }
51192
+ .${CLS.childFields} { margin: 0; padding: 0; list-style: none; }
51193
+ .${CLS.label}, .${CLS.clickableLabel} {
51194
+ color: var(--ds-pink-900);
51195
+ font-weight: 400;
51196
+ margin-right: 1ch;
51197
+ }
51198
+ .${CLS.clickableLabel} { cursor: pointer; }
51199
+ .${CLS.punctuation} { color: var(--ds-gray-1000); }
51200
+ .${CLS.className} { font-style: italic; color: var(--ds-gray-900); margin-right: 1ch; }
51201
+ .${CLS.string} { color: var(--ds-green-900); }
51202
+ .${CLS.number} { color: var(--ds-blue-900); }
51203
+ .${CLS.boolean} { color: var(--ds-amber-900); }
51204
+ .${CLS.null}, .${CLS.undefined} { color: var(--ds-gray-900); }
51205
+ .${CLS.date} { color: var(--ds-pink-900); }
51206
+ .${CLS.regexp} { color: var(--ds-purple-900); }
51207
+ .${CLS.container} > .${CLS.child} > .${CLS.expandIcon},
51208
+ .${CLS.container} > .${CLS.child} > .${CLS.collapseIcon} { margin-left: -1.5ch; }
51209
+ .${CLS.expandIcon}, .${CLS.collapseIcon} {
51210
+ appearance: none;
51211
+ background: none;
51212
+ border: 0;
51213
+ padding: 0;
51214
+ font: inherit;
51215
+ vertical-align: baseline;
51216
+ cursor: pointer;
51217
+ display: inline-block;
51218
+ margin-right: 0ch;
51219
+ margin-left: -1.5ch;
51220
+ color: var(--ds-gray-500);
51221
+ user-select: none;
51222
+ outline: none;
51223
+ }
51224
+ .${CLS.expandIcon}::after {
51225
+ content: '\\25B8';
51226
+ margin-right: 0.5ch;
51227
+ transform: translateY(-0.5px);
51228
+ display: block;
51229
+ }
51230
+ .${CLS.collapseIcon}::after { content: '\\25BE'; margin-right: 0.5ch; }
51231
+ .${CLS.expandIcon}:hover, .${CLS.collapseIcon}:hover,
51232
+ .${CLS.child}:has(> .${CLS.clickableLabel}:hover) > .${CLS.expandIcon},
51233
+ .${CLS.child}:has(> .${CLS.clickableLabel}:hover) > .${CLS.collapseIcon} {
51234
+ color: var(--ds-gray-1000);
51235
+ }
51236
+ .${CLS.collapsedContent} { color: var(--ds-gray-900); }
51237
+ .${CLS.collapsedContent}::after { content: '...'; }
51238
+ `;
51996
51239
  const KEYFRAMES = `@keyframes wf-spinner-fade{0%{opacity:1}100%{opacity:.15}}`;
51997
51240
  function Spinner({ size: size2 = 14, color: color5 }) {
51998
51241
  const config2 = size2 <= 12 ? {
@@ -52090,6 +51333,10 @@ function isBytesDisplay(value) {
52090
51333
  function isClassInstanceRef(value) {
52091
51334
  return value !== null && typeof value === "object" && "__type" in value && value.__type === CLASS_INSTANCE_REF_TYPE;
52092
51335
  }
51336
+ function isEncryptedMarker(value) {
51337
+ var _a3;
51338
+ return value !== null && typeof value === "object" && ((_a3 = value.constructor) == null ? void 0 : _a3.name) === ENCRYPTED_DISPLAY_NAME;
51339
+ }
52093
51340
  const StreamClickContext = reactExports.createContext(void 0);
52094
51341
  const DecryptClickContext = reactExports.createContext(void 0);
52095
51342
  const RunClickContext = reactExports.createContext(void 0);
@@ -52132,7 +51379,6 @@ function RunRefInline({ runRef }) {
52132
51379
  onRunClick == null ? void 0 : onRunClick(runRef.runId);
52133
51380
  }, title: `View run: ${runRef.runId}`, children: jsxRuntimeExports.jsx("span", { children: runRef.runId }) });
52134
51381
  }
52135
- const ExtendedThemeContext = reactExports.createContext(inspectorThemeExtendedLight);
52136
51382
  function DecodedBytesChunk({ decodedText, source }) {
52137
51383
  const [selectedView, setSelectedView] = reactExports.useState("decoded");
52138
51384
  const parsed = parseChunkData(decodedText);
@@ -52149,45 +51395,204 @@ function DecodedBytesInspector({ decodedText, source }) {
52149
51395
  const [expanded2, setExpanded] = reactExports.useState(false);
52150
51396
  return jsxRuntimeExports.jsxs("div", { className: "font-mono", children: [jsxRuntimeExports.jsxs("button", { type: "button", className: "flex max-w-full items-start gap-1 text-left", style: { color: "var(--ds-gray-1000)" }, onClick: () => setExpanded((value) => !value), title: `${source.type} decoded as ${source.encoding.toUpperCase()} text`, children: [jsxRuntimeExports.jsx("span", { className: "select-none", style: { color: "var(--ds-gray-700)" }, children: expanded2 ? "▼" : "▶" }), jsxRuntimeExports.jsx("span", { className: "min-w-0 break-words", children: source.rawSummary })] }), expanded2 && jsxRuntimeExports.jsxs("div", { className: "mt-1 pl-5", children: [jsxRuntimeExports.jsx("span", { style: { color: "var(--ds-gray-700)" }, children: "decoded: " }), jsxRuntimeExports.jsx("span", { className: "whitespace-pre-wrap break-words", style: { color: "var(--ds-green-900)" }, children: JSON.stringify(decodedText) })] })] });
52151
51397
  }
52152
- function BytesDisplayLabel({ name: name2, display }) {
52153
- return jsxRuntimeExports.jsxs("div", { className: "inline-block min-w-0 align-top", children: [name2 != null && jsxRuntimeExports.jsx(ObjectName, { name: name2 }), name2 != null && jsxRuntimeExports.jsx("span", { children: ": " }), display.decodedFrom ? jsxRuntimeExports.jsx(DecodedBytesChunk, { decodedText: display.text, source: display.decodedFrom }) : jsxRuntimeExports.jsx("span", { className: "whitespace-pre-wrap break-words", style: { color: "var(--ds-gray-1000)" }, children: display.text })] });
51398
+ function BytesDisplayValue({ display }) {
51399
+ if (display.decodedFrom) {
51400
+ return jsxRuntimeExports.jsx(DecodedBytesChunk, { decodedText: display.text, source: display.decodedFrom });
51401
+ }
51402
+ return jsxRuntimeExports.jsx("span", { className: "whitespace-pre-wrap break-words", style: { color: "var(--ds-gray-1000)" }, children: display.text });
51403
+ }
51404
+ function formatField(field) {
51405
+ return field === "" ? '""' : field;
52154
51406
  }
52155
- function NodeRenderer$1({ depth, name: name2, data, isNonenumerable }) {
51407
+ function describeContainer(value) {
52156
51408
  var _a3;
52157
- const extendedTheme = reactExports.useContext(ExtendedThemeContext);
52158
- if (isBytesDisplay(data)) {
52159
- return jsxRuntimeExports.jsx(BytesDisplayLabel, { name: name2, display: data });
51409
+ if (Array.isArray(value)) {
51410
+ return {
51411
+ entries: value.map((item) => [void 0, item]),
51412
+ open: "[",
51413
+ close: "]"
51414
+ };
52160
51415
  }
52161
- if (data !== null && typeof data === "object" && ((_a3 = data.constructor) == null ? void 0 : _a3.name) === ENCRYPTED_DISPLAY_NAME) {
52162
- const label = jsxRuntimeExports.jsx(EncryptedInlineLabel, {});
52163
- if (depth === 0) {
52164
- return label;
52165
- }
52166
- return jsxRuntimeExports.jsxs("span", { children: [name2 != null && jsxRuntimeExports.jsx(ObjectName, { name: name2 }), name2 != null && jsxRuntimeExports.jsx("span", { children: ": " }), label] });
51416
+ if (value instanceof Map) {
51417
+ return {
51418
+ entries: Array.from(value.entries(), ([key, val]) => [
51419
+ String(key),
51420
+ val
51421
+ ]),
51422
+ open: "{",
51423
+ close: "}",
51424
+ prefix: "Map"
51425
+ };
52167
51426
  }
52168
- if (isStreamRef(data)) {
52169
- return jsxRuntimeExports.jsxs("span", { children: [name2 != null && jsxRuntimeExports.jsx(ObjectName, { name: name2 }), name2 != null && jsxRuntimeExports.jsx("span", { children: ": " }), jsxRuntimeExports.jsx(StreamRefInline, { streamRef: data })] });
51427
+ if (value instanceof Set) {
51428
+ return {
51429
+ entries: Array.from(value.values(), (item) => [void 0, item]),
51430
+ open: "[",
51431
+ close: "]",
51432
+ prefix: "Set"
51433
+ };
52170
51434
  }
52171
- if (isRunRef(data)) {
52172
- return jsxRuntimeExports.jsxs("span", { children: [name2 != null && jsxRuntimeExports.jsx(ObjectName, { name: name2 }), name2 != null && jsxRuntimeExports.jsx("span", { children: ": " }), jsxRuntimeExports.jsx(RunRefInline, { runRef: data })] });
51435
+ if (value !== null && typeof value === "object") {
51436
+ const name2 = (_a3 = value.constructor) == null ? void 0 : _a3.name;
51437
+ return {
51438
+ entries: Object.entries(value),
51439
+ open: "{",
51440
+ close: "}",
51441
+ prefix: name2 && name2 !== "Object" ? name2 : void 0
51442
+ };
52173
51443
  }
52174
- if (isClassInstanceRef(data)) {
52175
- if (depth === 0) {
52176
- return jsxRuntimeExports.jsx(ObjectRootLabel, { name: data.className, data: data.data });
51444
+ return null;
51445
+ }
51446
+ function describePrimitive(value) {
51447
+ if (value === null)
51448
+ return { text: "null", cls: CLS.null };
51449
+ if (value === void 0)
51450
+ return { text: "undefined", cls: CLS.undefined };
51451
+ if (typeof value === "string" || value instanceof String) {
51452
+ return { text: `"${String(value)}"`, cls: CLS.string };
51453
+ }
51454
+ if (typeof value === "boolean" || value instanceof Boolean) {
51455
+ return { text: String(value), cls: CLS.boolean };
51456
+ }
51457
+ if (typeof value === "number" || value instanceof Number) {
51458
+ return { text: String(value), cls: CLS.number };
51459
+ }
51460
+ if (typeof value === "bigint") {
51461
+ return { text: `${value.toString()}n`, cls: CLS.number };
51462
+ }
51463
+ return { text: String(value), cls: CLS.punctuation };
51464
+ }
51465
+ function Label$2({ field, clickable }) {
51466
+ if (field === void 0)
51467
+ return null;
51468
+ return jsxRuntimeExports.jsx("span", { className: clickable ? CLS.clickableLabel : CLS.label, children: `${formatField(field)}:` });
51469
+ }
51470
+ function Comma({ isLast }) {
51471
+ if (isLast)
51472
+ return null;
51473
+ return jsxRuntimeExports.jsx("span", { className: CLS.punctuation, children: "," });
51474
+ }
51475
+ function LeafRow({ field, isLast, children: children2 }) {
51476
+ return jsxRuntimeExports.jsxs("div", { className: CLS.child, role: "treeitem", tabIndex: -1, children: [jsxRuntimeExports.jsx(Label$2, { field }), children2, jsxRuntimeExports.jsx(Comma, { isLast })] });
51477
+ }
51478
+ function PrimitiveValue({ field, value, isLast }) {
51479
+ const { text: text2, cls } = describePrimitive(value);
51480
+ return jsxRuntimeExports.jsx(LeafRow, { field, isLast, children: jsxRuntimeExports.jsx("span", { className: cls, children: text2 }) });
51481
+ }
51482
+ function EmptyContainer({ field, prefix, open, close, isLast }) {
51483
+ return jsxRuntimeExports.jsxs("div", { className: CLS.child, role: "treeitem", tabIndex: -1, children: [jsxRuntimeExports.jsx(Label$2, { field }), prefix ? jsxRuntimeExports.jsx("span", { className: CLS.className, children: prefix }) : null, jsxRuntimeExports.jsx("span", { className: CLS.punctuation, children: open }), jsxRuntimeExports.jsx("span", { className: CLS.punctuation, children: close }), jsxRuntimeExports.jsx(Comma, { isLast })] });
51484
+ }
51485
+ function focusExpander(button, outerRef) {
51486
+ var _a3;
51487
+ const previous2 = (_a3 = outerRef.current) == null ? void 0 : _a3.querySelector('[data-json-expander][tabindex="0"]');
51488
+ if (previous2)
51489
+ previous2.tabIndex = -1;
51490
+ button.tabIndex = 0;
51491
+ button.focus();
51492
+ }
51493
+ function moveExpanderFocus(outerRef, direction) {
51494
+ const root2 = outerRef.current;
51495
+ if (!root2)
51496
+ return;
51497
+ const buttons = root2.querySelectorAll("[data-json-expander]");
51498
+ let current = -1;
51499
+ for (let i = 0; i < buttons.length; i += 1) {
51500
+ if (buttons[i].tabIndex === 0) {
51501
+ current = i;
51502
+ break;
52177
51503
  }
52178
- return jsxRuntimeExports.jsxs("span", { children: [name2 != null && jsxRuntimeExports.jsx(ObjectName, { name: name2 }), name2 != null && jsxRuntimeExports.jsx("span", { children: ": " }), jsxRuntimeExports.jsxs("span", { style: { fontStyle: "italic" }, children: [data.className, " "] }), jsxRuntimeExports.jsx(ObjectValue, { object: data.data })] });
52179
51504
  }
52180
- if (data instanceof Date) {
52181
- const dateStr = data.toISOString();
52182
- if (depth === 0) {
52183
- return jsxRuntimeExports.jsx("span", { style: { color: extendedTheme.OBJECT_VALUE_DATE_COLOR }, children: dateStr });
51505
+ if (current < 0)
51506
+ return;
51507
+ const next2 = (current + direction + buttons.length) % buttons.length;
51508
+ buttons[current].tabIndex = -1;
51509
+ buttons[next2].tabIndex = 0;
51510
+ buttons[next2].focus();
51511
+ }
51512
+ function ExpandableContainer({ field, entries, open, close, prefix, ctx, isLast }) {
51513
+ const { level, shouldExpand, outerRef } = ctx;
51514
+ const [expanded2, setExpanded] = reactExports.useState(() => shouldExpand(level));
51515
+ const rowRef = reactExports.useRef(null);
51516
+ const contentsId = reactExports.useId();
51517
+ if (entries.length === 0) {
51518
+ return jsxRuntimeExports.jsx(EmptyContainer, { field, prefix, open, close, isLast });
51519
+ }
51520
+ const toggle = () => {
51521
+ setExpanded((value) => !value);
51522
+ if (rowRef.current)
51523
+ focusExpander(rowRef.current, outerRef);
51524
+ };
51525
+ const onClick = (event) => {
51526
+ if (event.target.closest('[role="treeitem"]') !== event.currentTarget) {
51527
+ return;
51528
+ }
51529
+ toggle();
51530
+ };
51531
+ const onKeyDown = (event) => {
51532
+ if (event.key === "ArrowRight") {
51533
+ event.preventDefault();
51534
+ setExpanded(true);
51535
+ } else if (event.key === "ArrowLeft") {
51536
+ event.preventDefault();
51537
+ setExpanded(false);
51538
+ } else if (event.key === "ArrowUp") {
51539
+ event.preventDefault();
51540
+ moveExpanderFocus(outerRef, -1);
51541
+ } else if (event.key === "ArrowDown") {
51542
+ event.preventDefault();
51543
+ moveExpanderFocus(outerRef, 1);
52184
51544
  }
52185
- return jsxRuntimeExports.jsxs("span", { children: [name2 != null && jsxRuntimeExports.jsx(ObjectName, { name: name2 }), name2 != null && jsxRuntimeExports.jsx("span", { children: ": " }), jsxRuntimeExports.jsx("span", { style: { color: extendedTheme.OBJECT_VALUE_DATE_COLOR }, children: dateStr })] });
51545
+ };
51546
+ const lastIndex = entries.length - 1;
51547
+ return (
51548
+ // The treeitem row is the focusable, keyboard-operable control (roving
51549
+ // tabindex + arrow keys); the disclosure marker below is purely decorative.
51550
+ jsxRuntimeExports.jsxs("div", { className: CLS.child, role: "treeitem", "aria-expanded": expanded2, "aria-controls": expanded2 ? contentsId : void 0, "data-json-expander": true, ref: rowRef, tabIndex: level === 0 ? 0 : -1, onClick, onKeyDown, children: [jsxRuntimeExports.jsx("span", { className: expanded2 ? CLS.collapseIcon : CLS.expandIcon, "aria-hidden": "true" }), field !== void 0 && jsxRuntimeExports.jsx("span", { className: CLS.clickableLabel, children: `${formatField(field)}:` }), prefix ? jsxRuntimeExports.jsx("span", { className: CLS.className, children: prefix }) : null, jsxRuntimeExports.jsx("span", { className: CLS.punctuation, children: open }), expanded2 ? (
51551
+ // biome-ignore lint/a11y/useSemanticElements: ARIA tree group is the correct role here
51552
+ jsxRuntimeExports.jsx("ul", { id: contentsId, className: CLS.childFields, role: "group", children: entries.map(([childField, childValue], index2) => jsxRuntimeExports.jsx(DataRender, { field: childField, value: childValue, isLast: index2 === lastIndex, ctx: { ...ctx, level: level + 1 } }, childField ?? index2)) })
51553
+ ) : jsxRuntimeExports.jsx("span", { className: CLS.collapsedContent, "aria-hidden": "true" }), jsxRuntimeExports.jsx("span", { className: CLS.punctuation, children: close }), jsxRuntimeExports.jsx(Comma, { isLast })] })
51554
+ );
51555
+ }
51556
+ function DataRender({ field, value, isLast, ctx }) {
51557
+ if (isBytesDisplay(value)) {
51558
+ return jsxRuntimeExports.jsx(LeafRow, { field, isLast, children: jsxRuntimeExports.jsx(BytesDisplayValue, { display: value }) });
51559
+ }
51560
+ if (isEncryptedMarker(value)) {
51561
+ return jsxRuntimeExports.jsx(LeafRow, { field, isLast, children: jsxRuntimeExports.jsx(EncryptedInlineLabel, {}) });
51562
+ }
51563
+ if (isStreamRef(value)) {
51564
+ return jsxRuntimeExports.jsx(LeafRow, { field, isLast, children: jsxRuntimeExports.jsx(StreamRefInline, { streamRef: value }) });
51565
+ }
51566
+ if (isRunRef(value)) {
51567
+ return jsxRuntimeExports.jsx(LeafRow, { field, isLast, children: jsxRuntimeExports.jsx(RunRefInline, { runRef: value }) });
51568
+ }
51569
+ if (value instanceof Date) {
51570
+ return jsxRuntimeExports.jsx(LeafRow, { field, isLast, children: jsxRuntimeExports.jsx("span", { className: CLS.date, children: value.toISOString() }) });
52186
51571
  }
52187
- if (depth === 0) {
52188
- return jsxRuntimeExports.jsx(ObjectRootLabel, { name: name2, data });
51572
+ if (value instanceof RegExp) {
51573
+ return jsxRuntimeExports.jsx(LeafRow, { field, isLast, children: jsxRuntimeExports.jsx("span", { className: CLS.regexp, children: value.toString() }) });
52189
51574
  }
52190
- return jsxRuntimeExports.jsx(ObjectLabel, { name: name2, data, isNonenumerable });
51575
+ if (isClassInstanceRef(value)) {
51576
+ return jsxRuntimeExports.jsx(ClassInstanceNode, { field, instance: value, isLast, ctx });
51577
+ }
51578
+ const container = describeContainer(value);
51579
+ if (container) {
51580
+ return jsxRuntimeExports.jsx(ExpandableContainer, { field, entries: container.entries, open: container.open, close: container.close, prefix: container.prefix, ctx, isLast });
51581
+ }
51582
+ return jsxRuntimeExports.jsx(PrimitiveValue, { field, value, isLast, ctx });
51583
+ }
51584
+ function ClassInstanceNode({ field, instance, isLast, ctx }) {
51585
+ const container = describeContainer(instance.data);
51586
+ if (container) {
51587
+ return jsxRuntimeExports.jsx(ExpandableContainer, { field, entries: container.entries, open: container.open, close: container.close, prefix: instance.className, ctx, isLast });
51588
+ }
51589
+ const { text: text2, cls } = describePrimitive(instance.data);
51590
+ return jsxRuntimeExports.jsxs(LeafRow, { field, isLast, children: [jsxRuntimeExports.jsx("span", { className: CLS.className, children: instance.className }), jsxRuntimeExports.jsx("span", { className: cls, children: text2 })] });
51591
+ }
51592
+ function JsonTree({ data, name: name2, expandLevel }) {
51593
+ const outerRef = reactExports.useRef(null);
51594
+ const shouldExpand = reactExports.useMemo(() => (level) => level < expandLevel, [expandLevel]);
51595
+ return jsxRuntimeExports.jsx("div", { ref: outerRef, className: CLS.container, role: "tree", "aria-label": "JSON view", children: jsxRuntimeExports.jsx(DataRender, { field: name2, value: data, isLast: true, ctx: { level: 0, shouldExpand, outerRef } }) });
52191
51596
  }
52192
51597
  function makeOpaqueRef(ref) {
52193
51598
  const opaque = /* @__PURE__ */ Object.create(null);
@@ -52243,32 +51648,17 @@ function collapseRefs(data) {
52243
51648
  function DataInspector({ data, expandLevel = 2, name: name2, onStreamClick, onRunClick, onDecrypt, isDecrypting = false }) {
52244
51649
  const collapsedData = reactExports.useMemo(() => collapseRefs(data), [data]);
52245
51650
  const stableData = useStableInspectorData(collapsedData);
52246
- const [initialExpandLevel, setInitialExpandLevel] = reactExports.useState(expandLevel);
52247
- const isDark = useDarkMode();
52248
- const extendedTheme = isDark ? inspectorThemeExtendedDark : inspectorThemeExtendedLight;
52249
- reactExports.useEffect(() => {
52250
- setInitialExpandLevel(0);
52251
- }, []);
52252
- const content2 = jsxRuntimeExports.jsx(ExtendedThemeContext.Provider, { value: extendedTheme, children: jsxRuntimeExports.jsx(themedObjectInspector, {
52253
- data: stableData,
52254
- name: name2,
52255
- // @ts-expect-error react-inspector accepts theme objects at runtime despite
52256
- // types declaring string only — see https://github.com/storybookjs/react-inspector/blob/main/README.md#theme
52257
- theme: isDark ? inspectorThemeDark : inspectorThemeLight,
52258
- expandLevel: initialExpandLevel,
52259
- nodeRenderer: NodeRenderer$1
52260
- }) });
52261
- let wrapped = content2;
51651
+ let content2 = jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx("style", { href: "wf-json-view", precedence: "default", children: JSON_VIEW_STYLES }), jsxRuntimeExports.jsx(JsonTree, { data: stableData, name: name2, expandLevel })] });
52262
51652
  if (onStreamClick) {
52263
- wrapped = jsxRuntimeExports.jsx(StreamClickContext.Provider, { value: onStreamClick, children: wrapped });
51653
+ content2 = jsxRuntimeExports.jsx(StreamClickContext.Provider, { value: onStreamClick, children: content2 });
52264
51654
  }
52265
51655
  if (onRunClick) {
52266
- wrapped = jsxRuntimeExports.jsx(RunClickContext.Provider, { value: onRunClick, children: wrapped });
51656
+ content2 = jsxRuntimeExports.jsx(RunClickContext.Provider, { value: onRunClick, children: content2 });
52267
51657
  }
52268
51658
  if (onDecrypt) {
52269
- wrapped = jsxRuntimeExports.jsx(DecryptClickContext.Provider, { value: { onDecrypt, isDecrypting }, children: wrapped });
51659
+ content2 = jsxRuntimeExports.jsx(DecryptClickContext.Provider, { value: { onDecrypt, isDecrypting }, children: content2 });
52270
51660
  }
52271
- return wrapped;
51661
+ return content2;
52272
51662
  }
52273
51663
  function useStableInspectorData(next2) {
52274
51664
  const previousRef = reactExports.useRef(next2);
@@ -53471,7 +52861,7 @@ function hasEncryptedValues(data) {
53471
52861
  if (!data || typeof data !== "object")
53472
52862
  return false;
53473
52863
  for (const val of Object.values(data)) {
53474
- if (isEncryptedMarker(val))
52864
+ if (isEncryptedMarker$1(val))
53475
52865
  return true;
53476
52866
  }
53477
52867
  return false;
@@ -83236,7 +82626,7 @@ var tn = f("block", "before:content-[counter(line)]", "before:inline-block", "be
83236
82626
  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 });
83237
82627
  var Se = reactExports.createContext({ code: "" }), de = () => reactExports.useContext(Se);
83238
82628
  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 }) });
83239
- var cn$1 = /\n+$/, dn = reactExports.lazy(() => import("./highlighted-body-B3W2YXNL-Bbohhhvu.js").then((e) => ({ default: e.HighlightedCodeBlockBody }))), rt = ({ code: e, language: t, className: o, children: n, isIncomplete: s2 = false, ...r2 }) => {
82629
+ var cn$1 = /\n+$/, dn = reactExports.lazy(() => import("./highlighted-body-B3W2YXNL-Bn21Jt9E.js").then((e) => ({ default: e.HighlightedCodeBlockBody }))), rt = ({ code: e, language: t, className: o, children: n, isIncomplete: s2 = false, ...r2 }) => {
83240
82630
  let i = reactExports.useMemo(() => e.replace(cn$1, ""), [e]), c = reactExports.useMemo(() => ({ bg: "transparent", fg: "inherit", tokens: i.split(`
83241
82631
  `).map((a2) => [{ content: a2, color: "inherit", bgColor: "transparent", htmlStyle: {}, offset: 0 }]) }), [i]);
83242
82632
  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 }) })] }) });
@@ -83558,7 +82948,7 @@ var Dt = ({ children: e, className: t, onDownload: o, onError: n }) => {
83558
82948
  }, []), 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] });
83559
82949
  };
83560
82950
  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 }) })] });
83561
- var Jn = reactExports.lazy(() => import("./mermaid-3ZIDBTTL-GUOonG4P.js").then((e) => ({ default: e.Mermaid }))), Kn = /language-([^\s]+)/;
82951
+ var Jn = reactExports.lazy(() => import("./mermaid-3ZIDBTTL-BDx4F1TF.js").then((e) => ({ default: e.Mermaid }))), Kn = /language-([^\s]+)/;
83562
82952
  function ke(e, t) {
83563
82953
  if (!(e != null && e.position || t != null && t.position)) return true;
83564
82954
  if (!(e != null && e.position && (t != null && t.position))) return false;
@@ -84194,6 +83584,7 @@ const attributeOrder = [
84194
83584
  "projectId",
84195
83585
  "environment",
84196
83586
  "executionContext",
83587
+ "occurredAt",
84197
83588
  "createdAt",
84198
83589
  "startedAt",
84199
83590
  "updatedAt",
@@ -84229,6 +83620,7 @@ const attributeDisplayNames = {
84229
83620
  deploymentId: "Deployment ID",
84230
83621
  specVersion: "Spec Version",
84231
83622
  workflowCoreVersion: "@workflow/core version",
83623
+ occurredAt: "Occurred",
84232
83624
  createdAt: "Created",
84233
83625
  startedAt: "Started",
84234
83626
  updatedAt: "Updated",
@@ -84323,6 +83715,7 @@ const attributeToDisplayFn = {
84323
83715
  return jsxRuntimeExports.jsx(RunAttributesCard, { attributes: value });
84324
83716
  },
84325
83717
  // Dates — wrapped with TimestampTooltip showing UTC/local + relative time
83718
+ occurredAt: timestampWithTooltipOrNull,
84326
83719
  createdAt: timestampWithTooltipOrNull,
84327
83720
  startedAt: timestampWithTooltipOrNull,
84328
83721
  updatedAt: (_value) => null,
@@ -84334,14 +83727,14 @@ const attributeToDisplayFn = {
84334
83727
  metadata: (value) => {
84335
83728
  if (!hasDisplayContent(value))
84336
83729
  return null;
84337
- if (isEncryptedMarker(value))
83730
+ if (isEncryptedMarker$1(value))
84338
83731
  return jsxRuntimeExports.jsx(EncryptedDataBlock, {});
84339
83732
  if (isExpiredMarker(value))
84340
83733
  return jsxRuntimeExports.jsx(ExpiredFieldBlock, {});
84341
83734
  return JsonBlock(value);
84342
83735
  },
84343
83736
  input: (value, context) => {
84344
- if (isEncryptedMarker(value)) {
83737
+ if (isEncryptedMarker$1(value)) {
84345
83738
  return jsxRuntimeExports.jsx(DetailCard, { summary: "Input", children: jsxRuntimeExports.jsx(EncryptedFieldBlock, {}) });
84346
83739
  }
84347
83740
  if (isExpiredMarker(value))
@@ -84368,7 +83761,7 @@ const attributeToDisplayFn = {
84368
83761
  return jsxRuntimeExports.jsx(DetailCard, { summary: "Input", children: Array.isArray(value) ? value.map((v2, i) => jsxRuntimeExports.jsx("div", { className: "mt-2 first:mt-0", children: JsonBlock(v2) }, i)) : JsonBlock(value) });
84369
83762
  },
84370
83763
  output: (value) => {
84371
- if (isEncryptedMarker(value)) {
83764
+ if (isEncryptedMarker$1(value)) {
84372
83765
  return jsxRuntimeExports.jsx(DetailCard, { summary: "Output", children: jsxRuntimeExports.jsx(EncryptedFieldBlock, {}) });
84373
83766
  }
84374
83767
  if (!hasDisplayContent(value))
@@ -84378,7 +83771,7 @@ const attributeToDisplayFn = {
84378
83771
  return jsxRuntimeExports.jsx(DetailCard, { summary: "Output", children: JsonBlock(value) });
84379
83772
  },
84380
83773
  error: (value) => {
84381
- if (isEncryptedMarker(value)) {
83774
+ if (isEncryptedMarker$1(value)) {
84382
83775
  return jsxRuntimeExports.jsx(DetailCard, { summary: "Error", defaultOpen: true, children: jsxRuntimeExports.jsx(EncryptedFieldBlock, {}) });
84383
83776
  }
84384
83777
  if (isExpiredMarker(value))
@@ -84391,7 +83784,7 @@ const attributeToDisplayFn = {
84391
83784
  return jsxRuntimeExports.jsx(DetailCard, { summary: "Error", defaultOpen: true, children: JsonBlock(value) });
84392
83785
  },
84393
83786
  eventData: (value) => {
84394
- if (isEncryptedMarker(value)) {
83787
+ if (isEncryptedMarker$1(value)) {
84395
83788
  return jsxRuntimeExports.jsx(DetailCard, { summary: "Event Data", defaultOpen: true, children: jsxRuntimeExports.jsx(EncryptedFieldBlock, {}) });
84396
83789
  }
84397
83790
  if (isExpiredMarker(value))
@@ -85059,7 +84452,7 @@ const eventFailed = "_eventFailed_1ytrx_1432";
85059
84452
  const eventRetrying = "_eventRetrying_1ytrx_1441";
85060
84453
  const eventHook = "_eventHook_1ytrx_1450";
85061
84454
  const eventDefault = "_eventDefault_1ytrx_1459";
85062
- const styles$2 = {
84455
+ const styles$3 = {
85063
84456
  traceNode,
85064
84457
  childRow,
85065
84458
  spanNode,
@@ -85529,15 +84922,15 @@ const SEGMENT_LABELS = {
85529
84922
  function SegmentLayer({ segments, spanDuration: spanDuration2 }) {
85530
84923
  if (segments.length === 0)
85531
84924
  return null;
85532
- return jsxRuntimeExports.jsx("div", { className: styles$2.segmentLayer, children: segments.map((seg, i) => {
85533
- const className = styles$2[SEGMENT_CLASS_MAP[seg.status]];
84925
+ return jsxRuntimeExports.jsx("div", { className: styles$3.segmentLayer, children: segments.map((seg, i) => {
84926
+ const className = styles$3[SEGMENT_CLASS_MAP[seg.status]];
85534
84927
  const segDuration = (seg.endFraction - seg.startFraction) * spanDuration2;
85535
84928
  const label = SEGMENT_LABELS[seg.status];
85536
84929
  const style2 = {
85537
84930
  left: `${seg.startFraction * 100}%`,
85538
84931
  width: `${(seg.endFraction - seg.startFraction) * 100}%`
85539
84932
  };
85540
- return jsxRuntimeExports.jsx("div", { className: `${styles$2.segment} ${String(className)}`, style: style2, title: label ? `${label} ${formatDuration(segDuration)}` : formatDuration(segDuration) }, `seg-${seg.status}-${String(i)}`);
84933
+ return jsxRuntimeExports.jsx("div", { className: `${styles$3.segment} ${String(className)}`, style: style2, title: label ? `${label} ${formatDuration(segDuration)}` : formatDuration(segDuration) }, `seg-${seg.status}-${String(i)}`);
85541
84934
  }) });
85542
84935
  }
85543
84936
  function getSegmentTags(segments, spanDuration2) {
@@ -85566,7 +84959,7 @@ function TextContent({ node: node2, layout, durationMs, segmentTags }) {
85566
84959
  return null;
85567
84960
  }
85568
84961
  const showTags = segmentTags && segmentTags.length > 0 && (layout.isHovered || layout.width > 200);
85569
- return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsxs("span", { className: styles$2.spanName, children: [node2.label || node2.span.name, showTags ? segmentTags.map((tag, i) => jsxRuntimeExports.jsxs("span", { className: styles$2.segmentTag, children: [" · ", tag.label, " ", tag.duration] }, i)) : null] }), layout.isHuge ? jsxRuntimeExports.jsx("span", { className: styles$2.spanSpacer }) : null, layout.isHovered || layout.width > 128 ? jsxRuntimeExports.jsx("span", { className: styles$2.spanDuration, children: duration2 }) : null] });
84962
+ return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsxs("span", { className: styles$3.spanName, children: [node2.label || node2.span.name, showTags ? segmentTags.map((tag, i) => jsxRuntimeExports.jsxs("span", { className: styles$3.segmentTag, children: [" · ", tag.label, " ", tag.duration] }, i)) : null] }), layout.isHuge ? jsxRuntimeExports.jsx("span", { className: styles$3.spanSpacer }) : null, layout.isHovered || layout.width > 128 ? jsxRuntimeExports.jsx("span", { className: styles$3.spanDuration, children: duration2 }) : null] });
85570
84963
  }
85571
84964
  function DefaultContent({ node: node2, layout }) {
85572
84965
  return jsxRuntimeExports.jsx(TextContent, { node: node2, layout });
@@ -85689,8 +85082,8 @@ function getSpanLayout(resourceType, node2, root2, scale, scrollSnapshotRef) {
85689
85082
  }
85690
85083
  const getSpanColorClassName = (node2) => {
85691
85084
  if (node2.isVercel)
85692
- return String(styles$2.colorVercel);
85693
- return String(styles$2[`color${node2.resourceIndex % 5}`]);
85085
+ return String(styles$3.colorVercel);
85086
+ return String(styles$3[`color${node2.resourceIndex % 5}`]);
85694
85087
  };
85695
85088
  function getTerminalTimestamp(resourceType, node2) {
85696
85089
  const events2 = node2.events;
@@ -85833,7 +85226,7 @@ const SpanComponent = reactExports.memo(function SpanComponent2({ node: node2, r
85833
85226
  return () => cancelAnimationFrame(rafId);
85834
85227
  }, [isLive, canonicalStartTime, scale]);
85835
85228
  const renderNode = segmentNode;
85836
- return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx("button", { "aria-label": `${span.name} - ${duration2}`, className: clsx(styles$2.spanNode, layout.isHuge && styles$2.huge, layout.isSmall && styles$2.small, layout.isExpanded && styles$2.xHover, node2.isHighlighted ? styles$2.colorHighlight : getSpanColorClassName(node2), node2.isHighlighted === false && styles$2.unlit, customClassName, hasSegments2 && styles$2.hasSegments), "data-span-id": span.spanId, "data-start-time": segmentNode.startTime - root2.startTime, "data-right-side": layout.isNearRightSide, "data-selected": node2.isSelected ? "" : void 0, ref, style: getSpanStyle(layout, segmentNode, root2, scale), type: "button", children: jsxRuntimeExports.jsx(SpanContent, { durationMs, resourceType, node: renderNode, layout }) }), segmentNode.events && !layout.isSmall ? segmentNode.events.map((x2) => jsxRuntimeExports.jsx(SpanEventComponent, { customSpanEventClassNameFunc, event: x2, node: segmentNode, root: root2, scale, asBoundary: isWorkflowSpan }, x2.key)) : null] });
85229
+ return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx("button", { "aria-label": `${span.name} - ${duration2}`, className: clsx(styles$3.spanNode, layout.isHuge && styles$3.huge, layout.isSmall && styles$3.small, layout.isExpanded && styles$3.xHover, node2.isHighlighted ? styles$3.colorHighlight : getSpanColorClassName(node2), node2.isHighlighted === false && styles$3.unlit, customClassName, hasSegments2 && styles$3.hasSegments), "data-span-id": span.spanId, "data-start-time": segmentNode.startTime - root2.startTime, "data-right-side": layout.isNearRightSide, "data-selected": node2.isSelected ? "" : void 0, ref, style: getSpanStyle(layout, segmentNode, root2, scale), type: "button", children: jsxRuntimeExports.jsx(SpanContent, { durationMs, resourceType, node: renderNode, layout }) }), segmentNode.events && !layout.isSmall ? segmentNode.events.map((x2) => jsxRuntimeExports.jsx(SpanEventComponent, { customSpanEventClassNameFunc, event: x2, node: segmentNode, root: root2, scale, asBoundary: isWorkflowSpan }, x2.key)) : null] });
85837
85230
  });
85838
85231
  const BOUNDARY_LABELS = {
85839
85232
  step_started: "Started",
@@ -85892,17 +85285,17 @@ const SpanEventComponent = reactExports.memo(function SpanEventComponent2({ even
85892
85285
  const isLeftAligned = node2.duration <= 0 || (event.timestamp - node2.startTime) / node2.duration < 0.5;
85893
85286
  const customClassName = customSpanEventClassNameFunc ? customSpanEventClassNameFunc(event) : "";
85894
85287
  return jsxRuntimeExports.jsxs("div", { title: phaseDuration ? `${displayLabel} ${timestamp}
85895
- ${phaseLabel} ${phaseDuration}` : `${displayLabel} ${timestamp}`, className: clsx(styles$2.spanNodeEvent, customClassName, asBoundary && styles$2.boundaryMarker, node2.isHighlighted ? styles$2.colorHighlight : getSpanColorClassName(node2), node2.isHighlighted === false && styles$2.unlit), "data-hovered": event.isHovered, ref, style: {
85288
+ ${phaseLabel} ${phaseDuration}` : `${displayLabel} ${timestamp}`, className: clsx(styles$3.spanNodeEvent, customClassName, asBoundary && styles$3.boundaryMarker, node2.isHighlighted ? styles$3.colorHighlight : getSpanColorClassName(node2), node2.isHighlighted === false && styles$3.unlit), "data-hovered": event.isHovered, ref, style: {
85896
85289
  left,
85897
85290
  top
85898
- }, children: [jsxRuntimeExports.jsx("div", { className: clsx(styles$2.hoverInfo, isLeftAligned ? styles$2.alignStart : styles$2.alignEnd), children: asBoundary ? jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx("span", { className: styles$2.eventName, children: displayLabel }), jsxRuntimeExports.jsx("span", { className: styles$2.eventTimestamp, children: timestamp }), phaseDuration ? jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx("span", { className: styles$2.eventName, children: phaseLabel }), jsxRuntimeExports.jsx("span", { className: styles$2.eventTimestamp, children: phaseDuration })] }) : null] }) : jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx("span", { className: styles$2.eventName, children: name2 }), jsxRuntimeExports.jsx("span", { className: styles$2.eventTimestamp, children: timestamp })] }) }), asBoundary ? jsxRuntimeExports.jsx("div", { className: styles$2.boundaryLine }) : jsxRuntimeExports.jsx("div", { className: styles$2.eventDiamond })] });
85291
+ }, children: [jsxRuntimeExports.jsx("div", { className: clsx(styles$3.hoverInfo, isLeftAligned ? styles$3.alignStart : styles$3.alignEnd), children: asBoundary ? jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx("span", { className: styles$3.eventName, children: displayLabel }), jsxRuntimeExports.jsx("span", { className: styles$3.eventTimestamp, children: timestamp }), phaseDuration ? jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx("span", { className: styles$3.eventName, children: phaseLabel }), jsxRuntimeExports.jsx("span", { className: styles$3.eventTimestamp, children: phaseDuration })] }) : null] }) : jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx("span", { className: styles$3.eventName, children: name2 }), jsxRuntimeExports.jsx("span", { className: styles$3.eventTimestamp, children: timestamp })] }) }), asBoundary ? jsxRuntimeExports.jsx("div", { className: styles$3.boundaryLine }) : jsxRuntimeExports.jsx("div", { className: styles$3.eventDiamond })] });
85899
85292
  });
85900
85293
  const colorTokenMap = {
85901
85294
  "gray-700": "var(--ds-gray-700)",
85902
85295
  "gray-900": "var(--ds-gray-900)"
85903
85296
  };
85904
85297
  function IconChevronDown({ size: size2 = 16 }) {
85905
- return jsxRuntimeExports.jsxs("svg", { width: size2, height: size2, viewBox: "0 0 24 24", fill: "none", "aria-hidden": true, className: styles$2.detailHeadingIcon, children: [jsxRuntimeExports.jsx("title", { children: "Chevron Down" }), jsxRuntimeExports.jsx("path", { d: "M6 9l6 6 6-6", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" })] });
85298
+ return jsxRuntimeExports.jsxs("svg", { width: size2, height: size2, viewBox: "0 0 24 24", fill: "none", "aria-hidden": true, className: styles$3.detailHeadingIcon, children: [jsxRuntimeExports.jsx("title", { children: "Chevron Down" }), jsxRuntimeExports.jsx("path", { d: "M6 9l6 6 6-6", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" })] });
85906
85299
  }
85907
85300
  function IconExternalSmall({ size: size2 = 16, color: color5 = "gray-900" }) {
85908
85301
  const style2 = { color: colorTokenMap[color5] || color5 };
@@ -85917,7 +85310,7 @@ function Link(props) {
85917
85310
  return jsxRuntimeExports.jsx("a", { className, href, ...rest, children: children2 });
85918
85311
  }
85919
85312
  function Skeleton$1({ width, height, rounded }) {
85920
- return jsxRuntimeExports.jsx("span", { className: clsx(styles$2.skeleton, rounded && styles$2.skeletonRounded), style: { width, height }, "aria-hidden": true });
85313
+ return jsxRuntimeExports.jsx("span", { className: clsx(styles$3.skeleton, rounded && styles$3.skeletonRounded), style: { width, height }, "aria-hidden": true });
85921
85314
  }
85922
85315
  const EXPANDED_STORAGE_KEY_PREFIX = "vc-trace-span-exp:";
85923
85316
  function DetailGroup({ name: name2, className = "", children: children2 }) {
@@ -85933,7 +85326,7 @@ function DetailGroup({ name: name2, className = "", children: children2 }) {
85933
85326
  return willBeExpanded;
85934
85327
  });
85935
85328
  }, [name2]);
85936
- return jsxRuntimeExports.jsxs("div", { className: clsx(styles$2.detailGroup, isExpanded ? styles$2.expanded : styles$2.collapsed, className), children: [jsxRuntimeExports.jsxs("button", { className: styles$2.detailHeading, onClick: toggleExpanded, type: "button", children: [jsxRuntimeExports.jsx("span", { children: name2 }), jsxRuntimeExports.jsx(IconChevronDown, {})] }), isExpanded ? children2 : null] });
85329
+ return jsxRuntimeExports.jsxs("div", { className: clsx(styles$3.detailGroup, isExpanded ? styles$3.expanded : styles$3.collapsed, className), children: [jsxRuntimeExports.jsxs("button", { className: styles$3.detailHeading, onClick: toggleExpanded, type: "button", children: [jsxRuntimeExports.jsx("span", { children: name2 }), jsxRuntimeExports.jsx(IconChevronDown, {})] }), isExpanded ? children2 : null] });
85937
85330
  }
85938
85331
  reactExports.memo(function EntrySpanLinks({ getQuickLinks, span }) {
85939
85332
  const links = getQuickLinks(span);
@@ -85957,7 +85350,7 @@ function usePromise(promise2) {
85957
85350
  }
85958
85351
  function EntrySpanLink({ name: name2, link: linkPromise }) {
85959
85352
  const link2 = usePromise(linkPromise);
85960
- return jsxRuntimeExports.jsxs(Link, { as: link2 ? void 0 : "span", className: clsx(styles$2.spanDetailPanelAttribute, styles$2.spanDetailPanelQuickLink), href: (link2 == null ? void 0 : link2.href) || "", children: [jsxRuntimeExports.jsx("span", { className: styles$2.spanDetailPanelAttributeKey, children: name2 }), jsxRuntimeExports.jsx("span", { className: clsx(styles$2.spanDetailPanelAttributeValue, styles$2.spanDetailPanelQuickLinkLabel), children: link2 ? jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [link2.label, link2.icon || jsxRuntimeExports.jsx(IconExternalSmall, { color: "gray-900" })] }) : jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx(Skeleton$1, { height: 18, width: 32 + name2.length * 8 }), jsxRuntimeExports.jsx(Skeleton$1, { height: 18, rounded: true, width: 18 })] }) })] });
85353
+ return jsxRuntimeExports.jsxs(Link, { as: link2 ? void 0 : "span", className: clsx(styles$3.spanDetailPanelAttribute, styles$3.spanDetailPanelQuickLink), href: (link2 == null ? void 0 : link2.href) || "", children: [jsxRuntimeExports.jsx("span", { className: styles$3.spanDetailPanelAttributeKey, children: name2 }), jsxRuntimeExports.jsx("span", { className: clsx(styles$3.spanDetailPanelAttributeValue, styles$3.spanDetailPanelQuickLinkLabel), children: link2 ? jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [link2.label, link2.icon || jsxRuntimeExports.jsx(IconExternalSmall, { color: "gray-900" })] }) : jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx(Skeleton$1, { height: 18, width: 32 + name2.length * 8 }), jsxRuntimeExports.jsx(Skeleton$1, { height: 18, rounded: true, width: 18 })] }) })] });
85961
85354
  }
85962
85355
  function useImmediateStyle(ref) {
85963
85356
  const styleRef = reactExports.useRef({});
@@ -86116,10 +85509,10 @@ reactExports.memo(function MiniMap({ timelineRef, rows, scale }) {
86116
85509
  $timeline.removeEventListener("scroll", onScroll);
86117
85510
  };
86118
85511
  }, [timelineRef, thumbRatio, setThumbStyle]);
86119
- return jsxRuntimeExports.jsxs("div", { className: styles$2.mapContainer, ref: containerRef, style: {
85512
+ return jsxRuntimeExports.jsxs("div", { className: styles$3.mapContainer, ref: containerRef, style: {
86120
85513
  width: thumbWidth > 0 ? mapWidth : "100%",
86121
85514
  height: MAP_HEIGHT
86122
- }, children: [jsxRuntimeExports.jsx("canvas", { className: styles$2.mapCanvas, height: MAP_HEIGHT * dpi, ref: canvasRef, style: { width: mapWidth, height: MAP_HEIGHT }, width: mapWidth * dpi }), jsxRuntimeExports.jsx("div", { className: styles$2.mapThumb, ref: thumbRef, style: {
85515
+ }, children: [jsxRuntimeExports.jsx("canvas", { className: styles$3.mapCanvas, height: MAP_HEIGHT * dpi, ref: canvasRef, style: { width: mapWidth, height: MAP_HEIGHT }, width: mapWidth * dpi }), jsxRuntimeExports.jsx("div", { className: styles$3.mapThumb, ref: thumbRef, style: {
86123
85516
  transform: thumbStyle.transform,
86124
85517
  width: thumbWidth > 0 ? thumbWidth : `calc(100% - ${TIMELINE_PADDING * 2}px)`,
86125
85518
  top: 2,
@@ -86184,6 +85577,26 @@ const iconButtonVariants = cva([
86184
85577
  });
86185
85578
  const IconButton = reactExports.forwardRef(({ className, variant, size: size2, type = "button", ...props }, ref) => jsxRuntimeExports.jsx("button", { ref, type, className: cn$4(iconButtonVariants({ variant, size: size2, className })), ...props }));
86186
85579
  IconButton.displayName = "IconButton";
85580
+ const kbdVariants = cva("inline-flex items-center justify-center rounded px-1 text-center font-sans", {
85581
+ variants: {
85582
+ variant: {
85583
+ subtle: "bg-background-100/20",
85584
+ outline: "border border-gray-alpha-400 bg-background-100 font-medium text-gray-900"
85585
+ },
85586
+ size: {
85587
+ default: "h-5 min-w-5 text-xs leading-none",
85588
+ compact: "h-4 min-h-4 min-w-4 text-[11px] leading-none",
85589
+ search: "h-5 min-h-5 min-w-5 text-[13px] leading-[1.7em]"
85590
+ }
85591
+ },
85592
+ defaultVariants: {
85593
+ variant: "subtle",
85594
+ size: "default"
85595
+ }
85596
+ });
85597
+ function Kbd({ children: children2, className, variant, size: size2, ...props }) {
85598
+ return jsxRuntimeExports.jsx("kbd", { className: cn$4(kbdVariants({ variant, size: size2, className })), ...props, children: children2 });
85599
+ }
86187
85600
  const COL_TEMPLATE = "340px 1px minmax(50px, 1fr)";
86188
85601
  const ROWS = [
86189
85602
  { id: "r0", name: 62, off: 0, bar: 72 },
@@ -86235,9 +85648,6 @@ function useLoadMoreOnScroll(loadMore, { hasMore, isLoadingMore, rootRef, rootMa
86235
85648
  }, [entry2 == null ? void 0 : entry2.isIntersecting, hasMore, isLoadingMore]);
86236
85649
  return sentinelRef;
86237
85650
  }
86238
- function Kbd({ children: children2, className }) {
86239
- return jsxRuntimeExports.jsx("kbd", { className: cn$4("inline-flex h-5 min-w-5 items-center justify-center rounded bg-background-100/20 px-1 text-center font-sans text-xs leading-none", className), children: children2 });
86240
- }
86241
85651
  const TooltipProvider = Provider$2;
86242
85652
  const Tooltip$1 = Root3$1;
86243
85653
  const TooltipTrigger$1 = Trigger$4;
@@ -86823,6 +86233,57 @@ const EventList = ({ spans, activeSpanId, searchResult, onSelectSpan }) => {
86823
86233
  paddingBottom: (spans.length - end) * ROW_HEIGHT_PX
86824
86234
  }, children: spans.slice(start2, end).map((span) => jsxRuntimeExports.jsx(EventRow, { span, isSelected: span.spanId === activeSpanId, isDimmed: isSpanDimmedBySearch(span.spanId, searchResult), onSelectSpan }, span.spanId)) });
86825
86235
  };
86236
+ const hint$1 = "_hint_1dmsq_3";
86237
+ const styles$2 = {
86238
+ hint: hint$1
86239
+ };
86240
+ const DISMISSALS_KEY = "workflow-step-shortcut-helper-dismissals";
86241
+ const DISMISSAL_LIMIT = 3;
86242
+ const HINT_ROTATION_MS = 8e3;
86243
+ function getAltKeyLabel() {
86244
+ if (typeof navigator === "undefined")
86245
+ return "Alt";
86246
+ return navigator.platform.toLowerCase().includes("mac") ? "Option" : "Alt";
86247
+ }
86248
+ function readDismissals() {
86249
+ try {
86250
+ const dismissals = Number.parseInt(window.localStorage.getItem(DISMISSALS_KEY) ?? "0", 10);
86251
+ return Number.isNaN(dismissals) ? 0 : dismissals;
86252
+ } catch {
86253
+ return 0;
86254
+ }
86255
+ }
86256
+ function AltHint() {
86257
+ return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: ["Hold", jsxRuntimeExports.jsx(Kbd, { variant: "outline", size: "compact", className: "mx-1", children: getAltKeyLabel() }), "to see delta between spans"] });
86258
+ }
86259
+ function NavHint() {
86260
+ return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: ["Use", jsxRuntimeExports.jsx(Kbd, { variant: "outline", size: "compact", className: "ml-1", children: "J" }), jsxRuntimeExports.jsx("span", { className: "mx-1", children: "/" }), jsxRuntimeExports.jsx(Kbd, { variant: "outline", size: "compact", className: "mr-1", children: "K" }), "to move between spans"] });
86261
+ }
86262
+ function TraceShortcutHelper({ hasMultipleSpans, reducedMotion }) {
86263
+ const [visible, setVisible] = reactExports.useState(false);
86264
+ const [index2, setIndex] = reactExports.useState(0);
86265
+ reactExports.useEffect(() => {
86266
+ setVisible(readDismissals() < DISMISSAL_LIMIT);
86267
+ }, []);
86268
+ reactExports.useEffect(() => {
86269
+ if (reducedMotion)
86270
+ return;
86271
+ const id2 = setInterval(() => {
86272
+ setIndex((i) => i === 0 ? 1 : 0);
86273
+ }, HINT_ROTATION_MS);
86274
+ return () => clearInterval(id2);
86275
+ }, [reducedMotion]);
86276
+ if (!visible || !hasMultipleSpans)
86277
+ return null;
86278
+ const dismiss = () => {
86279
+ try {
86280
+ window.localStorage.setItem(DISMISSALS_KEY, String(readDismissals() + 1));
86281
+ } catch {
86282
+ }
86283
+ setVisible(false);
86284
+ };
86285
+ return jsxRuntimeExports.jsxs("div", { className: "group absolute bottom-3 left-1/2 z-10 hidden h-8 max-w-[calc(100%-2rem)] -translate-x-1/2 items-center gap-1 text-xs leading-none text-muted-foreground md:inline-flex", children: [jsxRuntimeExports.jsx("span", { "aria-live": "polite", "aria-atomic": "true", className: "inline-flex items-center whitespace-nowrap", children: reducedMotion ? jsxRuntimeExports.jsx(AltHint, {}) : jsxRuntimeExports.jsx("span", { className: `inline-flex items-center ${styles$2.hint}`, children: index2 === 0 ? jsxRuntimeExports.jsx(AltHint, {}) : jsxRuntimeExports.jsx(NavHint, {}) }, index2) }), jsxRuntimeExports.jsx("button", { type: "button", className: "inline-flex h-5 w-5 items-center justify-center rounded text-muted-foreground opacity-0 transition-opacity hover:bg-accent hover:text-foreground group-hover:opacity-100 focus-visible:opacity-100 motion-reduce:transition-none", onClick: dismiss, "aria-label": "Dismiss trace shortcuts helper", children: jsxRuntimeExports.jsx(X$3, { className: "h-3 w-3" }) })] });
86286
+ }
86826
86287
  const GUTTER_PX = 1;
86827
86288
  const MIN_PX = 50;
86828
86289
  const DEFAULT_START_PX = 340;
@@ -87461,7 +86922,6 @@ function NewTraceViewerContent({ trace: trace2, onLoadMore, hasMore, isLoadingMo
87461
86922
  if (e.key === "Escape") {
87462
86923
  handleClearActiveSpan();
87463
86924
  } else if (e.key === "Alt") {
87464
- e.preventDefault();
87465
86925
  setAltHeld(true);
87466
86926
  } else if (e.key === "j" || e.key === "k") {
87467
86927
  handleSidebarNavKey(e);
@@ -87608,13 +87068,13 @@ function NewTraceViewerContent({ trace: trace2, onLoadMore, hasMore, isLoadingMo
87608
87068
  prevSpanIdRef.current = prevSpanId;
87609
87069
  nextSpanIdRef.current = nextSpanId;
87610
87070
  navigateToSpanRef.current = navigateToSpan;
87611
- 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,360px,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, { scrollContainerRef, startHeader: jsxRuntimeExports.jsxs("div", { className: "bg-background-100 border-b border-gray-alpha-400 h-10 min-h-10 flex items-center pl-4 pr-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), onKeyDown: (e) => {
87071
+ return jsxRuntimeExports.jsxs("div", { "data-pane": "pane-root", "data-has-detail": activeSpan ? "" : void 0, className: "relative grid w-full h-full max-h-full grid-cols-[minmax(100px,1fr)] data-[has-detail]:grid-cols-[minmax(100px,1fr)_clamp(280px,360px,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, { scrollContainerRef, startHeader: jsxRuntimeExports.jsxs("div", { className: "bg-background-100 border-b border-gray-alpha-400 h-10 min-h-10 flex items-center pl-4 pr-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), onKeyDown: (e) => {
87612
87072
  if (e.key === "Escape" && searchQuery) {
87613
87073
  e.preventDefault();
87614
87074
  e.stopPropagation();
87615
87075
  setSearchQuery("");
87616
87076
  }
87617
- }, 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", "aria-label": "Clear search", onClick: () => setSearchQuery(""), className: "-mr-2 hidden h-full max-w-full shrink-0 cursor-pointer items-center rounded-r-md border-0 bg-transparent px-2.5 font-inherit text-base text-gray-900 no-underline transition-colors duration-150 ease-in hover:text-gray-1000 focus-visible:-outline-offset-1 focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--ds-focus-color)] min-[961px]:flex", children: jsxRuntimeExports.jsx("kbd", { className: "inline-flex h-5 min-h-5 min-w-5 items-center justify-center rounded border border-gray-alpha-400 bg-background-100 px-1 font-sans text-[13px] font-medium leading-[1.7em] text-gray-900", children: "Esc" }) })] }), endHeader: jsxRuntimeExports.jsx(TimelineHeader, { markers: timeMarkers, hoverInfo: hoverInfo2 }), children: [jsxRuntimeExports.jsxs("div", { className: "block overflow-visible", children: [jsxRuntimeExports.jsx(EventList, { spans: trace2.spans, activeSpanId, searchResult, onSelectSpan: handleSelectSpan }), jsxRuntimeExports.jsx("div", { ref: loadMoreSentinelRef, className: "flex justify-center", children: isLoadingMore ? jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-center gap-2 py-3 text-sm text-gray-800", children: [jsxRuntimeExports.jsx(Spinner, { size: 14 }), jsxRuntimeExports.jsx("span", { children: "Loading spans…" })] }) : null })] }), jsxRuntimeExports.jsx("div", { ref: timelineRef, className: "block min-h-0 overflow-visible relative", onDoubleClick: resetZoom, onMouseMove: handleTimelineMouseMove, onMouseLeave: handleTimelineMouseLeave, children: jsxRuntimeExports.jsx(Timeline, { spans: trace2.spans, viewStart: viewport.start, viewEnd: viewport.end, markers: timeMarkers, selectedId: activeSpanId, searchResult, onSelect: handleSelectSpan, onRevealTime: handleRevealTime, hoverFraction, altHeld }) })] }), jsxRuntimeExports.jsxs("div", { className: "absolute right-3 bottom-3 z-[5] flex items-center border border-gray-alpha-400 rounded-md bg-background-100 shadow-sm overflow-hidden divide-x divide-gray-alpha-400", children: [jsxRuntimeExports.jsx(IconButton, { variant: "muted", size: "small", onClick: zoomOut, "aria-label": "Zoom out", children: jsxRuntimeExports.jsx(ZoomOut, { className: "w-4 h-4" }) }), jsxRuntimeExports.jsx(IconButton, { variant: "muted", size: "small", onClick: resetZoom, "aria-label": "Reset zoom", children: jsxRuntimeExports.jsx(RotateCcw, { className: "w-3.5 h-3.5" }) }), jsxRuntimeExports.jsx(IconButton, { variant: "muted", size: "small", onClick: zoomIn, "aria-label": "Zoom in", children: jsxRuntimeExports.jsx(ZoomIn, { className: "w-4 h-4" }) })] })] }), activeSpan ? 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.jsxs("div", { className: "flex items-center justify-between gap-2 shrink-0 px-4 pt-3 pb-3", children: [jsxRuntimeExports.jsx("span", { className: "text-label-14 font-medium text-gray-1000 truncate block", children: selectedSpanName }), jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-0.5 shrink-0", children: [jsxRuntimeExports.jsxs(Tooltip$1, { children: [jsxRuntimeExports.jsx(TooltipTrigger$1, { asChild: true, children: jsxRuntimeExports.jsx(IconButton, { "aria-label": "Navigate up", "aria-keyshortcuts": "K", onClick: handleSelectPrevSpan, disabled: !prevSpanId, children: jsxRuntimeExports.jsx(ChevronUp, { className: "w-4 h-4" }) }) }), prevSpanId ? jsxRuntimeExports.jsxs(TooltipContent$1, { children: ["Navigate up", jsxRuntimeExports.jsx(Kbd, { children: "K" })] }) : null] }), jsxRuntimeExports.jsxs(Tooltip$1, { children: [jsxRuntimeExports.jsx(TooltipTrigger$1, { asChild: true, children: jsxRuntimeExports.jsx(IconButton, { "aria-label": "Navigate down", "aria-keyshortcuts": "J", onClick: handleSelectNextSpan, disabled: !nextSpanId, children: jsxRuntimeExports.jsx(ChevronDown, { className: "w-4 h-4" }) }) }), nextSpanId ? jsxRuntimeExports.jsxs(TooltipContent$1, { children: ["Navigate down", jsxRuntimeExports.jsx(Kbd, { children: "J" })] }) : null] }), jsxRuntimeExports.jsx("div", { "aria-hidden": true, className: "w-px h-4 bg-gray-alpha-400 mx-1" }), jsxRuntimeExports.jsx(IconButton, { "aria-label": "Close span details", "aria-keyshortcuts": "Escape", onClick: handleClearActiveSpan, 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 }) }) })] }) : null] });
87077
+ }, 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", "aria-label": "Clear search", onClick: () => setSearchQuery(""), className: "-mr-2 hidden h-full max-w-full shrink-0 cursor-pointer items-center rounded-r-md border-0 bg-transparent px-2.5 font-inherit text-base text-gray-900 no-underline transition-colors duration-150 ease-in hover:text-gray-1000 focus-visible:-outline-offset-1 focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--ds-focus-color)] min-[961px]:flex", children: jsxRuntimeExports.jsx(Kbd, { variant: "outline", size: "search", children: "Esc" }) })] }), endHeader: jsxRuntimeExports.jsx(TimelineHeader, { markers: timeMarkers, hoverInfo: hoverInfo2 }), children: [jsxRuntimeExports.jsxs("div", { className: "block overflow-visible", children: [jsxRuntimeExports.jsx(EventList, { spans: trace2.spans, activeSpanId, searchResult, onSelectSpan: handleSelectSpan }), jsxRuntimeExports.jsx("div", { ref: loadMoreSentinelRef, className: "flex justify-center", children: isLoadingMore ? jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-center gap-2 py-3 text-sm text-gray-800", children: [jsxRuntimeExports.jsx(Spinner, { size: 14 }), jsxRuntimeExports.jsx("span", { children: "Loading spans…" })] }) : null })] }), jsxRuntimeExports.jsx("div", { ref: timelineRef, className: "block min-h-0 overflow-visible relative", onDoubleClick: resetZoom, onMouseMove: handleTimelineMouseMove, onMouseLeave: handleTimelineMouseLeave, children: jsxRuntimeExports.jsx(Timeline, { spans: trace2.spans, viewStart: viewport.start, viewEnd: viewport.end, markers: timeMarkers, selectedId: activeSpanId, searchResult, onSelect: handleSelectSpan, onRevealTime: handleRevealTime, hoverFraction, altHeld }) })] }), jsxRuntimeExports.jsxs("div", { className: "absolute right-3 bottom-3 z-[5] flex items-center border border-gray-alpha-400 rounded-md bg-background-100 shadow-sm overflow-hidden divide-x divide-gray-alpha-400", children: [jsxRuntimeExports.jsx(IconButton, { variant: "muted", size: "small", onClick: zoomOut, "aria-label": "Zoom out", children: jsxRuntimeExports.jsx(ZoomOut, { className: "w-4 h-4" }) }), jsxRuntimeExports.jsx(IconButton, { variant: "muted", size: "small", onClick: resetZoom, "aria-label": "Reset zoom", children: jsxRuntimeExports.jsx(RotateCcw, { className: "w-3.5 h-3.5" }) }), jsxRuntimeExports.jsx(IconButton, { variant: "muted", size: "small", onClick: zoomIn, "aria-label": "Zoom in", children: jsxRuntimeExports.jsx(ZoomIn, { className: "w-4 h-4" }) })] })] }), activeSpan ? 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.jsxs("div", { className: "flex items-center justify-between gap-2 shrink-0 px-4 pt-3 pb-3", children: [jsxRuntimeExports.jsx("span", { className: "text-label-14 font-medium text-gray-1000 truncate block", children: selectedSpanName }), jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-0.5 shrink-0", children: [jsxRuntimeExports.jsxs(Tooltip$1, { children: [jsxRuntimeExports.jsx(TooltipTrigger$1, { asChild: true, children: jsxRuntimeExports.jsx(IconButton, { "aria-label": "Navigate up", "aria-keyshortcuts": "K", onClick: handleSelectPrevSpan, disabled: !prevSpanId, children: jsxRuntimeExports.jsx(ChevronUp, { className: "w-4 h-4" }) }) }), prevSpanId ? jsxRuntimeExports.jsxs(TooltipContent$1, { children: ["Navigate up", jsxRuntimeExports.jsx(Kbd, { children: "K" })] }) : null] }), jsxRuntimeExports.jsxs(Tooltip$1, { children: [jsxRuntimeExports.jsx(TooltipTrigger$1, { asChild: true, children: jsxRuntimeExports.jsx(IconButton, { "aria-label": "Navigate down", "aria-keyshortcuts": "J", onClick: handleSelectNextSpan, disabled: !nextSpanId, children: jsxRuntimeExports.jsx(ChevronDown, { className: "w-4 h-4" }) }) }), nextSpanId ? jsxRuntimeExports.jsxs(TooltipContent$1, { children: ["Navigate down", jsxRuntimeExports.jsx(Kbd, { children: "J" })] }) : null] }), jsxRuntimeExports.jsx("div", { "aria-hidden": true, className: "w-px h-4 bg-gray-alpha-400 mx-1" }), jsxRuntimeExports.jsx(IconButton, { "aria-label": "Close span details", "aria-keyshortcuts": "Escape", onClick: handleClearActiveSpan, 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 }) }) })] }) : null, jsxRuntimeExports.jsx(TraceShortcutHelper, { hasMultipleSpans: trace2.spans.length > 1, reducedMotion })] });
87618
87078
  }
87619
87079
  const NewTraceViewer = ({ run: run2, events: events2, sidebarData, onLoadMore, hasMore, isLoadingMore, loading = false }) => {
87620
87080
  const trace2 = reactExports.useMemo(() => {
@@ -90343,8 +89803,8 @@ function SegmentedControl({
90343
89803
  );
90344
89804
  }
90345
89805
  function ThemePicker() {
90346
- const { theme: theme3, setTheme } = z$4();
90347
- const currentTheme = theme3 || "system";
89806
+ const { theme, setTheme } = z$4();
89807
+ const currentTheme = theme || "system";
90348
89808
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
90349
89809
  SegmentedControl,
90350
89810
  {
@@ -90375,11 +89835,11 @@ function DocsLink$1() {
90375
89835
  ) });
90376
89836
  }
90377
89837
  const Toaster2 = ({ ...props }) => {
90378
- const { theme: theme3 = "system" } = z$4();
89838
+ const { theme = "system" } = z$4();
90379
89839
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
90380
89840
  Toaster$1,
90381
89841
  {
90382
- theme: theme3,
89842
+ theme,
90383
89843
  className: "toaster group",
90384
89844
  toastOptions: {
90385
89845
  classNames: {
@@ -91182,9 +90642,9 @@ function renderStructuredFields(framing, metadata) {
91182
90642
  if (errorCode && errorCode !== errorName) {
91183
90643
  lines.push(` ${kvKey("code")} ${dim(errorCode)}`);
91184
90644
  }
91185
- const hint$1 = pickString(metadata, "hint");
91186
- if (hint$1) {
91187
- lines.push(` ${hint(hint$1)}`);
90645
+ const hint$12 = pickString(metadata, "hint");
90646
+ if (hint$12) {
90647
+ lines.push(` ${hint(hint$12)}`);
91188
90648
  }
91189
90649
  const passThrough = Object.entries(metadata).filter(([k2, v2]) => !wellKnown.has(k2) && !redundant.has(k2) && v2 !== void 0 && v2 !== null).sort(([a2], [b2]) => a2.localeCompare(b2));
91190
90650
  for (const [k2, v2] of passThrough) {
@@ -91519,7 +90979,7 @@ const encryption = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePr
91519
90979
  encrypt: encrypt$1,
91520
90980
  importKey
91521
90981
  }, Symbol.toStringTag, { value: "Module" }));
91522
- const version$1 = "5.0.0-beta.21";
90982
+ const version$1 = "5.0.0-beta.22";
91523
90983
  const WorldCacheKey = Symbol.for("@workflow/world//cache");
91524
90984
  const WorldCachePromiseKey = Symbol.for("@workflow/world//cachePromise");
91525
90985
  const GetWorldFnKey$1 = Symbol.for("@workflow/world//getWorldFn");
@@ -93041,14 +92501,6 @@ function createReconnectingFramedStream(runId, name2, startIndex) {
93041
92501
  reader = stream.getReader();
93042
92502
  }
93043
92503
  async function reconnect() {
93044
- reconnectCount++;
93045
- totalReconnectCount++;
93046
- if (reconnectCount > FRAMED_STREAM_MAX_RECONNECTS) {
93047
- throw new Error(`Stream "${name2}" exceeded maximum reconnection attempts (${FRAMED_STREAM_MAX_RECONNECTS})`);
93048
- }
93049
- if (totalReconnectCount > FRAMED_STREAM_MAX_TOTAL_RECONNECTS) {
93050
- throw new Error(`Stream "${name2}" exceeded maximum total reconnection attempts (${FRAMED_STREAM_MAX_TOTAL_RECONNECTS})`);
93051
- }
93052
92504
  if (reader) {
93053
92505
  await reader.cancel().catch(() => {
93054
92506
  });
@@ -93057,7 +92509,21 @@ function createReconnectingFramedStream(runId, name2, startIndex) {
93057
92509
  currentStartIndex += consumedFrames;
93058
92510
  consumedFrames = 0;
93059
92511
  buffer2 = new Uint8Array(0);
93060
- await connect2();
92512
+ for (; ; ) {
92513
+ reconnectCount++;
92514
+ totalReconnectCount++;
92515
+ if (reconnectCount > FRAMED_STREAM_MAX_RECONNECTS) {
92516
+ throw new Error(`Stream "${name2}" exceeded maximum reconnection attempts (${FRAMED_STREAM_MAX_RECONNECTS})`);
92517
+ }
92518
+ if (totalReconnectCount > FRAMED_STREAM_MAX_TOTAL_RECONNECTS) {
92519
+ throw new Error(`Stream "${name2}" exceeded maximum total reconnection attempts (${FRAMED_STREAM_MAX_TOTAL_RECONNECTS})`);
92520
+ }
92521
+ try {
92522
+ await connect2();
92523
+ return;
92524
+ } catch {
92525
+ }
92526
+ }
93061
92527
  }
93062
92528
  return new ReadableStream({
93063
92529
  pull: async (controller) => {
@@ -100551,7 +100017,7 @@ function requireUtil$4() {
100551
100017
  return normalizedMethodRecordsBase[method.toLowerCase()] ?? method;
100552
100018
  }
100553
100019
  const esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));
100554
- function createIterator2(name2, kInternalIterator, keyIndex = 0, valueIndex = 1) {
100020
+ function createIterator(name2, kInternalIterator, keyIndex = 0, valueIndex = 1) {
100555
100021
  var _target, _kind, _index;
100556
100022
  class FastIterableIterator {
100557
100023
  /**
@@ -100624,7 +100090,7 @@ function requireUtil$4() {
100624
100090
  };
100625
100091
  }
100626
100092
  function iteratorMixin(name2, object2, kInternalIterator, keyIndex = 0, valueIndex = 1) {
100627
- const makeIterator = createIterator2(name2, kInternalIterator, keyIndex, valueIndex);
100093
+ const makeIterator = createIterator(name2, kInternalIterator, keyIndex, valueIndex);
100628
100094
  const properties2 = {
100629
100095
  keys: {
100630
100096
  writable: true,
@@ -100970,7 +100436,7 @@ function requireUtil$4() {
100970
100436
  sameOrigin,
100971
100437
  normalizeMethod,
100972
100438
  iteratorMixin,
100973
- createIterator: createIterator2,
100439
+ createIterator,
100974
100440
  isValidHeaderName,
100975
100441
  isValidHeaderValue,
100976
100442
  isErrorLike,
@@ -122454,7 +121920,7 @@ function createLocalWorld(args) {
122454
121920
  const basedir = mergedConfig.dataDir;
122455
121921
  const hooksDir = path$3.join(basedir, "hooks");
122456
121922
  const taggedHookFiles = await listTaggedFiles(hooksDir, tag);
122457
- const { HookSchema: HookSchema2 } = await import("./index-CCVnYBh5.js");
121923
+ const { HookSchema: HookSchema2 } = await import("./index-BAzmSj9V.js");
122458
121924
  await Promise.all(taggedHookFiles.map(async (hookFile) => {
122459
121925
  const hook = await readJSON(path$3.join(hooksDir, hookFile), HookSchema2);
122460
121926
  if (hook == null ? void 0 : hook.token) {
@@ -122494,25 +121960,25 @@ var hasRequiredGetContext;
122494
121960
  function requireGetContext() {
122495
121961
  if (hasRequiredGetContext) return getContext_1;
122496
121962
  hasRequiredGetContext = 1;
122497
- var __defProp3 = Object.defineProperty;
122498
- var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
122499
- var __getOwnPropNames2 = Object.getOwnPropertyNames;
122500
- var __hasOwnProp2 = Object.prototype.hasOwnProperty;
122501
- var __export2 = (target2, all2) => {
121963
+ var __defProp2 = Object.defineProperty;
121964
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
121965
+ var __getOwnPropNames = Object.getOwnPropertyNames;
121966
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
121967
+ var __export = (target2, all2) => {
122502
121968
  for (var name2 in all2)
122503
- __defProp3(target2, name2, { get: all2[name2], enumerable: true });
121969
+ __defProp2(target2, name2, { get: all2[name2], enumerable: true });
122504
121970
  };
122505
- var __copyProps2 = (to2, from, except, desc) => {
121971
+ var __copyProps = (to2, from, except, desc) => {
122506
121972
  if (from && typeof from === "object" || typeof from === "function") {
122507
- for (let key of __getOwnPropNames2(from))
122508
- if (!__hasOwnProp2.call(to2, key) && key !== except)
122509
- __defProp3(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
121973
+ for (let key of __getOwnPropNames(from))
121974
+ if (!__hasOwnProp.call(to2, key) && key !== except)
121975
+ __defProp2(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
122510
121976
  }
122511
121977
  return to2;
122512
121978
  };
122513
- var __toCommonJS = (mod) => __copyProps2(__defProp3({}, "__esModule", { value: true }), mod);
121979
+ var __toCommonJS = (mod) => __copyProps(__defProp2({}, "__esModule", { value: true }), mod);
122514
121980
  var get_context_exports = {};
122515
- __export2(get_context_exports, {
121981
+ __export(get_context_exports, {
122516
121982
  SYMBOL_FOR_REQ_CONTEXT: () => SYMBOL_FOR_REQ_CONTEXT,
122517
121983
  getContext: () => getContext
122518
121984
  });
@@ -122530,25 +121996,25 @@ var hasRequiredTokenError;
122530
121996
  function requireTokenError() {
122531
121997
  if (hasRequiredTokenError) return tokenError;
122532
121998
  hasRequiredTokenError = 1;
122533
- var __defProp3 = Object.defineProperty;
122534
- var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
122535
- var __getOwnPropNames2 = Object.getOwnPropertyNames;
122536
- var __hasOwnProp2 = Object.prototype.hasOwnProperty;
122537
- var __export2 = (target2, all2) => {
121999
+ var __defProp2 = Object.defineProperty;
122000
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
122001
+ var __getOwnPropNames = Object.getOwnPropertyNames;
122002
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
122003
+ var __export = (target2, all2) => {
122538
122004
  for (var name2 in all2)
122539
- __defProp3(target2, name2, { get: all2[name2], enumerable: true });
122005
+ __defProp2(target2, name2, { get: all2[name2], enumerable: true });
122540
122006
  };
122541
- var __copyProps2 = (to2, from, except, desc) => {
122007
+ var __copyProps = (to2, from, except, desc) => {
122542
122008
  if (from && typeof from === "object" || typeof from === "function") {
122543
- for (let key of __getOwnPropNames2(from))
122544
- if (!__hasOwnProp2.call(to2, key) && key !== except)
122545
- __defProp3(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
122009
+ for (let key of __getOwnPropNames(from))
122010
+ if (!__hasOwnProp.call(to2, key) && key !== except)
122011
+ __defProp2(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
122546
122012
  }
122547
122013
  return to2;
122548
122014
  };
122549
- var __toCommonJS = (mod) => __copyProps2(__defProp3({}, "__esModule", { value: true }), mod);
122015
+ var __toCommonJS = (mod) => __copyProps(__defProp2({}, "__esModule", { value: true }), mod);
122550
122016
  var token_error_exports = {};
122551
- __export2(token_error_exports, {
122017
+ __export(token_error_exports, {
122552
122018
  VercelOidcTokenError: () => VercelOidcTokenError
122553
122019
  });
122554
122020
  tokenError = __toCommonJS(token_error_exports);
@@ -122572,25 +122038,25 @@ var hasRequiredGetVercelOidcToken;
122572
122038
  function requireGetVercelOidcToken() {
122573
122039
  if (hasRequiredGetVercelOidcToken) return getVercelOidcToken_1;
122574
122040
  hasRequiredGetVercelOidcToken = 1;
122575
- var __defProp3 = Object.defineProperty;
122576
- var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
122577
- var __getOwnPropNames2 = Object.getOwnPropertyNames;
122578
- var __hasOwnProp2 = Object.prototype.hasOwnProperty;
122579
- var __export2 = (target2, all2) => {
122041
+ var __defProp2 = Object.defineProperty;
122042
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
122043
+ var __getOwnPropNames = Object.getOwnPropertyNames;
122044
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
122045
+ var __export = (target2, all2) => {
122580
122046
  for (var name2 in all2)
122581
- __defProp3(target2, name2, { get: all2[name2], enumerable: true });
122047
+ __defProp2(target2, name2, { get: all2[name2], enumerable: true });
122582
122048
  };
122583
- var __copyProps2 = (to2, from, except, desc) => {
122049
+ var __copyProps = (to2, from, except, desc) => {
122584
122050
  if (from && typeof from === "object" || typeof from === "function") {
122585
- for (let key of __getOwnPropNames2(from))
122586
- if (!__hasOwnProp2.call(to2, key) && key !== except)
122587
- __defProp3(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
122051
+ for (let key of __getOwnPropNames(from))
122052
+ if (!__hasOwnProp.call(to2, key) && key !== except)
122053
+ __defProp2(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
122588
122054
  }
122589
122055
  return to2;
122590
122056
  };
122591
- var __toCommonJS = (mod) => __copyProps2(__defProp3({}, "__esModule", { value: true }), mod);
122057
+ var __toCommonJS = (mod) => __copyProps(__defProp2({}, "__esModule", { value: true }), mod);
122592
122058
  var get_vercel_oidc_token_exports = {};
122593
- __export2(get_vercel_oidc_token_exports, {
122059
+ __export(get_vercel_oidc_token_exports, {
122594
122060
  getVercelOidcToken: () => getVercelOidcToken,
122595
122061
  getVercelOidcTokenSync: () => getVercelOidcTokenSync
122596
122062
  });
@@ -122607,8 +122073,8 @@ function requireGetVercelOidcToken() {
122607
122073
  }
122608
122074
  try {
122609
122075
  const [{ getTokenPayload, isExpired }, { refreshToken }] = await Promise.all([
122610
- await import("./token-util-YVFsN8wA.js").then((n) => n.t),
122611
- await import("./token-DWlFlsmX.js").then((n) => n.t)
122076
+ await import("./token-util-6H5PWMXy.js").then((n) => n.t),
122077
+ await import("./token-D-3FNfzy.js").then((n) => n.t)
122612
122078
  ]);
122613
122079
  if (!token || isExpired(getTokenPayload(token), options == null ? void 0 : options.expirationBufferMs)) {
122614
122080
  await refreshToken(options);
@@ -122644,25 +122110,25 @@ var hasRequiredAuthErrors;
122644
122110
  function requireAuthErrors() {
122645
122111
  if (hasRequiredAuthErrors) return authErrors;
122646
122112
  hasRequiredAuthErrors = 1;
122647
- var __defProp3 = Object.defineProperty;
122648
- var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
122649
- var __getOwnPropNames2 = Object.getOwnPropertyNames;
122650
- var __hasOwnProp2 = Object.prototype.hasOwnProperty;
122651
- var __export2 = (target2, all2) => {
122113
+ var __defProp2 = Object.defineProperty;
122114
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
122115
+ var __getOwnPropNames = Object.getOwnPropertyNames;
122116
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
122117
+ var __export = (target2, all2) => {
122652
122118
  for (var name2 in all2)
122653
- __defProp3(target2, name2, { get: all2[name2], enumerable: true });
122119
+ __defProp2(target2, name2, { get: all2[name2], enumerable: true });
122654
122120
  };
122655
- var __copyProps2 = (to2, from, except, desc) => {
122121
+ var __copyProps = (to2, from, except, desc) => {
122656
122122
  if (from && typeof from === "object" || typeof from === "function") {
122657
- for (let key of __getOwnPropNames2(from))
122658
- if (!__hasOwnProp2.call(to2, key) && key !== except)
122659
- __defProp3(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
122123
+ for (let key of __getOwnPropNames(from))
122124
+ if (!__hasOwnProp.call(to2, key) && key !== except)
122125
+ __defProp2(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
122660
122126
  }
122661
122127
  return to2;
122662
122128
  };
122663
- var __toCommonJS = (mod) => __copyProps2(__defProp3({}, "__esModule", { value: true }), mod);
122129
+ var __toCommonJS = (mod) => __copyProps(__defProp2({}, "__esModule", { value: true }), mod);
122664
122130
  var auth_errors_exports = {};
122665
- __export2(auth_errors_exports, {
122131
+ __export(auth_errors_exports, {
122666
122132
  AccessTokenMissingError: () => AccessTokenMissingError,
122667
122133
  RefreshAccessTokenFailedError: () => RefreshAccessTokenFailedError
122668
122134
  });
@@ -122688,42 +122154,42 @@ var hasRequiredTokenIo;
122688
122154
  function requireTokenIo() {
122689
122155
  if (hasRequiredTokenIo) return tokenIo;
122690
122156
  hasRequiredTokenIo = 1;
122691
- var __create2 = Object.create;
122692
- var __defProp3 = Object.defineProperty;
122693
- var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
122694
- var __getOwnPropNames2 = Object.getOwnPropertyNames;
122695
- var __getProtoOf3 = Object.getPrototypeOf;
122696
- var __hasOwnProp2 = Object.prototype.hasOwnProperty;
122697
- var __export2 = (target2, all2) => {
122157
+ var __create = Object.create;
122158
+ var __defProp2 = Object.defineProperty;
122159
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
122160
+ var __getOwnPropNames = Object.getOwnPropertyNames;
122161
+ var __getProtoOf2 = Object.getPrototypeOf;
122162
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
122163
+ var __export = (target2, all2) => {
122698
122164
  for (var name2 in all2)
122699
- __defProp3(target2, name2, { get: all2[name2], enumerable: true });
122165
+ __defProp2(target2, name2, { get: all2[name2], enumerable: true });
122700
122166
  };
122701
- var __copyProps2 = (to2, from, except, desc) => {
122167
+ var __copyProps = (to2, from, except, desc) => {
122702
122168
  if (from && typeof from === "object" || typeof from === "function") {
122703
- for (let key of __getOwnPropNames2(from))
122704
- if (!__hasOwnProp2.call(to2, key) && key !== except)
122705
- __defProp3(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
122169
+ for (let key of __getOwnPropNames(from))
122170
+ if (!__hasOwnProp.call(to2, key) && key !== except)
122171
+ __defProp2(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
122706
122172
  }
122707
122173
  return to2;
122708
122174
  };
122709
- var __toESM2 = (mod, isNodeMode, target2) => (target2 = mod != null ? __create2(__getProtoOf3(mod)) : {}, __copyProps2(
122175
+ var __toESM = (mod, isNodeMode, target2) => (target2 = mod != null ? __create(__getProtoOf2(mod)) : {}, __copyProps(
122710
122176
  // If the importer is in node compatibility mode or this is not an ESM
122711
122177
  // file that has been converted to a CommonJS file using a Babel-
122712
122178
  // compatible transform (i.e. "__esModule" has not been set), then set
122713
122179
  // "default" to the CommonJS "module.exports" for node compatibility.
122714
- !mod || !mod.__esModule ? __defProp3(target2, "default", { value: mod, enumerable: true }) : target2,
122180
+ !mod || !mod.__esModule ? __defProp2(target2, "default", { value: mod, enumerable: true }) : target2,
122715
122181
  mod
122716
122182
  ));
122717
- var __toCommonJS = (mod) => __copyProps2(__defProp3({}, "__esModule", { value: true }), mod);
122183
+ var __toCommonJS = (mod) => __copyProps(__defProp2({}, "__esModule", { value: true }), mod);
122718
122184
  var token_io_exports = {};
122719
- __export2(token_io_exports, {
122185
+ __export(token_io_exports, {
122720
122186
  findRootDir: () => findRootDir,
122721
122187
  getUserDataDir: () => getUserDataDir
122722
122188
  });
122723
122189
  tokenIo = __toCommonJS(token_io_exports);
122724
- var import_path2 = __toESM2(path__default);
122725
- var import_fs2 = __toESM2(fs__default);
122726
- var import_os2 = __toESM2(require$$2$4);
122190
+ var import_path2 = __toESM(path__default);
122191
+ var import_fs2 = __toESM(fs__default);
122192
+ var import_os2 = __toESM(require$$2$4);
122727
122193
  var import_token_error = requireTokenError();
122728
122194
  function findRootDir() {
122729
122195
  try {
@@ -122767,42 +122233,42 @@ var hasRequiredAuthConfig;
122767
122233
  function requireAuthConfig() {
122768
122234
  if (hasRequiredAuthConfig) return authConfig;
122769
122235
  hasRequiredAuthConfig = 1;
122770
- var __create2 = Object.create;
122771
- var __defProp3 = Object.defineProperty;
122772
- var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
122773
- var __getOwnPropNames2 = Object.getOwnPropertyNames;
122774
- var __getProtoOf3 = Object.getPrototypeOf;
122775
- var __hasOwnProp2 = Object.prototype.hasOwnProperty;
122776
- var __export2 = (target2, all2) => {
122236
+ var __create = Object.create;
122237
+ var __defProp2 = Object.defineProperty;
122238
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
122239
+ var __getOwnPropNames = Object.getOwnPropertyNames;
122240
+ var __getProtoOf2 = Object.getPrototypeOf;
122241
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
122242
+ var __export = (target2, all2) => {
122777
122243
  for (var name2 in all2)
122778
- __defProp3(target2, name2, { get: all2[name2], enumerable: true });
122244
+ __defProp2(target2, name2, { get: all2[name2], enumerable: true });
122779
122245
  };
122780
- var __copyProps2 = (to2, from, except, desc) => {
122246
+ var __copyProps = (to2, from, except, desc) => {
122781
122247
  if (from && typeof from === "object" || typeof from === "function") {
122782
- for (let key of __getOwnPropNames2(from))
122783
- if (!__hasOwnProp2.call(to2, key) && key !== except)
122784
- __defProp3(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
122248
+ for (let key of __getOwnPropNames(from))
122249
+ if (!__hasOwnProp.call(to2, key) && key !== except)
122250
+ __defProp2(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
122785
122251
  }
122786
122252
  return to2;
122787
122253
  };
122788
- var __toESM2 = (mod, isNodeMode, target2) => (target2 = mod != null ? __create2(__getProtoOf3(mod)) : {}, __copyProps2(
122254
+ var __toESM = (mod, isNodeMode, target2) => (target2 = mod != null ? __create(__getProtoOf2(mod)) : {}, __copyProps(
122789
122255
  // If the importer is in node compatibility mode or this is not an ESM
122790
122256
  // file that has been converted to a CommonJS file using a Babel-
122791
122257
  // compatible transform (i.e. "__esModule" has not been set), then set
122792
122258
  // "default" to the CommonJS "module.exports" for node compatibility.
122793
- !mod || !mod.__esModule ? __defProp3(target2, "default", { value: mod, enumerable: true }) : target2,
122259
+ !mod || !mod.__esModule ? __defProp2(target2, "default", { value: mod, enumerable: true }) : target2,
122794
122260
  mod
122795
122261
  ));
122796
- var __toCommonJS = (mod) => __copyProps2(__defProp3({}, "__esModule", { value: true }), mod);
122262
+ var __toCommonJS = (mod) => __copyProps(__defProp2({}, "__esModule", { value: true }), mod);
122797
122263
  var auth_config_exports = {};
122798
- __export2(auth_config_exports, {
122264
+ __export(auth_config_exports, {
122799
122265
  isValidAccessToken: () => isValidAccessToken,
122800
122266
  readAuthConfig: () => readAuthConfig,
122801
122267
  writeAuthConfig: () => writeAuthConfig
122802
122268
  });
122803
122269
  authConfig = __toCommonJS(auth_config_exports);
122804
- var fs2 = __toESM2(fs__default);
122805
- var path2 = __toESM2(path__default);
122270
+ var fs2 = __toESM(fs__default);
122271
+ var path2 = __toESM(path__default);
122806
122272
  var import_token_util = requireTokenUtil();
122807
122273
  function getAuthConfigPath() {
122808
122274
  const dataDir = (0, import_token_util.getVercelDataDir)();
@@ -122852,25 +122318,25 @@ var hasRequiredOauth;
122852
122318
  function requireOauth() {
122853
122319
  if (hasRequiredOauth) return oauth;
122854
122320
  hasRequiredOauth = 1;
122855
- var __defProp3 = Object.defineProperty;
122856
- var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
122857
- var __getOwnPropNames2 = Object.getOwnPropertyNames;
122858
- var __hasOwnProp2 = Object.prototype.hasOwnProperty;
122859
- var __export2 = (target2, all2) => {
122321
+ var __defProp2 = Object.defineProperty;
122322
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
122323
+ var __getOwnPropNames = Object.getOwnPropertyNames;
122324
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
122325
+ var __export = (target2, all2) => {
122860
122326
  for (var name2 in all2)
122861
- __defProp3(target2, name2, { get: all2[name2], enumerable: true });
122327
+ __defProp2(target2, name2, { get: all2[name2], enumerable: true });
122862
122328
  };
122863
- var __copyProps2 = (to2, from, except, desc) => {
122329
+ var __copyProps = (to2, from, except, desc) => {
122864
122330
  if (from && typeof from === "object" || typeof from === "function") {
122865
- for (let key of __getOwnPropNames2(from))
122866
- if (!__hasOwnProp2.call(to2, key) && key !== except)
122867
- __defProp3(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
122331
+ for (let key of __getOwnPropNames(from))
122332
+ if (!__hasOwnProp.call(to2, key) && key !== except)
122333
+ __defProp2(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
122868
122334
  }
122869
122335
  return to2;
122870
122336
  };
122871
- var __toCommonJS = (mod) => __copyProps2(__defProp3({}, "__esModule", { value: true }), mod);
122337
+ var __toCommonJS = (mod) => __copyProps(__defProp2({}, "__esModule", { value: true }), mod);
122872
122338
  var oauth_exports = {};
122873
- __export2(oauth_exports, {
122339
+ __export(oauth_exports, {
122874
122340
  processTokenResponse: () => processTokenResponse,
122875
122341
  refreshTokenRequest: () => refreshTokenRequest
122876
122342
  });
@@ -122941,35 +122407,35 @@ var hasRequiredTokenUtil;
122941
122407
  function requireTokenUtil() {
122942
122408
  if (hasRequiredTokenUtil) return tokenUtil;
122943
122409
  hasRequiredTokenUtil = 1;
122944
- var __create2 = Object.create;
122945
- var __defProp3 = Object.defineProperty;
122946
- var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
122947
- var __getOwnPropNames2 = Object.getOwnPropertyNames;
122948
- var __getProtoOf3 = Object.getPrototypeOf;
122949
- var __hasOwnProp2 = Object.prototype.hasOwnProperty;
122950
- var __export2 = (target2, all2) => {
122410
+ var __create = Object.create;
122411
+ var __defProp2 = Object.defineProperty;
122412
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
122413
+ var __getOwnPropNames = Object.getOwnPropertyNames;
122414
+ var __getProtoOf2 = Object.getPrototypeOf;
122415
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
122416
+ var __export = (target2, all2) => {
122951
122417
  for (var name2 in all2)
122952
- __defProp3(target2, name2, { get: all2[name2], enumerable: true });
122418
+ __defProp2(target2, name2, { get: all2[name2], enumerable: true });
122953
122419
  };
122954
- var __copyProps2 = (to2, from, except, desc) => {
122420
+ var __copyProps = (to2, from, except, desc) => {
122955
122421
  if (from && typeof from === "object" || typeof from === "function") {
122956
- for (let key of __getOwnPropNames2(from))
122957
- if (!__hasOwnProp2.call(to2, key) && key !== except)
122958
- __defProp3(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
122422
+ for (let key of __getOwnPropNames(from))
122423
+ if (!__hasOwnProp.call(to2, key) && key !== except)
122424
+ __defProp2(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
122959
122425
  }
122960
122426
  return to2;
122961
122427
  };
122962
- var __toESM2 = (mod, isNodeMode, target2) => (target2 = mod != null ? __create2(__getProtoOf3(mod)) : {}, __copyProps2(
122428
+ var __toESM = (mod, isNodeMode, target2) => (target2 = mod != null ? __create(__getProtoOf2(mod)) : {}, __copyProps(
122963
122429
  // If the importer is in node compatibility mode or this is not an ESM
122964
122430
  // file that has been converted to a CommonJS file using a Babel-
122965
122431
  // compatible transform (i.e. "__esModule" has not been set), then set
122966
122432
  // "default" to the CommonJS "module.exports" for node compatibility.
122967
- !mod || !mod.__esModule ? __defProp3(target2, "default", { value: mod, enumerable: true }) : target2,
122433
+ !mod || !mod.__esModule ? __defProp2(target2, "default", { value: mod, enumerable: true }) : target2,
122968
122434
  mod
122969
122435
  ));
122970
- var __toCommonJS = (mod) => __copyProps2(__defProp3({}, "__esModule", { value: true }), mod);
122436
+ var __toCommonJS = (mod) => __copyProps(__defProp2({}, "__esModule", { value: true }), mod);
122971
122437
  var token_util_exports = {};
122972
- __export2(token_util_exports, {
122438
+ __export(token_util_exports, {
122973
122439
  assertVercelOidcTokenResponse: () => assertVercelOidcTokenResponse,
122974
122440
  findProjectInfo: () => findProjectInfo,
122975
122441
  getTokenPayload: () => getTokenPayload,
@@ -122981,8 +122447,8 @@ function requireTokenUtil() {
122981
122447
  saveToken: () => saveToken
122982
122448
  });
122983
122449
  tokenUtil = __toCommonJS(token_util_exports);
122984
- var path2 = __toESM2(path__default);
122985
- var fs2 = __toESM2(fs__default);
122450
+ var path2 = __toESM(path__default);
122451
+ var fs2 = __toESM(fs__default);
122986
122452
  var import_token_error = requireTokenError();
122987
122453
  var import_token_io = requireTokenIo();
122988
122454
  var import_auth_config = requireAuthConfig();
@@ -123137,25 +122603,25 @@ var hasRequiredDist;
123137
122603
  function requireDist() {
123138
122604
  if (hasRequiredDist) return dist;
123139
122605
  hasRequiredDist = 1;
123140
- var __defProp3 = Object.defineProperty;
123141
- var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
123142
- var __getOwnPropNames2 = Object.getOwnPropertyNames;
123143
- var __hasOwnProp2 = Object.prototype.hasOwnProperty;
123144
- var __export2 = (target2, all2) => {
122606
+ var __defProp2 = Object.defineProperty;
122607
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
122608
+ var __getOwnPropNames = Object.getOwnPropertyNames;
122609
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
122610
+ var __export = (target2, all2) => {
123145
122611
  for (var name2 in all2)
123146
- __defProp3(target2, name2, { get: all2[name2], enumerable: true });
122612
+ __defProp2(target2, name2, { get: all2[name2], enumerable: true });
123147
122613
  };
123148
- var __copyProps2 = (to2, from, except, desc) => {
122614
+ var __copyProps = (to2, from, except, desc) => {
123149
122615
  if (from && typeof from === "object" || typeof from === "function") {
123150
- for (let key of __getOwnPropNames2(from))
123151
- if (!__hasOwnProp2.call(to2, key) && key !== except)
123152
- __defProp3(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
122616
+ for (let key of __getOwnPropNames(from))
122617
+ if (!__hasOwnProp.call(to2, key) && key !== except)
122618
+ __defProp2(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
123153
122619
  }
123154
122620
  return to2;
123155
122621
  };
123156
- var __toCommonJS = (mod) => __copyProps2(__defProp3({}, "__esModule", { value: true }), mod);
122622
+ var __toCommonJS = (mod) => __copyProps(__defProp2({}, "__esModule", { value: true }), mod);
123157
122623
  var src_exports = {};
123158
- __export2(src_exports, {
122624
+ __export(src_exports, {
123159
122625
  AccessTokenMissingError: () => import_auth_errors.AccessTokenMissingError,
123160
122626
  RefreshAccessTokenFailedError: () => import_auth_errors.RefreshAccessTokenFailedError,
123161
122627
  getContext: () => import_get_context.getContext,
@@ -127957,7 +127423,7 @@ var QueueClient = class {
127957
127423
  setApi(this, new ApiClient({ ...options, region }));
127958
127424
  }
127959
127425
  };
127960
- const version = "5.0.0-beta.19";
127426
+ const version = "5.0.0-beta.20";
127961
127427
  const HTTP_DEBUG_ENABLED = typeof process !== "undefined" && typeof process.env.DEBUG === "string" && (process.env.DEBUG.includes("workflow:") || process.env.DEBUG === "*");
127962
127428
  function httpLog(method, endpoint, response2, ms2) {
127963
127429
  if (HTTP_DEBUG_ENABLED) {
@@ -128565,6 +128031,8 @@ function buildPostFrameMeta(input) {
128565
128031
  meta2.correlationId = input.correlationId;
128566
128032
  if (input.vercelId !== void 0)
128567
128033
  meta2.vercelId = input.vercelId;
128034
+ if (input.occurredAt !== void 0)
128035
+ meta2.occurredAt = input.occurredAt;
128568
128036
  if (input.remoteRefBehavior !== void 0) {
128569
128037
  meta2.remoteRefBehavior = input.remoteRefBehavior;
128570
128038
  }
@@ -128602,6 +128070,8 @@ function buildPostFrameMeta(input) {
128602
128070
  }
128603
128071
  if (input.sinceCursor !== void 0)
128604
128072
  meta2.sinceCursor = input.sinceCursor;
128073
+ if (input.skipPreload !== void 0)
128074
+ meta2.skipPreload = input.skipPreload;
128605
128075
  return meta2;
128606
128076
  }
128607
128077
  function throwForErrorResponse(statusCode, responseHeaders, errorBody, opName, url2) {
@@ -129095,6 +128565,9 @@ function buildEventFromV4(decoded, payloadBody, resolveData) {
129095
128565
  runId: decoded.runId,
129096
128566
  eventType: decoded.eventType,
129097
128567
  createdAt: decoded.createdAt instanceof Date ? decoded.createdAt : new Date(decoded.createdAt),
128568
+ ...decoded.occurredAt !== void 0 ? {
128569
+ occurredAt: decoded.occurredAt instanceof Date ? decoded.occurredAt : new Date(decoded.occurredAt)
128570
+ } : {},
129098
128571
  ...decoded.correlationId ? { correlationId: decoded.correlationId } : {},
129099
128572
  eventData,
129100
128573
  ...decoded.specVersion !== void 0 ? { specVersion: decoded.specVersion } : {}
@@ -129176,6 +128649,7 @@ async function createWorkflowRunEventInner(id2, data, params, config2) {
129176
128649
  specVersion: data.specVersion ?? 2,
129177
128650
  ...data.correlationId ? { correlationId: data.correlationId } : {},
129178
128651
  ...(params == null ? void 0 : params.requestId) ? { vercelId: params.requestId } : {},
128652
+ occurredAt: (params == null ? void 0 : params.occurredAt) ?? /* @__PURE__ */ new Date(),
129179
128653
  // Opt-in inline-delta: forward the cursor the runtime held before
129180
128654
  // this write so the server can return the authoritative event-log
129181
128655
  // delta on the response (events/cursor/hasMore), letting the inline
@@ -129183,6 +128657,11 @@ async function createWorkflowRunEventInner(id2, data, params, config2) {
129183
128657
  // step_completed/step_failed; older servers ignore it and the runtime
129184
128658
  // falls back to events.list.
129185
128659
  ...(params == null ? void 0 : params.sinceCursor) ? { sinceCursor: params.sinceCursor } : {},
128660
+ // Run-started preload opt-out: turbo backgrounds run_started as a write
128661
+ // barrier only and never reads the preloaded log, so tell the server to
128662
+ // skip the list+resolve. The server only acts on it for run_started;
128663
+ // older servers ignore it and simply preload as before.
128664
+ ...(params == null ? void 0 : params.skipPreload) ? { skipPreload: true } : {},
129186
128665
  remoteRefBehavior,
129187
128666
  payload,
129188
128667
  ...meta2
@@ -129305,6 +128784,9 @@ const MAX_CHUNKS_PER_REQUEST = 1e3;
129305
128784
  function getStreamUrl(name2, runId, httpConfig) {
129306
128785
  return new URL(`${httpConfig.baseUrl}/v2/runs/${encodeURIComponent(runId)}/stream/${encodeURIComponent(name2)}`);
129307
128786
  }
128787
+ function getStreamReadUrl(name2, runId, httpConfig) {
128788
+ return new URL(`${httpConfig.baseUrl}/v3/runs/${encodeURIComponent(runId)}/stream/${encodeURIComponent(name2)}`);
128789
+ }
129308
128790
  function createStreamRequestError(operation, url2, response2, text2) {
129309
128791
  const context = [`PUT ${url2.origin}${url2.pathname}`];
129310
128792
  for (const header of ["x-vercel-id", "x-vercel-error"]) {
@@ -129402,7 +128884,7 @@ function createStreamer(config2) {
129402
128884
  },
129403
128885
  async get(runId, name2, startIndex) {
129404
128886
  const httpConfig = await getHttpConfig(config2);
129405
- const url2 = getStreamUrl(name2, runId, httpConfig);
128887
+ const url2 = getStreamReadUrl(name2, runId, httpConfig);
129406
128888
  if (typeof startIndex === "number") {
129407
128889
  url2.searchParams.set("startIndex", String(startIndex));
129408
128890
  }
@@ -139952,7 +139434,7 @@ var SelectArrow = reactExports.forwardRef(
139952
139434
  const popperScope = usePopperScope(__scopeSelect);
139953
139435
  const context = useSelectContext(ARROW_NAME, __scopeSelect);
139954
139436
  const contentContext = useSelectContentContext(ARROW_NAME, __scopeSelect);
139955
- return context.open && contentContext.position === "popper" ? /* @__PURE__ */ jsxRuntimeExports.jsx(Arrow$3, { ...popperScope, ...arrowProps, ref: forwardedRef }) : null;
139437
+ return context.open && contentContext.position === "popper" ? /* @__PURE__ */ jsxRuntimeExports.jsx(Arrow$2, { ...popperScope, ...arrowProps, ref: forwardedRef }) : null;
139956
139438
  }
139957
139439
  );
139958
139440
  SelectArrow.displayName = ARROW_NAME;
@@ -154158,7 +153640,7 @@ function RunDetailView({
154158
153640
  setShowCancelDialog(false);
154159
153641
  await cancelRun(env2, runId);
154160
153642
  await update();
154161
- toast.success("Run cancelled successfully");
153643
+ toast.success("Run cancelled");
154162
153644
  } catch (err) {
154163
153645
  console.error("Failed to cancel run:", err);
154164
153646
  toast.error("Failed to cancel run", {
@@ -154177,7 +153659,7 @@ function RunDetailView({
154177
153659
  setRerunning(true);
154178
153660
  setShowRerunDialog(false);
154179
153661
  const newRunId = await recreateRun(env2, run2.runId);
154180
- toast.success("New run started successfully", {
153662
+ toast.success("New run started", {
154181
153663
  description: `Run ID: ${newRunId}`
154182
153664
  });
154183
153665
  navigate(`/run/${newRunId}`);
@@ -154329,7 +153811,7 @@ function RunDetailView({
154329
153811
  "Streams"
154330
153812
  ] })
154331
153813
  ] }),
154332
- /* @__PURE__ */ jsxRuntimeExports.jsx(TabsContent, { value: "trace", className: "mt-0 flex-1 min-h-0", children: /* @__PURE__ */ jsxRuntimeExports.jsx(ErrorBoundary$1, { title: "Failed to load trace viewer", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "h-full -mx-6 bg-background-100 border-t border-gray-alpha-400 overflow-hidden", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
153814
+ /* @__PURE__ */ jsxRuntimeExports.jsx(TabsContent, { value: "trace", className: "mt-0 flex-1 min-h-0", children: /* @__PURE__ */ jsxRuntimeExports.jsx(ErrorBoundary$1, { title: "Failed to load trace viewer", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "relative h-full -mx-6 bg-background-100 border-t border-gray-alpha-400 overflow-hidden", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
154333
153815
  NewTraceViewer,
154334
153816
  {
154335
153817
  run: run2,
@@ -154652,7 +154134,7 @@ const route4 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProper
154652
154134
  __proto__: null,
154653
154135
  loader
154654
154136
  }, Symbol.toStringTag, { value: "Module" }));
154655
- const serverManifest = { "entry": { "module": "/assets/entry.client-DOJDY_4b.js", "imports": ["/assets/index-BXZSIDEp.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--Sg25-Lb.js", "imports": ["/assets/index-BXZSIDEp.js", "/assets/mermaid-3ZIDBTTL-DndzaIEl.js"], "css": ["/assets/root-1hd8ZXAx.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-B-QPEXVb.js", "imports": ["/assets/index-BXZSIDEp.js", "/assets/workflow-graph-viewer-j7J3_oSH.js", "/assets/mermaid-3ZIDBTTL-DndzaIEl.js", "/assets/index-B6-SzLmT.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-Djwnox1v.js", "imports": ["/assets/index-BXZSIDEp.js", "/assets/workflow-graph-viewer-j7J3_oSH.js", "/assets/mermaid-3ZIDBTTL-DndzaIEl.js", "/assets/encryption-g14N5vQl.js", "/assets/index-B6-SzLmT.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/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-225d97da.js", "version": "225d97da", "sri": void 0 };
154137
+ const serverManifest = { "entry": { "module": "/assets/entry.client-DOJDY_4b.js", "imports": ["/assets/index-BXZSIDEp.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-BlFmfRST.js", "imports": ["/assets/index-BXZSIDEp.js", "/assets/mermaid-3ZIDBTTL-C_xy8SxZ.js"], "css": ["/assets/root-61NXpLSs.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-Dz43xne_.js", "imports": ["/assets/index-BXZSIDEp.js", "/assets/workflow-graph-viewer-BlDVZ5AU.js", "/assets/mermaid-3ZIDBTTL-C_xy8SxZ.js", "/assets/index-B6-SzLmT.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-T4JlTgHs.js", "imports": ["/assets/index-BXZSIDEp.js", "/assets/workflow-graph-viewer-BlDVZ5AU.js", "/assets/mermaid-3ZIDBTTL-C_xy8SxZ.js", "/assets/encryption-g14N5vQl.js", "/assets/index-B6-SzLmT.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-3f730581.js", "version": "3f730581", "sri": void 0 };
154656
154138
  const assetsBuildDirectory = "build/client";
154657
154139
  const basename = "/";
154658
154140
  const future = { "unstable_optimizeDeps": false, "unstable_subResourceIntegrity": false, "unstable_trailingSlashAwareDataRequests": false, "unstable_previewServerPrerendering": false, "v8_middleware": false, "v8_splitRouteModules": false, "v8_viteEnvironmentApi": false };