@workflow/web 5.0.0-beta.20 → 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-1_2pZk38.js → app-DN3f8amN.js} +1 -1
  13. package/build/server/assets/{highlighted-body-B3W2YXNL-D2HzMi-f.js → highlighted-body-B3W2YXNL-Bn21Jt9E.js} +2 -2
  14. package/build/server/assets/{index-CVx-QxTu.js → index-BAzmSj9V.js} +3 -3
  15. package/build/server/assets/{mermaid-3ZIDBTTL-BhD6Cf7K.js → mermaid-3ZIDBTTL-BDx4F1TF.js} +2 -2
  16. package/build/server/assets/{server-build-BSWGuT66.js → server-build-CbSfuKyC.js} +597 -1114
  17. package/build/server/assets/{token-C-jXTIrz.js → token-D-3FNfzy.js} +2 -2
  18. package/build/server/assets/{token-util-B-DxVT99.js → token-util-6H5PWMXy.js} +2 -2
  19. package/build/server/assets/{zstd-browser-decoder-DPcDXhvm.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-1_2pZk38.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-DPcDXhvm.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-D2HzMi-f.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-BhD6Cf7K.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.20";
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) => {
@@ -93595,7 +93061,7 @@ function reviveAbortController(value, ops, runId) {
93595
93061
  }
93596
93062
  })());
93597
93063
  if (value.hookToken) {
93598
- ctx.ops.push((async () => {
93064
+ const hookResume = (async () => {
93599
93065
  try {
93600
93066
  const { resumeHook: resumeHookFn } = await Promise.resolve().then(() => resumeHook$3);
93601
93067
  await resumeHookFn(value.hookToken, {
@@ -93604,7 +93070,8 @@ function reviveAbortController(value, ops, runId) {
93604
93070
  });
93605
93071
  } catch {
93606
93072
  }
93607
- })());
93073
+ })();
93074
+ ctx.preCompletionOps.push(hookResume);
93608
93075
  }
93609
93076
  }
93610
93077
  };
@@ -100550,7 +100017,7 @@ function requireUtil$4() {
100550
100017
  return normalizedMethodRecordsBase[method.toLowerCase()] ?? method;
100551
100018
  }
100552
100019
  const esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));
100553
- function createIterator2(name2, kInternalIterator, keyIndex = 0, valueIndex = 1) {
100020
+ function createIterator(name2, kInternalIterator, keyIndex = 0, valueIndex = 1) {
100554
100021
  var _target, _kind, _index;
100555
100022
  class FastIterableIterator {
100556
100023
  /**
@@ -100623,7 +100090,7 @@ function requireUtil$4() {
100623
100090
  };
100624
100091
  }
100625
100092
  function iteratorMixin(name2, object2, kInternalIterator, keyIndex = 0, valueIndex = 1) {
100626
- const makeIterator = createIterator2(name2, kInternalIterator, keyIndex, valueIndex);
100093
+ const makeIterator = createIterator(name2, kInternalIterator, keyIndex, valueIndex);
100627
100094
  const properties2 = {
100628
100095
  keys: {
100629
100096
  writable: true,
@@ -100969,7 +100436,7 @@ function requireUtil$4() {
100969
100436
  sameOrigin,
100970
100437
  normalizeMethod,
100971
100438
  iteratorMixin,
100972
- createIterator: createIterator2,
100439
+ createIterator,
100973
100440
  isValidHeaderName,
100974
100441
  isValidHeaderValue,
100975
100442
  isErrorLike,
@@ -122453,7 +121920,7 @@ function createLocalWorld(args) {
122453
121920
  const basedir = mergedConfig.dataDir;
122454
121921
  const hooksDir = path$3.join(basedir, "hooks");
122455
121922
  const taggedHookFiles = await listTaggedFiles(hooksDir, tag);
122456
- const { HookSchema: HookSchema2 } = await import("./index-CVx-QxTu.js");
121923
+ const { HookSchema: HookSchema2 } = await import("./index-BAzmSj9V.js");
122457
121924
  await Promise.all(taggedHookFiles.map(async (hookFile) => {
122458
121925
  const hook = await readJSON(path$3.join(hooksDir, hookFile), HookSchema2);
122459
121926
  if (hook == null ? void 0 : hook.token) {
@@ -122493,25 +121960,25 @@ var hasRequiredGetContext;
122493
121960
  function requireGetContext() {
122494
121961
  if (hasRequiredGetContext) return getContext_1;
122495
121962
  hasRequiredGetContext = 1;
122496
- var __defProp3 = Object.defineProperty;
122497
- var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
122498
- var __getOwnPropNames2 = Object.getOwnPropertyNames;
122499
- var __hasOwnProp2 = Object.prototype.hasOwnProperty;
122500
- 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) => {
122501
121968
  for (var name2 in all2)
122502
- __defProp3(target2, name2, { get: all2[name2], enumerable: true });
121969
+ __defProp2(target2, name2, { get: all2[name2], enumerable: true });
122503
121970
  };
122504
- var __copyProps2 = (to2, from, except, desc) => {
121971
+ var __copyProps = (to2, from, except, desc) => {
122505
121972
  if (from && typeof from === "object" || typeof from === "function") {
122506
- for (let key of __getOwnPropNames2(from))
122507
- if (!__hasOwnProp2.call(to2, key) && key !== except)
122508
- __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 });
122509
121976
  }
122510
121977
  return to2;
122511
121978
  };
122512
- var __toCommonJS = (mod) => __copyProps2(__defProp3({}, "__esModule", { value: true }), mod);
121979
+ var __toCommonJS = (mod) => __copyProps(__defProp2({}, "__esModule", { value: true }), mod);
122513
121980
  var get_context_exports = {};
122514
- __export2(get_context_exports, {
121981
+ __export(get_context_exports, {
122515
121982
  SYMBOL_FOR_REQ_CONTEXT: () => SYMBOL_FOR_REQ_CONTEXT,
122516
121983
  getContext: () => getContext
122517
121984
  });
@@ -122529,25 +121996,25 @@ var hasRequiredTokenError;
122529
121996
  function requireTokenError() {
122530
121997
  if (hasRequiredTokenError) return tokenError;
122531
121998
  hasRequiredTokenError = 1;
122532
- var __defProp3 = Object.defineProperty;
122533
- var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
122534
- var __getOwnPropNames2 = Object.getOwnPropertyNames;
122535
- var __hasOwnProp2 = Object.prototype.hasOwnProperty;
122536
- 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) => {
122537
122004
  for (var name2 in all2)
122538
- __defProp3(target2, name2, { get: all2[name2], enumerable: true });
122005
+ __defProp2(target2, name2, { get: all2[name2], enumerable: true });
122539
122006
  };
122540
- var __copyProps2 = (to2, from, except, desc) => {
122007
+ var __copyProps = (to2, from, except, desc) => {
122541
122008
  if (from && typeof from === "object" || typeof from === "function") {
122542
- for (let key of __getOwnPropNames2(from))
122543
- if (!__hasOwnProp2.call(to2, key) && key !== except)
122544
- __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 });
122545
122012
  }
122546
122013
  return to2;
122547
122014
  };
122548
- var __toCommonJS = (mod) => __copyProps2(__defProp3({}, "__esModule", { value: true }), mod);
122015
+ var __toCommonJS = (mod) => __copyProps(__defProp2({}, "__esModule", { value: true }), mod);
122549
122016
  var token_error_exports = {};
122550
- __export2(token_error_exports, {
122017
+ __export(token_error_exports, {
122551
122018
  VercelOidcTokenError: () => VercelOidcTokenError
122552
122019
  });
122553
122020
  tokenError = __toCommonJS(token_error_exports);
@@ -122571,25 +122038,25 @@ var hasRequiredGetVercelOidcToken;
122571
122038
  function requireGetVercelOidcToken() {
122572
122039
  if (hasRequiredGetVercelOidcToken) return getVercelOidcToken_1;
122573
122040
  hasRequiredGetVercelOidcToken = 1;
122574
- var __defProp3 = Object.defineProperty;
122575
- var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
122576
- var __getOwnPropNames2 = Object.getOwnPropertyNames;
122577
- var __hasOwnProp2 = Object.prototype.hasOwnProperty;
122578
- 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) => {
122579
122046
  for (var name2 in all2)
122580
- __defProp3(target2, name2, { get: all2[name2], enumerable: true });
122047
+ __defProp2(target2, name2, { get: all2[name2], enumerable: true });
122581
122048
  };
122582
- var __copyProps2 = (to2, from, except, desc) => {
122049
+ var __copyProps = (to2, from, except, desc) => {
122583
122050
  if (from && typeof from === "object" || typeof from === "function") {
122584
- for (let key of __getOwnPropNames2(from))
122585
- if (!__hasOwnProp2.call(to2, key) && key !== except)
122586
- __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 });
122587
122054
  }
122588
122055
  return to2;
122589
122056
  };
122590
- var __toCommonJS = (mod) => __copyProps2(__defProp3({}, "__esModule", { value: true }), mod);
122057
+ var __toCommonJS = (mod) => __copyProps(__defProp2({}, "__esModule", { value: true }), mod);
122591
122058
  var get_vercel_oidc_token_exports = {};
122592
- __export2(get_vercel_oidc_token_exports, {
122059
+ __export(get_vercel_oidc_token_exports, {
122593
122060
  getVercelOidcToken: () => getVercelOidcToken,
122594
122061
  getVercelOidcTokenSync: () => getVercelOidcTokenSync
122595
122062
  });
@@ -122606,8 +122073,8 @@ function requireGetVercelOidcToken() {
122606
122073
  }
122607
122074
  try {
122608
122075
  const [{ getTokenPayload, isExpired }, { refreshToken }] = await Promise.all([
122609
- await import("./token-util-B-DxVT99.js").then((n) => n.t),
122610
- await import("./token-C-jXTIrz.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)
122611
122078
  ]);
122612
122079
  if (!token || isExpired(getTokenPayload(token), options == null ? void 0 : options.expirationBufferMs)) {
122613
122080
  await refreshToken(options);
@@ -122643,25 +122110,25 @@ var hasRequiredAuthErrors;
122643
122110
  function requireAuthErrors() {
122644
122111
  if (hasRequiredAuthErrors) return authErrors;
122645
122112
  hasRequiredAuthErrors = 1;
122646
- var __defProp3 = Object.defineProperty;
122647
- var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
122648
- var __getOwnPropNames2 = Object.getOwnPropertyNames;
122649
- var __hasOwnProp2 = Object.prototype.hasOwnProperty;
122650
- 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) => {
122651
122118
  for (var name2 in all2)
122652
- __defProp3(target2, name2, { get: all2[name2], enumerable: true });
122119
+ __defProp2(target2, name2, { get: all2[name2], enumerable: true });
122653
122120
  };
122654
- var __copyProps2 = (to2, from, except, desc) => {
122121
+ var __copyProps = (to2, from, except, desc) => {
122655
122122
  if (from && typeof from === "object" || typeof from === "function") {
122656
- for (let key of __getOwnPropNames2(from))
122657
- if (!__hasOwnProp2.call(to2, key) && key !== except)
122658
- __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 });
122659
122126
  }
122660
122127
  return to2;
122661
122128
  };
122662
- var __toCommonJS = (mod) => __copyProps2(__defProp3({}, "__esModule", { value: true }), mod);
122129
+ var __toCommonJS = (mod) => __copyProps(__defProp2({}, "__esModule", { value: true }), mod);
122663
122130
  var auth_errors_exports = {};
122664
- __export2(auth_errors_exports, {
122131
+ __export(auth_errors_exports, {
122665
122132
  AccessTokenMissingError: () => AccessTokenMissingError,
122666
122133
  RefreshAccessTokenFailedError: () => RefreshAccessTokenFailedError
122667
122134
  });
@@ -122687,42 +122154,42 @@ var hasRequiredTokenIo;
122687
122154
  function requireTokenIo() {
122688
122155
  if (hasRequiredTokenIo) return tokenIo;
122689
122156
  hasRequiredTokenIo = 1;
122690
- var __create2 = Object.create;
122691
- var __defProp3 = Object.defineProperty;
122692
- var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
122693
- var __getOwnPropNames2 = Object.getOwnPropertyNames;
122694
- var __getProtoOf3 = Object.getPrototypeOf;
122695
- var __hasOwnProp2 = Object.prototype.hasOwnProperty;
122696
- 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) => {
122697
122164
  for (var name2 in all2)
122698
- __defProp3(target2, name2, { get: all2[name2], enumerable: true });
122165
+ __defProp2(target2, name2, { get: all2[name2], enumerable: true });
122699
122166
  };
122700
- var __copyProps2 = (to2, from, except, desc) => {
122167
+ var __copyProps = (to2, from, except, desc) => {
122701
122168
  if (from && typeof from === "object" || typeof from === "function") {
122702
- for (let key of __getOwnPropNames2(from))
122703
- if (!__hasOwnProp2.call(to2, key) && key !== except)
122704
- __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 });
122705
122172
  }
122706
122173
  return to2;
122707
122174
  };
122708
- 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(
122709
122176
  // If the importer is in node compatibility mode or this is not an ESM
122710
122177
  // file that has been converted to a CommonJS file using a Babel-
122711
122178
  // compatible transform (i.e. "__esModule" has not been set), then set
122712
122179
  // "default" to the CommonJS "module.exports" for node compatibility.
122713
- !mod || !mod.__esModule ? __defProp3(target2, "default", { value: mod, enumerable: true }) : target2,
122180
+ !mod || !mod.__esModule ? __defProp2(target2, "default", { value: mod, enumerable: true }) : target2,
122714
122181
  mod
122715
122182
  ));
122716
- var __toCommonJS = (mod) => __copyProps2(__defProp3({}, "__esModule", { value: true }), mod);
122183
+ var __toCommonJS = (mod) => __copyProps(__defProp2({}, "__esModule", { value: true }), mod);
122717
122184
  var token_io_exports = {};
122718
- __export2(token_io_exports, {
122185
+ __export(token_io_exports, {
122719
122186
  findRootDir: () => findRootDir,
122720
122187
  getUserDataDir: () => getUserDataDir
122721
122188
  });
122722
122189
  tokenIo = __toCommonJS(token_io_exports);
122723
- var import_path2 = __toESM2(path__default);
122724
- var import_fs2 = __toESM2(fs__default);
122725
- 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);
122726
122193
  var import_token_error = requireTokenError();
122727
122194
  function findRootDir() {
122728
122195
  try {
@@ -122766,42 +122233,42 @@ var hasRequiredAuthConfig;
122766
122233
  function requireAuthConfig() {
122767
122234
  if (hasRequiredAuthConfig) return authConfig;
122768
122235
  hasRequiredAuthConfig = 1;
122769
- var __create2 = Object.create;
122770
- var __defProp3 = Object.defineProperty;
122771
- var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
122772
- var __getOwnPropNames2 = Object.getOwnPropertyNames;
122773
- var __getProtoOf3 = Object.getPrototypeOf;
122774
- var __hasOwnProp2 = Object.prototype.hasOwnProperty;
122775
- 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) => {
122776
122243
  for (var name2 in all2)
122777
- __defProp3(target2, name2, { get: all2[name2], enumerable: true });
122244
+ __defProp2(target2, name2, { get: all2[name2], enumerable: true });
122778
122245
  };
122779
- var __copyProps2 = (to2, from, except, desc) => {
122246
+ var __copyProps = (to2, from, except, desc) => {
122780
122247
  if (from && typeof from === "object" || typeof from === "function") {
122781
- for (let key of __getOwnPropNames2(from))
122782
- if (!__hasOwnProp2.call(to2, key) && key !== except)
122783
- __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 });
122784
122251
  }
122785
122252
  return to2;
122786
122253
  };
122787
- 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(
122788
122255
  // If the importer is in node compatibility mode or this is not an ESM
122789
122256
  // file that has been converted to a CommonJS file using a Babel-
122790
122257
  // compatible transform (i.e. "__esModule" has not been set), then set
122791
122258
  // "default" to the CommonJS "module.exports" for node compatibility.
122792
- !mod || !mod.__esModule ? __defProp3(target2, "default", { value: mod, enumerable: true }) : target2,
122259
+ !mod || !mod.__esModule ? __defProp2(target2, "default", { value: mod, enumerable: true }) : target2,
122793
122260
  mod
122794
122261
  ));
122795
- var __toCommonJS = (mod) => __copyProps2(__defProp3({}, "__esModule", { value: true }), mod);
122262
+ var __toCommonJS = (mod) => __copyProps(__defProp2({}, "__esModule", { value: true }), mod);
122796
122263
  var auth_config_exports = {};
122797
- __export2(auth_config_exports, {
122264
+ __export(auth_config_exports, {
122798
122265
  isValidAccessToken: () => isValidAccessToken,
122799
122266
  readAuthConfig: () => readAuthConfig,
122800
122267
  writeAuthConfig: () => writeAuthConfig
122801
122268
  });
122802
122269
  authConfig = __toCommonJS(auth_config_exports);
122803
- var fs2 = __toESM2(fs__default);
122804
- var path2 = __toESM2(path__default);
122270
+ var fs2 = __toESM(fs__default);
122271
+ var path2 = __toESM(path__default);
122805
122272
  var import_token_util = requireTokenUtil();
122806
122273
  function getAuthConfigPath() {
122807
122274
  const dataDir = (0, import_token_util.getVercelDataDir)();
@@ -122851,25 +122318,25 @@ var hasRequiredOauth;
122851
122318
  function requireOauth() {
122852
122319
  if (hasRequiredOauth) return oauth;
122853
122320
  hasRequiredOauth = 1;
122854
- var __defProp3 = Object.defineProperty;
122855
- var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
122856
- var __getOwnPropNames2 = Object.getOwnPropertyNames;
122857
- var __hasOwnProp2 = Object.prototype.hasOwnProperty;
122858
- 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) => {
122859
122326
  for (var name2 in all2)
122860
- __defProp3(target2, name2, { get: all2[name2], enumerable: true });
122327
+ __defProp2(target2, name2, { get: all2[name2], enumerable: true });
122861
122328
  };
122862
- var __copyProps2 = (to2, from, except, desc) => {
122329
+ var __copyProps = (to2, from, except, desc) => {
122863
122330
  if (from && typeof from === "object" || typeof from === "function") {
122864
- for (let key of __getOwnPropNames2(from))
122865
- if (!__hasOwnProp2.call(to2, key) && key !== except)
122866
- __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 });
122867
122334
  }
122868
122335
  return to2;
122869
122336
  };
122870
- var __toCommonJS = (mod) => __copyProps2(__defProp3({}, "__esModule", { value: true }), mod);
122337
+ var __toCommonJS = (mod) => __copyProps(__defProp2({}, "__esModule", { value: true }), mod);
122871
122338
  var oauth_exports = {};
122872
- __export2(oauth_exports, {
122339
+ __export(oauth_exports, {
122873
122340
  processTokenResponse: () => processTokenResponse,
122874
122341
  refreshTokenRequest: () => refreshTokenRequest
122875
122342
  });
@@ -122940,35 +122407,35 @@ var hasRequiredTokenUtil;
122940
122407
  function requireTokenUtil() {
122941
122408
  if (hasRequiredTokenUtil) return tokenUtil;
122942
122409
  hasRequiredTokenUtil = 1;
122943
- var __create2 = Object.create;
122944
- var __defProp3 = Object.defineProperty;
122945
- var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
122946
- var __getOwnPropNames2 = Object.getOwnPropertyNames;
122947
- var __getProtoOf3 = Object.getPrototypeOf;
122948
- var __hasOwnProp2 = Object.prototype.hasOwnProperty;
122949
- 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) => {
122950
122417
  for (var name2 in all2)
122951
- __defProp3(target2, name2, { get: all2[name2], enumerable: true });
122418
+ __defProp2(target2, name2, { get: all2[name2], enumerable: true });
122952
122419
  };
122953
- var __copyProps2 = (to2, from, except, desc) => {
122420
+ var __copyProps = (to2, from, except, desc) => {
122954
122421
  if (from && typeof from === "object" || typeof from === "function") {
122955
- for (let key of __getOwnPropNames2(from))
122956
- if (!__hasOwnProp2.call(to2, key) && key !== except)
122957
- __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 });
122958
122425
  }
122959
122426
  return to2;
122960
122427
  };
122961
- 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(
122962
122429
  // If the importer is in node compatibility mode or this is not an ESM
122963
122430
  // file that has been converted to a CommonJS file using a Babel-
122964
122431
  // compatible transform (i.e. "__esModule" has not been set), then set
122965
122432
  // "default" to the CommonJS "module.exports" for node compatibility.
122966
- !mod || !mod.__esModule ? __defProp3(target2, "default", { value: mod, enumerable: true }) : target2,
122433
+ !mod || !mod.__esModule ? __defProp2(target2, "default", { value: mod, enumerable: true }) : target2,
122967
122434
  mod
122968
122435
  ));
122969
- var __toCommonJS = (mod) => __copyProps2(__defProp3({}, "__esModule", { value: true }), mod);
122436
+ var __toCommonJS = (mod) => __copyProps(__defProp2({}, "__esModule", { value: true }), mod);
122970
122437
  var token_util_exports = {};
122971
- __export2(token_util_exports, {
122438
+ __export(token_util_exports, {
122972
122439
  assertVercelOidcTokenResponse: () => assertVercelOidcTokenResponse,
122973
122440
  findProjectInfo: () => findProjectInfo,
122974
122441
  getTokenPayload: () => getTokenPayload,
@@ -122980,8 +122447,8 @@ function requireTokenUtil() {
122980
122447
  saveToken: () => saveToken
122981
122448
  });
122982
122449
  tokenUtil = __toCommonJS(token_util_exports);
122983
- var path2 = __toESM2(path__default);
122984
- var fs2 = __toESM2(fs__default);
122450
+ var path2 = __toESM(path__default);
122451
+ var fs2 = __toESM(fs__default);
122985
122452
  var import_token_error = requireTokenError();
122986
122453
  var import_token_io = requireTokenIo();
122987
122454
  var import_auth_config = requireAuthConfig();
@@ -123136,25 +122603,25 @@ var hasRequiredDist;
123136
122603
  function requireDist() {
123137
122604
  if (hasRequiredDist) return dist;
123138
122605
  hasRequiredDist = 1;
123139
- var __defProp3 = Object.defineProperty;
123140
- var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
123141
- var __getOwnPropNames2 = Object.getOwnPropertyNames;
123142
- var __hasOwnProp2 = Object.prototype.hasOwnProperty;
123143
- 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) => {
123144
122611
  for (var name2 in all2)
123145
- __defProp3(target2, name2, { get: all2[name2], enumerable: true });
122612
+ __defProp2(target2, name2, { get: all2[name2], enumerable: true });
123146
122613
  };
123147
- var __copyProps2 = (to2, from, except, desc) => {
122614
+ var __copyProps = (to2, from, except, desc) => {
123148
122615
  if (from && typeof from === "object" || typeof from === "function") {
123149
- for (let key of __getOwnPropNames2(from))
123150
- if (!__hasOwnProp2.call(to2, key) && key !== except)
123151
- __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 });
123152
122619
  }
123153
122620
  return to2;
123154
122621
  };
123155
- var __toCommonJS = (mod) => __copyProps2(__defProp3({}, "__esModule", { value: true }), mod);
122622
+ var __toCommonJS = (mod) => __copyProps(__defProp2({}, "__esModule", { value: true }), mod);
123156
122623
  var src_exports = {};
123157
- __export2(src_exports, {
122624
+ __export(src_exports, {
123158
122625
  AccessTokenMissingError: () => import_auth_errors.AccessTokenMissingError,
123159
122626
  RefreshAccessTokenFailedError: () => import_auth_errors.RefreshAccessTokenFailedError,
123160
122627
  getContext: () => import_get_context.getContext,
@@ -127956,7 +127423,7 @@ var QueueClient = class {
127956
127423
  setApi(this, new ApiClient({ ...options, region }));
127957
127424
  }
127958
127425
  };
127959
- const version = "5.0.0-beta.19";
127426
+ const version = "5.0.0-beta.20";
127960
127427
  const HTTP_DEBUG_ENABLED = typeof process !== "undefined" && typeof process.env.DEBUG === "string" && (process.env.DEBUG.includes("workflow:") || process.env.DEBUG === "*");
127961
127428
  function httpLog(method, endpoint, response2, ms2) {
127962
127429
  if (HTTP_DEBUG_ENABLED) {
@@ -128564,6 +128031,8 @@ function buildPostFrameMeta(input) {
128564
128031
  meta2.correlationId = input.correlationId;
128565
128032
  if (input.vercelId !== void 0)
128566
128033
  meta2.vercelId = input.vercelId;
128034
+ if (input.occurredAt !== void 0)
128035
+ meta2.occurredAt = input.occurredAt;
128567
128036
  if (input.remoteRefBehavior !== void 0) {
128568
128037
  meta2.remoteRefBehavior = input.remoteRefBehavior;
128569
128038
  }
@@ -128601,6 +128070,8 @@ function buildPostFrameMeta(input) {
128601
128070
  }
128602
128071
  if (input.sinceCursor !== void 0)
128603
128072
  meta2.sinceCursor = input.sinceCursor;
128073
+ if (input.skipPreload !== void 0)
128074
+ meta2.skipPreload = input.skipPreload;
128604
128075
  return meta2;
128605
128076
  }
128606
128077
  function throwForErrorResponse(statusCode, responseHeaders, errorBody, opName, url2) {
@@ -129094,6 +128565,9 @@ function buildEventFromV4(decoded, payloadBody, resolveData) {
129094
128565
  runId: decoded.runId,
129095
128566
  eventType: decoded.eventType,
129096
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
+ } : {},
129097
128571
  ...decoded.correlationId ? { correlationId: decoded.correlationId } : {},
129098
128572
  eventData,
129099
128573
  ...decoded.specVersion !== void 0 ? { specVersion: decoded.specVersion } : {}
@@ -129175,6 +128649,7 @@ async function createWorkflowRunEventInner(id2, data, params, config2) {
129175
128649
  specVersion: data.specVersion ?? 2,
129176
128650
  ...data.correlationId ? { correlationId: data.correlationId } : {},
129177
128651
  ...(params == null ? void 0 : params.requestId) ? { vercelId: params.requestId } : {},
128652
+ occurredAt: (params == null ? void 0 : params.occurredAt) ?? /* @__PURE__ */ new Date(),
129178
128653
  // Opt-in inline-delta: forward the cursor the runtime held before
129179
128654
  // this write so the server can return the authoritative event-log
129180
128655
  // delta on the response (events/cursor/hasMore), letting the inline
@@ -129182,6 +128657,11 @@ async function createWorkflowRunEventInner(id2, data, params, config2) {
129182
128657
  // step_completed/step_failed; older servers ignore it and the runtime
129183
128658
  // falls back to events.list.
129184
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 } : {},
129185
128665
  remoteRefBehavior,
129186
128666
  payload,
129187
128667
  ...meta2
@@ -129304,6 +128784,9 @@ const MAX_CHUNKS_PER_REQUEST = 1e3;
129304
128784
  function getStreamUrl(name2, runId, httpConfig) {
129305
128785
  return new URL(`${httpConfig.baseUrl}/v2/runs/${encodeURIComponent(runId)}/stream/${encodeURIComponent(name2)}`);
129306
128786
  }
128787
+ function getStreamReadUrl(name2, runId, httpConfig) {
128788
+ return new URL(`${httpConfig.baseUrl}/v3/runs/${encodeURIComponent(runId)}/stream/${encodeURIComponent(name2)}`);
128789
+ }
129307
128790
  function createStreamRequestError(operation, url2, response2, text2) {
129308
128791
  const context = [`PUT ${url2.origin}${url2.pathname}`];
129309
128792
  for (const header of ["x-vercel-id", "x-vercel-error"]) {
@@ -129401,7 +128884,7 @@ function createStreamer(config2) {
129401
128884
  },
129402
128885
  async get(runId, name2, startIndex) {
129403
128886
  const httpConfig = await getHttpConfig(config2);
129404
- const url2 = getStreamUrl(name2, runId, httpConfig);
128887
+ const url2 = getStreamReadUrl(name2, runId, httpConfig);
129405
128888
  if (typeof startIndex === "number") {
129406
128889
  url2.searchParams.set("startIndex", String(startIndex));
129407
128890
  }
@@ -139951,7 +139434,7 @@ var SelectArrow = reactExports.forwardRef(
139951
139434
  const popperScope = usePopperScope(__scopeSelect);
139952
139435
  const context = useSelectContext(ARROW_NAME, __scopeSelect);
139953
139436
  const contentContext = useSelectContentContext(ARROW_NAME, __scopeSelect);
139954
- 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;
139955
139438
  }
139956
139439
  );
139957
139440
  SelectArrow.displayName = ARROW_NAME;
@@ -154157,7 +153640,7 @@ function RunDetailView({
154157
153640
  setShowCancelDialog(false);
154158
153641
  await cancelRun(env2, runId);
154159
153642
  await update();
154160
- toast.success("Run cancelled successfully");
153643
+ toast.success("Run cancelled");
154161
153644
  } catch (err) {
154162
153645
  console.error("Failed to cancel run:", err);
154163
153646
  toast.error("Failed to cancel run", {
@@ -154176,7 +153659,7 @@ function RunDetailView({
154176
153659
  setRerunning(true);
154177
153660
  setShowRerunDialog(false);
154178
153661
  const newRunId = await recreateRun(env2, run2.runId);
154179
- toast.success("New run started successfully", {
153662
+ toast.success("New run started", {
154180
153663
  description: `Run ID: ${newRunId}`
154181
153664
  });
154182
153665
  navigate(`/run/${newRunId}`);
@@ -154328,7 +153811,7 @@ function RunDetailView({
154328
153811
  "Streams"
154329
153812
  ] })
154330
153813
  ] }),
154331
- /* @__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(
154332
153815
  NewTraceViewer,
154333
153816
  {
154334
153817
  run: run2,
@@ -154651,7 +154134,7 @@ const route4 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProper
154651
154134
  __proto__: null,
154652
154135
  loader
154653
154136
  }, Symbol.toStringTag, { value: "Module" }));
154654
- 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 };
154655
154138
  const assetsBuildDirectory = "build/client";
154656
154139
  const basename = "/";
154657
154140
  const future = { "unstable_optimizeDeps": false, "unstable_subResourceIntegrity": false, "unstable_trailingSlashAwareDataRequests": false, "unstable_previewServerPrerendering": false, "v8_middleware": false, "v8_splitRouteModules": false, "v8_viteEnvironmentApi": false };