@workflow/web 5.0.0-beta.4 → 5.0.0-beta.5

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 (21) hide show
  1. package/build/client/assets/{encryption-80GMP4r0.js → encryption-CEh0YXii.js} +4 -2
  2. package/build/client/assets/{entry.client-BWsSsWQm.js → entry.client-DtOpLtMQ.js} +1 -1
  3. package/build/client/assets/{highlighted-body-B3W2YXNL-B7T9pqeb.js → highlighted-body-B3W2YXNL-L1CrwoL_.js} +2 -2
  4. package/build/client/assets/{home-BIQJMe_Q.js → home-B6UmDDP6.js} +4 -3
  5. package/build/client/assets/index-B4xuge0I.js +249 -0
  6. package/build/client/assets/{index-DQa-BExo.js → index-BsV8i_Jn.js} +20 -20
  7. package/build/client/assets/manifest-e4c1c787.js +1 -0
  8. package/build/client/assets/{mermaid-3ZIDBTTL-w46Kr90n.js → mermaid-3ZIDBTTL-BQLU7GUr.js} +226 -46
  9. package/build/client/assets/{root-sXuXrryl.js → root-Yk3JVwUh.js} +2 -2
  10. package/build/client/assets/{run-detail-7Pj2mQLs.js → run-detail-DMUaWXhb.js} +35 -10
  11. package/build/client/assets/{workflow-graph-viewer-De9JQkZc.js → workflow-graph-viewer-yqeN-U_2.js} +3 -3
  12. package/build/server/assets/{app-CtOg8_v5.js → app-L1V62FgT.js} +1 -1
  13. package/build/server/assets/{highlighted-body-B3W2YXNL-uaucauLI.js → highlighted-body-B3W2YXNL-CZjJIpdD.js} +6 -7
  14. package/build/server/assets/{index-D02biwxV.js → index-BwtNigf1.js} +18 -20
  15. package/build/server/assets/{mermaid-3ZIDBTTL-DrZ5V6uv.js → mermaid-3ZIDBTTL-Cc8IPTBj.js} +6 -7
  16. package/build/server/assets/{server-build-DT0Hg0Yf.js → server-build-DtcOUEHS.js} +34405 -33782
  17. package/build/server/assets/{token-D7_Lld85.js → token-DHnArVm7.js} +2 -2
  18. package/build/server/assets/{token-util-CfY4anoc.js → token-util-B3uKeZ0s.js} +2 -2
  19. package/build/server/index.js +1 -1
  20. package/package.json +8 -7
  21. package/build/client/assets/manifest-77894282.js +0 -1
@@ -1,9 +1,9 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/highlighted-body-B3W2YXNL-B7T9pqeb.js","assets/index-DQa-BExo.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/encryption-CEh0YXii.js","assets/index-B4xuge0I.js","assets/index-BsV8i_Jn.js","assets/highlighted-body-B3W2YXNL-L1CrwoL_.js"])))=>i.map(i=>d[i]);
2
2
  var __defProp = Object.defineProperty;
3
3
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
4
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
5
  var _a2;
6
- import { r as reactExports, j as jsxRuntimeExports, f as reactDomExports, H as React, R as ReactExports, C as ReactDOM, I as getDefaultExportFromCjs } from "./index-DQa-BExo.js";
6
+ import { r as reactExports, j as jsxRuntimeExports, f as reactDomExports, I as React, R as ReactExports, D as ReactDOM, g as getDefaultExportFromCjs } from "./index-BsV8i_Jn.js";
7
7
  function composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {
8
8
  return function handleEvent(event) {
9
9
  originalEventHandler == null ? void 0 : originalEventHandler(event);
@@ -10359,9 +10359,9 @@ function hydrateData(value, revivers) {
10359
10359
  async function hydrateDataWithKey(value, revivers, key) {
10360
10360
  if (value instanceof Uint8Array && isEncryptedData(value) && key) {
10361
10361
  const { decrypt } = await __vitePreload(async () => {
10362
- const { decrypt: decrypt2 } = await import("./encryption-80GMP4r0.js");
10362
+ const { decrypt: decrypt2 } = await import("./encryption-CEh0YXii.js");
10363
10363
  return { decrypt: decrypt2 };
10364
- }, true ? [] : void 0);
10364
+ }, true ? __vite__mapDeps([0,1,2]) : void 0);
10365
10365
  const { payload } = decodeFormatPrefix(value);
10366
10366
  const decrypted = await decrypt(key, payload);
10367
10367
  return hydrateData(decrypted, revivers);
@@ -10441,6 +10441,34 @@ const observabilityRevivers = {
10441
10441
  ReadableStream: streamToStreamRef,
10442
10442
  WritableStream: streamToStreamRef,
10443
10443
  TransformStream: streamToStreamRef,
10444
+ AbortController: (value) => `<AbortController(aborted: ${value.aborted})>`,
10445
+ AbortSignal: (value) => `<AbortSignal(aborted: ${value.aborted})>`,
10446
+ // DOMException needs an explicit reviver: without one, devalue.parse
10447
+ // throws on the `["DOMException", ...]` tag and `hydrateStepIO`'s
10448
+ // try/catch leaves the raw flat-encoded string in the UI. AbortController
10449
+ // synthesizes a DOMException as the default `signal.reason` when abort()
10450
+ // is called with no arg — so any abort that round-trips through a step
10451
+ // boundary surfaces here. Reconstruct as a real DOMException when the
10452
+ // global is available (modern browsers + Node 18+), else fall back to
10453
+ // an Error preserving name/message/stack/cause for display.
10454
+ DOMException: (value) => {
10455
+ const G2 = globalThis;
10456
+ if (typeof G2.DOMException === "function") {
10457
+ const e2 = new G2.DOMException(value.message, value.name);
10458
+ if (value.stack !== void 0)
10459
+ e2.stack = value.stack;
10460
+ if ("cause" in value)
10461
+ e2.cause = value.cause;
10462
+ return e2;
10463
+ }
10464
+ const e = new Error(value.message);
10465
+ e.name = value.name;
10466
+ if (value.stack !== void 0)
10467
+ e.stack = value.stack;
10468
+ if ("cause" in value)
10469
+ e.cause = value.cause;
10470
+ return e;
10471
+ },
10444
10472
  StepFunction: serializedStepFunctionToString,
10445
10473
  WorkflowFunction: (value) => `<workflow:${value.workflowId}>`,
10446
10474
  Instance: serializedInstanceToRef,
@@ -10449,6 +10477,7 @@ const observabilityRevivers = {
10449
10477
  function hydrateStepIO(resource, revivers) {
10450
10478
  let hydratedInput = resource.input;
10451
10479
  let hydratedOutput = resource.output;
10480
+ let hydratedError = resource.error;
10452
10481
  if (resource.input != null) {
10453
10482
  try {
10454
10483
  hydratedInput = hydrateData(resource.input, revivers);
@@ -10461,11 +10490,23 @@ function hydrateStepIO(resource, revivers) {
10461
10490
  } catch {
10462
10491
  }
10463
10492
  }
10464
- return { ...resource, input: hydratedInput, output: hydratedOutput };
10493
+ if (resource.error != null) {
10494
+ try {
10495
+ hydratedError = hydrateData(resource.error, revivers);
10496
+ } catch {
10497
+ }
10498
+ }
10499
+ return {
10500
+ ...resource,
10501
+ input: hydratedInput,
10502
+ output: hydratedOutput,
10503
+ error: hydratedError
10504
+ };
10465
10505
  }
10466
10506
  function hydrateWorkflowIO(resource, revivers) {
10467
10507
  let hydratedInput = resource.input;
10468
10508
  let hydratedOutput = resource.output;
10509
+ let hydratedError = resource.error;
10469
10510
  if (resource.input != null) {
10470
10511
  try {
10471
10512
  hydratedInput = hydrateData(resource.input, revivers);
@@ -10478,7 +10519,18 @@ function hydrateWorkflowIO(resource, revivers) {
10478
10519
  } catch {
10479
10520
  }
10480
10521
  }
10481
- return { ...resource, input: hydratedInput, output: hydratedOutput };
10522
+ if (resource.error != null) {
10523
+ try {
10524
+ hydratedError = hydrateData(resource.error, revivers);
10525
+ } catch {
10526
+ }
10527
+ }
10528
+ return {
10529
+ ...resource,
10530
+ input: hydratedInput,
10531
+ output: hydratedOutput,
10532
+ error: hydratedError
10533
+ };
10482
10534
  }
10483
10535
  function hydrateEventData(resource, revivers) {
10484
10536
  if (!resource.eventData)
@@ -10514,6 +10566,12 @@ function hydrateEventData(resource, revivers) {
10514
10566
  } catch {
10515
10567
  }
10516
10568
  }
10569
+ if ("error" in eventData && eventData.error != null) {
10570
+ try {
10571
+ eventData.error = hydrateData(eventData.error, revivers);
10572
+ } catch {
10573
+ }
10574
+ }
10517
10575
  return { ...resource, eventData };
10518
10576
  }
10519
10577
  function hydrateHookMetadata(resource, revivers) {
@@ -15309,16 +15367,18 @@ const StepFailedEventSchema = BaseEventSchema.extend({
15309
15367
  eventType: literal("step_failed"),
15310
15368
  correlationId: string$2(),
15311
15369
  eventData: object({
15312
- error: any(),
15313
- stack: string$2().optional()
15370
+ // The thrown value, serialized via the workflow serialization pipeline.
15371
+ // Can be any JavaScript value (string, number, object, Error, etc.)
15372
+ error: SerializedDataSchema
15314
15373
  })
15315
15374
  });
15316
15375
  const StepRetryingEventSchema = BaseEventSchema.extend({
15317
15376
  eventType: literal("step_retrying"),
15318
15377
  correlationId: string$2(),
15319
15378
  eventData: object({
15320
- error: any(),
15321
- stack: string$2().optional(),
15379
+ // The thrown value, serialized via the workflow serialization pipeline.
15380
+ // Can be any JavaScript value (string, number, object, Error, etc.)
15381
+ error: SerializedDataSchema,
15322
15382
  retryAfter: date().optional()
15323
15383
  })
15324
15384
  });
@@ -15342,7 +15402,9 @@ const HookCreatedEventSchema = BaseEventSchema.extend({
15342
15402
  correlationId: string$2(),
15343
15403
  eventData: object({
15344
15404
  token: string$2(),
15345
- metadata: SerializedDataSchema.optional()
15405
+ metadata: SerializedDataSchema.optional(),
15406
+ isWebhook: boolean$2().optional(),
15407
+ isSystem: boolean$2().optional()
15346
15408
  })
15347
15409
  });
15348
15410
  const HookReceivedEventSchema = BaseEventSchema.extend({
@@ -15401,7 +15463,13 @@ const RunCompletedEventSchema = BaseEventSchema.extend({
15401
15463
  const RunFailedEventSchema = BaseEventSchema.extend({
15402
15464
  eventType: literal("run_failed"),
15403
15465
  eventData: object({
15404
- error: any(),
15466
+ // The thrown value, serialized via the workflow serialization pipeline.
15467
+ // Can be any JavaScript value (string, number, object, Error, etc.)
15468
+ error: SerializedDataSchema,
15469
+ // The high-level error category (USER_ERROR, RUNTIME_ERROR, etc.) used
15470
+ // for routing and classification. Kept as plaintext metadata so
15471
+ // observability tools can filter/categorize without needing to decrypt
15472
+ // the full error payload.
15405
15473
  errorCode: string$2().optional()
15406
15474
  })
15407
15475
  });
@@ -15469,7 +15537,8 @@ object({
15469
15537
  createdAt: date(),
15470
15538
  // Optional in database for backwards compatibility, defaults to 1 (legacy) when reading
15471
15539
  specVersion: number$2().optional(),
15472
- isWebhook: boolean$2().optional()
15540
+ isWebhook: boolean$2().optional(),
15541
+ isSystem: boolean$2().optional()
15473
15542
  });
15474
15543
  const QueuePrefix = union([
15475
15544
  literal("__wkf_step_"),
@@ -15491,6 +15560,11 @@ const WorkflowInvokePayloadSchema = object({
15491
15560
  requestedAt: date().optional(),
15492
15561
  /** Number of times this message has been re-enqueued due to server errors (5xx) */
15493
15562
  serverErrorRetryCount: number$2().int().optional(),
15563
+ /** Step ID for inline step execution in combined handler. If provided, the flow execution
15564
+ * will jump directly to execute the step with the given ID before doing an event replay. */
15565
+ stepId: string$2().optional(),
15566
+ /** Step name, sent alongside stepId to avoid loading the event log just to resolve the name. */
15567
+ stepName: string$2().optional(),
15494
15568
  /** Run creation data, only present on the first queue delivery from start() */
15495
15569
  runInput: RunInputSchema.optional()
15496
15570
  });
@@ -15511,22 +15585,6 @@ union([
15511
15585
  StepInvokePayloadSchema,
15512
15586
  HealthCheckPayloadSchema
15513
15587
  ]);
15514
- const zodJsonSchema = lazy(() => {
15515
- return union([
15516
- string$2(),
15517
- number$2(),
15518
- boolean$2(),
15519
- _null(),
15520
- array(zodJsonSchema),
15521
- record(string$2(), zodJsonSchema)
15522
- ]);
15523
- });
15524
- const StructuredErrorSchema = object({
15525
- message: string$2(),
15526
- stack: string$2().optional(),
15527
- code: string$2().optional()
15528
- // Populated with RunErrorCode values (USER_ERROR, RUNTIME_ERROR) for run_failed events
15529
- });
15530
15588
  const WorkflowRunStatusSchema = _enum([
15531
15589
  "pending",
15532
15590
  "running",
@@ -15564,7 +15622,20 @@ const WorkflowRunBaseSchema = object({
15564
15622
  executionContext: record(string$2(), any()).optional(),
15565
15623
  input: SerializedDataSchema,
15566
15624
  output: SerializedDataSchema.optional(),
15567
- error: StructuredErrorSchema.optional(),
15625
+ /**
15626
+ * The thrown value from a run_failed event, serialized via the workflow
15627
+ * serialization pipeline. To display the error to a user, hydrate it via
15628
+ * `hydrateRunError` (with the encryption key if encryption is enabled).
15629
+ * Observability tools cannot view the error without going through the
15630
+ * decryption + hydration pipeline.
15631
+ */
15632
+ error: SerializedDataSchema.optional(),
15633
+ /**
15634
+ * The high-level error category (USER_ERROR, RUNTIME_ERROR, etc.) from a
15635
+ * run_failed event. Kept as plaintext metadata for routing and filtering
15636
+ * without needing to decrypt the full error payload.
15637
+ */
15638
+ errorCode: string$2().optional(),
15568
15639
  expiredAt: date().optional(),
15569
15640
  startedAt: date().optional(),
15570
15641
  completedAt: date().optional(),
@@ -15575,32 +15646,48 @@ discriminatedUnion("status", [
15575
15646
  // Non-final states
15576
15647
  WorkflowRunBaseSchema.extend({
15577
15648
  status: _enum(["pending", "running"]),
15578
- output: _undefined(),
15579
- error: _undefined(),
15580
- completedAt: _undefined()
15649
+ output: _undefined().optional(),
15650
+ error: _undefined().optional(),
15651
+ completedAt: _undefined().optional()
15581
15652
  }),
15582
15653
  // Cancelled state
15583
15654
  WorkflowRunBaseSchema.extend({
15584
15655
  status: literal("cancelled"),
15585
- output: _undefined(),
15586
- error: _undefined(),
15656
+ output: _undefined().optional(),
15657
+ error: _undefined().optional(),
15587
15658
  completedAt: date()
15588
15659
  }),
15589
15660
  // Completed state - output can be v1 or v2 format
15590
15661
  WorkflowRunBaseSchema.extend({
15591
15662
  status: literal("completed"),
15592
15663
  output: SerializedDataSchema,
15593
- error: _undefined(),
15664
+ error: _undefined().optional(),
15594
15665
  completedAt: date()
15595
15666
  }),
15596
15667
  // Failed state
15597
15668
  WorkflowRunBaseSchema.extend({
15598
15669
  status: literal("failed"),
15599
- output: _undefined(),
15600
- error: StructuredErrorSchema,
15670
+ output: _undefined().optional(),
15671
+ error: SerializedDataSchema,
15601
15672
  completedAt: date()
15602
15673
  })
15603
15674
  ]);
15675
+ const zodJsonSchema = lazy(() => {
15676
+ return union([
15677
+ string$2(),
15678
+ number$2(),
15679
+ boolean$2(),
15680
+ _null(),
15681
+ array(zodJsonSchema),
15682
+ record(string$2(), zodJsonSchema)
15683
+ ]);
15684
+ });
15685
+ object({
15686
+ message: string$2(),
15687
+ stack: string$2().optional(),
15688
+ code: string$2().optional()
15689
+ // Populated with RunErrorCode values (USER_ERROR, RUNTIME_ERROR) for run_failed events
15690
+ });
15604
15691
  const StepStatusSchema = _enum([
15605
15692
  "pending",
15606
15693
  "running",
@@ -15636,11 +15723,16 @@ object({
15636
15723
  input: SerializedDataSchema,
15637
15724
  output: SerializedDataSchema.optional(),
15638
15725
  /**
15639
- * The error from a step_retrying or step_failed event.
15640
- * This tracks the most recent error the step encountered, which may
15641
- * be from a retry attempt (step_retrying) or the final failure (step_failed).
15726
+ * The thrown value from a step_retrying or step_failed event, serialized
15727
+ * via the workflow serialization pipeline. Tracks the most recent error
15728
+ * the step encountered, which may be from a retry attempt (step_retrying)
15729
+ * or the final failure (step_failed).
15730
+ *
15731
+ * To display the error to a user, hydrate it via `hydrateStepError` (with
15732
+ * the encryption key if encryption is enabled). Observability tools cannot
15733
+ * view the error without going through the decryption + hydration pipeline.
15642
15734
  */
15643
- error: StructuredErrorSchema.optional(),
15735
+ error: SerializedDataSchema.optional(),
15644
15736
  attempt: number$2(),
15645
15737
  /**
15646
15738
  * When the step first started executing. Set by the first step_started event
@@ -15677,6 +15769,21 @@ function base64ToArrayBuffer(base642) {
15677
15769
  }
15678
15770
  return bytes.buffer;
15679
15771
  }
15772
+ function makeWebErrorSubclassReviver(name2) {
15773
+ return (value) => {
15774
+ const opts = "cause" in value ? { cause: value.cause } : void 0;
15775
+ const Ctor = globalThis[name2];
15776
+ let error;
15777
+ if (typeof Ctor === "function") {
15778
+ error = new Ctor(value.message, opts);
15779
+ } else {
15780
+ error = Object.assign(new Error(value.message, opts), { name: name2 });
15781
+ }
15782
+ if (value.stack !== void 0)
15783
+ error.stack = value.stack;
15784
+ return error;
15785
+ };
15786
+ }
15680
15787
  function getWebRevivers() {
15681
15788
  function reviveArrayBuffer(value) {
15682
15789
  return base64ToArrayBuffer(value);
@@ -15691,10 +15798,83 @@ function getWebRevivers() {
15691
15798
  BigInt64Array: (value) => new BigInt64Array(reviveArrayBuffer(value)),
15692
15799
  BigUint64Array: (value) => new BigUint64Array(reviveArrayBuffer(value)),
15693
15800
  Date: (value) => new Date(value),
15801
+ // Error family. The reducer side (see
15802
+ // `packages/core/src/serialization/reducers/common.ts`) emits a tagged
15803
+ // entry for each built-in Error subclass plus the workflow-specific
15804
+ // `FatalError` / `RetryableError` and `AggregateError`. Without
15805
+ // matching revivers here, `devalue.unflatten` throws "Unknown type X"
15806
+ // — which surfaces in the web o11y UI as "Failed to load resource
15807
+ // details: Unknown type FatalError".
15694
15808
  Error: (value) => {
15809
+ const opts = "cause" in value ? { cause: value.cause } : void 0;
15810
+ const error = new Error(value.message, opts);
15811
+ error.name = value.name;
15812
+ if (value.stack !== void 0)
15813
+ error.stack = value.stack;
15814
+ return error;
15815
+ },
15816
+ EvalError: makeWebErrorSubclassReviver("EvalError"),
15817
+ RangeError: makeWebErrorSubclassReviver("RangeError"),
15818
+ ReferenceError: makeWebErrorSubclassReviver("ReferenceError"),
15819
+ SyntaxError: makeWebErrorSubclassReviver("SyntaxError"),
15820
+ TypeError: makeWebErrorSubclassReviver("TypeError"),
15821
+ URIError: makeWebErrorSubclassReviver("URIError"),
15822
+ AggregateError: (value) => {
15823
+ const opts = "cause" in value ? { cause: value.cause } : void 0;
15824
+ const Ctor = globalThis.AggregateError;
15825
+ const error = typeof Ctor === "function" ? new Ctor(value.errors, value.message, opts) : Object.assign(new Error(value.message, opts), {
15826
+ name: "AggregateError",
15827
+ errors: value.errors
15828
+ });
15829
+ if (value.stack !== void 0)
15830
+ error.stack = value.stack;
15831
+ return error;
15832
+ },
15833
+ // `FatalError` and `RetryableError` are not built-in browser globals,
15834
+ // so we can't resolve a constructor from globalThis. The web o11y UI
15835
+ // doesn't need `instanceof FatalError` to pass (no user code runs
15836
+ // here) — it just needs `name`, `message`, `stack`, and any extra
15837
+ // enumerable fields to render. Construct a plain `Error` with `name`
15838
+ // set; ObjectInspector reads `constructor.name` for the displayed
15839
+ // class label, but we don't have the real class, so we emit a tagged
15840
+ // Error whose `name` field carries the class identity. This matches
15841
+ // how the existing base `Error` reviver presents unknown subclasses.
15842
+ FatalError: (value) => {
15843
+ const opts = "cause" in value ? { cause: value.cause } : void 0;
15844
+ const error = new Error(value.message, opts);
15845
+ error.name = "FatalError";
15846
+ if (value.stack !== void 0)
15847
+ error.stack = value.stack;
15848
+ return error;
15849
+ },
15850
+ RetryableError: (value) => {
15851
+ const opts = "cause" in value ? { cause: value.cause } : void 0;
15852
+ const error = new Error(value.message, opts);
15853
+ error.name = "RetryableError";
15854
+ if (value.stack !== void 0)
15855
+ error.stack = value.stack;
15856
+ if (value.retryAfter != null) {
15857
+ error.retryAfter = new Date(value.retryAfter);
15858
+ }
15859
+ return error;
15860
+ },
15861
+ DOMException: (value) => {
15862
+ const G2 = globalThis;
15863
+ if (typeof G2.DOMException === "function") {
15864
+ const e = new G2.DOMException(value.message, value.name);
15865
+ if (value.stack !== void 0)
15866
+ e.stack = value.stack;
15867
+ if ("cause" in value)
15868
+ e.cause = value.cause;
15869
+ return e;
15870
+ }
15695
15871
  const error = new Error(value.message);
15696
15872
  error.name = value.name;
15697
- error.stack = value.stack;
15873
+ if (value.stack !== void 0)
15874
+ error.stack = value.stack;
15875
+ if ("cause" in value) {
15876
+ error.cause = value.cause;
15877
+ }
15698
15878
  return error;
15699
15879
  },
15700
15880
  Float32Array: (value) => new Float32Array(reviveArrayBuffer(value)),
@@ -15832,9 +16012,9 @@ async function hydrateResourceIOWithKey(resource, key) {
15832
16012
  return { hydrateDataWithKey: hydrateDataWithKey3 };
15833
16013
  }, true ? void 0 : void 0);
15834
16014
  const { importKey } = await __vitePreload(async () => {
15835
- const { importKey: importKey2 } = await import("./encryption-80GMP4r0.js");
16015
+ const { importKey: importKey2 } = await import("./encryption-CEh0YXii.js");
15836
16016
  return { importKey: importKey2 };
15837
- }, true ? [] : void 0);
16017
+ }, true ? __vite__mapDeps([0,1,2]) : void 0);
15838
16018
  const cryptoKey = await importKey(key);
15839
16019
  const revivers = getRevivers();
15840
16020
  async function decryptField(value, rev, k2) {
@@ -42964,7 +43144,7 @@ var tn = f("block", "before:content-[counter(line)]", "before:inline-block", "be
42964
43144
  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 });
42965
43145
  var Se = reactExports.createContext({ code: "" }), de = () => reactExports.useContext(Se);
42966
43146
  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 }) });
42967
- var cn$1 = /\n+$/, dn = reactExports.lazy(() => __vitePreload(() => import("./highlighted-body-B3W2YXNL-B7T9pqeb.js"), true ? __vite__mapDeps([0,1]) : void 0).then((e) => ({ default: e.HighlightedCodeBlockBody }))), rt = ({ code: e, language: t, className: o, children: n, isIncomplete: s2 = false, ...r2 }) => {
43147
+ var cn$1 = /\n+$/, dn = reactExports.lazy(() => __vitePreload(() => import("./highlighted-body-B3W2YXNL-L1CrwoL_.js"), true ? __vite__mapDeps([3,2]) : void 0).then((e) => ({ default: e.HighlightedCodeBlockBody }))), rt = ({ code: e, language: t, className: o, children: n, isIncomplete: s2 = false, ...r2 }) => {
42968
43148
  let i = reactExports.useMemo(() => e.replace(cn$1, ""), [e]), c = reactExports.useMemo(() => ({ bg: "transparent", fg: "inherit", tokens: i.split(`
42969
43149
  `).map((a2) => [{ content: a2, color: "inherit", bgColor: "transparent", htmlStyle: {}, offset: 0 }]) }), [i]);
42970
43150
  return jsxRuntimeExports.jsx(Se.Provider, { value: { code: e }, children: jsxRuntimeExports.jsxs(et, { isIncomplete: s2, language: t, children: [jsxRuntimeExports.jsx(ot, { language: t }), n ? jsxRuntimeExports.jsx("div", { className: "pointer-events-none sticky top-2 z-10 -mt-10 flex h-8 items-center justify-end", children: jsxRuntimeExports.jsx("div", { className: "pointer-events-auto flex shrink-0 items-center gap-2 rounded-md border border-sidebar bg-sidebar/80 px-1.5 py-1 supports-[backdrop-filter]:bg-sidebar/70 supports-[backdrop-filter]:backdrop-blur", "data-streamdown": "code-block-actions", children: n }) }) : null, jsxRuntimeExports.jsx(reactExports.Suspense, { fallback: jsxRuntimeExports.jsx(Qe, { className: o, language: t, result: c, ...r2 }), children: jsxRuntimeExports.jsx(dn, { className: o, code: i, language: t, raw: c, ...r2 }) })] }) });
@@ -1,5 +1,5 @@
1
- import { r as reactExports, j as jsxRuntimeExports, w as withComponentProps, v as withErrorBoundaryProps, M as Meta, L as Links, S as ScrollRestoration, x as Scripts, O as Outlet, y as useRouteError, i as isRouteErrorResponse, z as Link, A as useNavigate, B as useSearchParams } from "./index-DQa-BExo.js";
2
- import { c as createLucideIcon, u as useServerConfig, T as Tooltip, a as TooltipTrigger, b as TooltipContent, r as runHealthCheck, t as toast, B as Button, L as LoaderCircle, d as cn, e as Toaster$1, S as ServerConfigProvider, f as TooltipProvider } from "./mermaid-3ZIDBTTL-w46Kr90n.js";
1
+ import { r as reactExports, j as jsxRuntimeExports, w as withComponentProps, x as withErrorBoundaryProps, M as Meta, L as Links, S as ScrollRestoration, y as Scripts, O as Outlet, z as useRouteError, i as isRouteErrorResponse, A as Link, B as useNavigate, C as useSearchParams } from "./index-BsV8i_Jn.js";
2
+ import { c as createLucideIcon, u as useServerConfig, T as Tooltip, a as TooltipTrigger, b as TooltipContent, r as runHealthCheck, t as toast, B as Button, L as LoaderCircle, d as cn, e as Toaster$1, S as ServerConfigProvider, f as TooltipProvider } from "./mermaid-3ZIDBTTL-BQLU7GUr.js";
3
3
  var M = (e, i, s, u, m, a, l, h) => {
4
4
  let d = document.documentElement, w = ["light", "dark"];
5
5
  function p(n) {
@@ -1,7 +1,8 @@
1
- import { j as jsxRuntimeExports, r as reactExports, f as reactDomExports, C as ReactDOM, A as useNavigate, B as useSearchParams, z as Link, w as withComponentProps, G as useParams } from "./index-DQa-BExo.js";
2
- import { N as Copy, C as CircleAlert, O as parseStepName, z as parseWorkflowName, j as ChevronRight, p as Check, Q as ErrorCard, Z as Zap, S as Send, R as ResolveHookModal, U as Circle, X, M as ErrorBoundary, H as unwrapServerActionResult, u as unwrapOrThrow, W as WorkflowWebAPIError, V as useEscapeKeydown, s as composeEventHandlers, Y as useCallbackRef, _ as useLayoutEffect2, q as useControllableState, $ as useId, a0 as createContext2, t as Presence, w as createContextScope, l as hideOthers, m as ReactRemoveScroll, a1 as useFocusGuards, a2 as LAYOUT, a3 as wakeUpRun, r as resumeHook, A as Alert, c as AlertTitle, d as AlertDescription, a as Skeleton$1, a4 as RunActionsButtons, B as StatusBadge, e as CopyableText, b as RelativeTime, T as Tabs, J as TabsList, K as TabsTrigger, L as TabsContent, x as cancelRun, a5 as recreateRun } from "./workflow-graph-viewer-De9JQkZc.js";
3
- import { c as createLucideIcon, M as Spinner, h as useToast, N as Skeleton, O as DecryptClickContext, Y as Yr, U as isEncryptedMarker, W as formatDuration, X as DataInspector, _ as _r, Z as RunClickContext, $ as StreamClickContext, a0 as isExpiredMarker, a1 as isDoStreamStep, a2 as extractConversation, a3 as Lock, a4 as EVENT_DATA_REF_FIELDS, a5 as clsx, a6 as cn, a7 as getSpanDurationMs, a8 as getHighResInMs, a9 as ActiveSpanProvider, aa as useActiveSpan, ab as useSidebarDataOptional, ac as computeRootBounds, ad as computeTimeMarkers, ae as TIMELINE_PADDING_PX, af as Timeline, ag as TimelineHeader, ah as SidebarDataProvider, ai as hydrateResourceIOWithKey, aj as hydrateResourceIO, ak as fetchHook, l as fetchEvents, F as fetchRun, al as fetchStep, am as hasEncryptedFields, an as fetchStreams, ao as Slot, E as useComposedRefs, ap as Slottable, d as cn$1, aq as buttonVariants, ar as isEncryptedData, as as hydrateData, at as getWebRevivers, T as Tooltip, a as TooltipTrigger, b as TooltipContent, au as LIVE_UPDATE_INTERVAL_MS$1, u as useServerConfig, av as fetchEvent, aw as getEncryptionKeyForRun, t as toast, L as LoaderCircle, ax as StreamViewer } from "./mermaid-3ZIDBTTL-w46Kr90n.js";
4
- import { decrypt, importKey } from "./encryption-80GMP4r0.js";
1
+ import { j as jsxRuntimeExports, r as reactExports, f as reactDomExports, D as ReactDOM, B as useNavigate, C as useSearchParams, A as Link, w as withComponentProps, H as useParams } from "./index-BsV8i_Jn.js";
2
+ import { N as Copy, C as CircleAlert, O as parseStepName, z as parseWorkflowName, j as ChevronRight, p as Check, Q as ErrorCard, Z as Zap, S as Send, R as ResolveHookModal, U as Circle, X, M as ErrorBoundary, H as unwrapServerActionResult, u as unwrapOrThrow, W as WorkflowWebAPIError, V as useEscapeKeydown, s as composeEventHandlers, Y as useCallbackRef, _ as useLayoutEffect2, q as useControllableState, $ as useId, a0 as createContext2, t as Presence, w as createContextScope, l as hideOthers, m as ReactRemoveScroll, a1 as useFocusGuards, a2 as LAYOUT, a3 as wakeUpRun, r as resumeHook, A as Alert, c as AlertTitle, d as AlertDescription, a as Skeleton$1, a4 as RunActionsButtons, B as StatusBadge, e as CopyableText, b as RelativeTime, T as Tabs, J as TabsList, K as TabsTrigger, L as TabsContent, x as cancelRun, a5 as recreateRun } from "./workflow-graph-viewer-yqeN-U_2.js";
3
+ import { c as createLucideIcon, M as Spinner, h as useToast, N as Skeleton, O as DecryptClickContext, Y as Yr, U as isEncryptedMarker, W as formatDuration, X as DataInspector, _ as _r, Z as RunClickContext, $ as StreamClickContext, a0 as isExpiredMarker, a1 as isDoStreamStep, a2 as extractConversation, a3 as Lock, a4 as EVENT_DATA_REF_FIELDS, a5 as clsx, a6 as cn, a7 as getSpanDurationMs, a8 as getHighResInMs, a9 as ActiveSpanProvider, aa as useActiveSpan, ab as useSidebarDataOptional, ac as computeRootBounds, ad as computeTimeMarkers, ae as TIMELINE_PADDING_PX, af as Timeline, ag as TimelineHeader, ah as SidebarDataProvider, ai as hydrateResourceIOWithKey, aj as hydrateResourceIO, ak as fetchHook, l as fetchEvents, F as fetchRun, al as fetchStep, am as hasEncryptedFields, an as fetchStreams, ao as Slot, E as useComposedRefs, ap as Slottable, d as cn$1, aq as buttonVariants, ar as isEncryptedData, as as hydrateData, at as getWebRevivers, T as Tooltip, a as TooltipTrigger, b as TooltipContent, au as LIVE_UPDATE_INTERVAL_MS$1, u as useServerConfig, av as fetchEvent, aw as getEncryptionKeyForRun, t as toast, L as LoaderCircle, ax as StreamViewer } from "./mermaid-3ZIDBTTL-BQLU7GUr.js";
4
+ import { decrypt, importKey } from "./encryption-CEh0YXii.js";
5
+ import "./index-B4xuge0I.js";
5
6
  /**
6
7
  * @license lucide-react v0.575.0 - ISC
7
8
  *
@@ -83,10 +84,15 @@ function DecryptButton({ decrypted = false, loading = false, onClick }) {
83
84
  function isStructuredErrorWithStack(value) {
84
85
  return value != null && typeof value === "object" && "stack" in value && typeof value.stack === "string";
85
86
  }
87
+ function deriveTitle(message) {
88
+ const firstLine = message.split("\n").find((line) => line.trim().length > 0) ?? message;
89
+ return firstLine.trim();
90
+ }
86
91
  function ErrorStackBlock({ value }) {
87
92
  const toast2 = useToast();
88
93
  const stack = value.stack;
89
94
  const message = typeof value.message === "string" ? value.message : void 0;
95
+ const title = message ? deriveTitle(message) : void 0;
90
96
  const copyText = message ? `${message}
91
97
 
92
98
  ${stack}` : stack;
@@ -103,10 +109,18 @@ ${stack}` : stack;
103
109
  }).catch(() => {
104
110
  toast2.error("Failed to copy");
105
111
  });
106
- }, children: jsxRuntimeExports.jsx(Copy, { size: 12 }) }), message && jsxRuntimeExports.jsxs("div", { className: "flex items-start gap-2 px-3 py-2.5 pr-10", style: {
112
+ }, children: jsxRuntimeExports.jsx(Copy, { size: 12 }) }), title && jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2 px-3 py-2.5 pr-10", style: {
107
113
  color: "var(--ds-red-900)",
108
114
  borderBottom: "1px solid var(--ds-red-400)"
109
- }, children: [jsxRuntimeExports.jsx(CircleAlert, { className: "h-4 w-4 shrink-0", style: { marginTop: 1 } }), jsxRuntimeExports.jsx("p", { className: "text-xs font-semibold m-0 break-words", children: message })] }), jsxRuntimeExports.jsx("pre", { className: "px-3 py-2.5 text-xs font-mono whitespace-pre-wrap break-words overflow-auto m-0", style: {
115
+ }, children: [jsxRuntimeExports.jsx(CircleAlert, { className: "h-4 w-4 shrink-0" }), jsxRuntimeExports.jsx("p", {
116
+ className: "text-xs font-semibold m-0 truncate",
117
+ // The full multi-line message is in the stack body below; the
118
+ // header just shows the first line, single-line, with overflow
119
+ // ellipsised so a long title doesn't push the copy button or
120
+ // wrap into the framed hint/docs lines.
121
+ title: message,
122
+ children: title
123
+ })] }), jsxRuntimeExports.jsx("pre", { className: "px-3 py-2.5 text-xs font-mono whitespace-pre-wrap break-words overflow-auto m-0", style: {
110
124
  color: "var(--ds-red-900)",
111
125
  background: "var(--ds-red-200)"
112
126
  }, children: stack })] });
@@ -1220,7 +1234,7 @@ function hookToSpan(hookEvents, maxEndTime) {
1220
1234
  const endTime = hook.disposedAt || maxEndTime;
1221
1235
  return {
1222
1236
  spanId: String(hook.hookId),
1223
- name: String(hook.hookId),
1237
+ name: hook.token ?? String(hook.hookId),
1224
1238
  kind: 1,
1225
1239
  // INTERNAL span kind
1226
1240
  resource: "hook",
@@ -1728,6 +1742,7 @@ const attributeToDisplayFn = {
1728
1742
  // Hook details
1729
1743
  token: (value) => String(value),
1730
1744
  isWebhook: (value) => String(value),
1745
+ isSystem: (value) => String(value),
1731
1746
  receivedCount: (value) => String(value),
1732
1747
  lastReceivedAt: localMillisecondTimeOrNull,
1733
1748
  disposedAt: localMillisecondTimeOrNull,
@@ -1820,6 +1835,11 @@ const attributeToDisplayFn = {
1820
1835
  if (!hasDisplayContent(value))
1821
1836
  return null;
1822
1837
  return jsxRuntimeExports.jsx(DetailCard, { summary: "Event Data", children: JsonBlock(value) });
1838
+ },
1839
+ errorCode: (value) => {
1840
+ if (typeof value !== "string" || value.length === 0)
1841
+ return null;
1842
+ return String(value);
1823
1843
  }
1824
1844
  };
1825
1845
  const resolvableAttributes = [
@@ -2971,17 +2991,23 @@ function NewTraceViewerContent({ trace }) {
2971
2991
  if (!(selectedSpan == null ? void 0 : selectedSpan.data))
2972
2992
  return "Details";
2973
2993
  const data = selectedSpan.data;
2994
+ if (selectedSpan.resource === "hook") {
2995
+ return data.token ?? data.hookId;
2996
+ }
2974
2997
  const stepName = data.stepName;
2975
2998
  const workflowName = data.workflowName;
2976
2999
  return (stepName ? (_a = parseStepName(stepName)) == null ? void 0 : _a.shortName : void 0) ?? (workflowName ? (_b = parseWorkflowName(workflowName)) == null ? void 0 : _b.shortName : void 0) ?? stepName ?? workflowName ?? data.hookId ?? "Details";
2977
- }, [selectedSpan == null ? void 0 : selectedSpan.data]);
3000
+ }, [selectedSpan == null ? void 0 : selectedSpan.data, selectedSpan == null ? void 0 : selectedSpan.resource]);
2978
3001
  const selectedResource = selectedSpan == null ? void 0 : selectedSpan.resource;
2979
3002
  const selectedResourceId = reactExports.useMemo(() => {
2980
3003
  if (!(selectedSpan == null ? void 0 : selectedSpan.data))
2981
3004
  return void 0;
2982
3005
  const data = selectedSpan.data;
3006
+ if (selectedSpan.resource === "hook") {
3007
+ return data.hookId ?? selectedSpan.spanId;
3008
+ }
2983
3009
  return data.stepId ?? data.runId ?? data.hookId ?? selectedSpan.spanId;
2984
- }, [selectedSpan == null ? void 0 : selectedSpan.data, selectedSpan == null ? void 0 : selectedSpan.spanId]);
3010
+ }, [selectedSpan == null ? void 0 : selectedSpan.data, selectedSpan == null ? void 0 : selectedSpan.resource, selectedSpan == null ? void 0 : selectedSpan.spanId]);
2985
3011
  return jsxRuntimeExports.jsxs("div", { "data-pane": "pane-root", "data-has-detail": activeSpan ? "" : void 0, className: "grid w-full h-full max-h-full grid-cols-[minmax(100px,1fr)] data-[has-detail]:grid-cols-[minmax(100px,1fr)_clamp(280px,420px,100%)]", children: [jsxRuntimeExports.jsxs("div", { id: "trace-parent", className: "grid grid-rows-[1fr] h-full min-h-0 overflow-hidden relative bg-background-100", children: [jsxRuntimeExports.jsxs(SplitPane, { startHeader: jsxRuntimeExports.jsxs("div", { className: "bg-background-100 border-b border-gray-alpha-400 h-10 min-h-10 flex items-center px-2 gap-1.5", children: [jsxRuntimeExports.jsx(Search, { className: "w-3.5 h-3.5 shrink-0 text-gray-800" }), jsxRuntimeExports.jsx("input", { id: "trace-viewer-search", name: "trace-viewer-search", type: "text", value: searchQuery, onChange: (e) => setSearchQuery(e.target.value), placeholder: "Search spans...", "aria-label": "Search spans", className: "flex-1 min-w-0 bg-transparent text-sm text-gray-1000 placeholder:text-gray-800 outline-none" }), searchQuery && jsxRuntimeExports.jsx("button", { type: "button", onClick: () => setSearchQuery(""), className: "shrink-0 p-0.5 rounded-sm text-gray-800 hover:text-gray-1000 hover:bg-gray-200 transition-colors", children: jsxRuntimeExports.jsx(X, { className: "w-3 h-3" }) })] }), endHeader: jsxRuntimeExports.jsx(TimelineHeader, { markers: timeMarkers, hoverInfo }), children: [jsxRuntimeExports.jsx("div", { className: "block overflow-visible", children: jsxRuntimeExports.jsx(EventList, { spans: filteredSpans, activeSpanId, onSelectSpan: handleSelectSpan }) }), jsxRuntimeExports.jsx("div", { ref: timelineRef, className: "block min-h-0 overflow-visible relative", onDoubleClick: resetZoom, onMouseMove: handleTimelineMouseMove, onMouseLeave: handleTimelineMouseLeave, children: jsxRuntimeExports.jsx(Timeline, { spans: filteredSpans, viewStart: viewport.start, viewEnd: viewport.end, markers: timeMarkers, selectedId: activeSpanId, onSelect: handleSelectSpan, hoverFraction, altHeld }) })] }), jsxRuntimeExports.jsxs("div", { className: "absolute right-3 bottom-3 z-[5] flex items-center border border-gray-alpha-400 rounded-lg bg-background-100 shadow-sm overflow-hidden divide-x divide-gray-alpha-400", children: [jsxRuntimeExports.jsx("button", { type: "button", className: "flex items-center justify-center w-8 h-8 text-gray-900 cursor-pointer transition-colors duration-[120ms] ease-in-out hover:text-gray-1000 hover:bg-gray-alpha-100", onClick: zoomOut, "aria-label": "Zoom out", children: jsxRuntimeExports.jsx(ZoomOut, { className: "w-4 h-4" }) }), jsxRuntimeExports.jsx("button", { type: "button", className: "flex items-center justify-center w-8 h-8 text-gray-900 cursor-pointer transition-colors duration-[120ms] ease-in-out hover:text-gray-1000 hover:bg-gray-alpha-100", onClick: resetZoom, "aria-label": "Reset zoom", children: jsxRuntimeExports.jsx(RotateCcw, { className: "w-3.5 h-3.5" }) }), jsxRuntimeExports.jsx("button", { type: "button", className: "flex items-center justify-center w-8 h-8 text-gray-900 cursor-pointer transition-colors duration-[120ms] ease-in-out hover:text-gray-1000 hover:bg-gray-alpha-100", onClick: zoomIn, "aria-label": "Zoom in", children: jsxRuntimeExports.jsx(ZoomIn, { className: "w-4 h-4" }) })] })] }), activeSpan && sidebar ? jsxRuntimeExports.jsxs("aside", { className: "flex flex-col h-full max-h-full bg-background-100 border-l border-gray-alpha-400 overflow-auto", children: [jsxRuntimeExports.jsx("div", { className: "flex-shrink-0 px-4 pt-4 pb-3", children: jsxRuntimeExports.jsxs("div", { className: "flex items-start justify-between gap-2", children: [jsxRuntimeExports.jsxs("div", { className: "min-w-0 flex-1", children: [jsxRuntimeExports.jsx("span", { className: "text-[15px] font-semibold text-gray-1000 truncate block", children: selectedSpanName }), selectedResourceId && jsxRuntimeExports.jsxs("div", { className: "mt-1 flex items-center gap-2", children: [selectedResource && jsxRuntimeExports.jsx("span", { className: `inline-flex items-center rounded-md px-1.5 py-0.5 text-[11px] font-medium leading-none shrink-0 ${selectedResource === "step" ? "bg-green-200 text-green-900" : selectedResource === "run" ? "bg-blue-200 text-blue-900" : selectedResource === "hook" ? "bg-yellow-200 text-yellow-900" : "bg-gray-200 text-gray-900"}`, children: selectedResource.charAt(0).toUpperCase() + selectedResource.slice(1) }), jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-1 text-[13px] font-mono text-gray-700 min-w-0", title: selectedResourceId, children: [jsxRuntimeExports.jsx("span", { className: "truncate", children: selectedResourceId }), jsxRuntimeExports.jsx(CopyButton, { copyText: selectedResourceId, ariaLabel: "Copy ID", className: "shrink-0" })] })] })] }), jsxRuntimeExports.jsx("button", { type: "button", className: "p-1 rounded-md text-gray-900 hover:text-gray-1000 hover:bg-gray-alpha-200 transition-colors shrink-0", onClick: clearActiveSpan, children: jsxRuntimeExports.jsx(X, { className: "w-4 h-4" }) })] }) }), jsxRuntimeExports.jsx("div", { className: "flex-1 overflow-y-auto", children: jsxRuntimeExports.jsx(ErrorBoundary, { children: jsxRuntimeExports.jsx(EntityDetailPanel, { run: sidebar.run, onStreamClick: sidebar.onStreamClick, onRunClick: sidebar.onRunClick, spanDetailData: sidebar.spanDetailData, spanDetailError: sidebar.spanDetailError, spanDetailLoading: sidebar.spanDetailLoading, onSpanSelect: sidebar.onSpanSelect, onWakeUpSleep: sidebar.onWakeUpSleep, onLoadEventData: sidebar.onLoadEventData, onResolveHook: sidebar.onResolveHook, encryptionKey: sidebar.encryptionKey, onDecrypt: sidebar.onDecrypt, isDecrypting: sidebar.isDecrypting, selectedSpan }) }) })] }) : activeSpan ? jsxRuntimeExports.jsx(DetailPanel, { span: activeSpan, rootStart: root.startTime, onClose: clearActiveSpan }) : null] });
2986
3012
  }
2987
3013
  const NewTraceViewer = ({ run, events, sidebarData }) => {
@@ -5135,7 +5161,6 @@ function RunDetailView({
5135
5161
  return;
5136
5162
  }
5137
5163
  setEncryptionKey(keyResult);
5138
- toast.success("Run data decrypted successfully");
5139
5164
  } finally {
5140
5165
  setIsDecrypting(false);
5141
5166
  }
@@ -1,8 +1,9 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
3
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
- import { r as reactExports, j as jsxRuntimeExports, f as reactDomExports, R as ReactExports, H as React, C as ReactDOM, a as requireReact, I as getDefaultExportFromCjs } from "./index-DQa-BExo.js";
5
- import { c as createLucideIcon, a6 as cn, d as cn$1, G as cva, ay as composeRefs, E as useComposedRefs, az as useFloating, aA as offset, aB as shift, aC as limitShift, aD as flip, aE as size, aF as arrow, aG as hide, aH as autoUpdate, T as Tooltip, a as TooltipTrigger, b as TooltipContent, aI as cancelRun$1, aJ as reenqueueRun$1, aK as wakeUpRun$1, aL as resumeHook$1, aM as recreateRun$1, v as createContextScope$1, n as useComposedRefs$1, w as createSlot, W as formatDuration, B as Button, t as toast, p as useId$1, P as Primitive$1, o as composeEventHandlers$1, x as useControllableState$1, m as useCallbackRef$2, H as Presence$1 } from "./mermaid-3ZIDBTTL-w46Kr90n.js";
4
+ import { r as reactExports, j as jsxRuntimeExports, f as reactDomExports, R as ReactExports, I as React, D as ReactDOM, a as requireReact, g as getDefaultExportFromCjs } from "./index-BsV8i_Jn.js";
5
+ import { c as createLucideIcon, a6 as cn, d as cn$1, G as cva, ay as composeRefs, E as useComposedRefs, az as useFloating, aA as offset, aB as shift, aC as limitShift, aD as flip, aE as size, aF as arrow, aG as hide, aH as autoUpdate, T as Tooltip, a as TooltipTrigger, b as TooltipContent, aI as cancelRun$1, aJ as reenqueueRun$1, aK as wakeUpRun$1, aL as resumeHook$1, aM as recreateRun$1, v as createContextScope$1, n as useComposedRefs$1, w as createSlot, W as formatDuration, B as Button, t as toast, p as useId$1, P as Primitive$1, o as composeEventHandlers$1, x as useControllableState$1, m as useCallbackRef$2, H as Presence$1 } from "./mermaid-3ZIDBTTL-BQLU7GUr.js";
6
+ import { V as VERCEL_403_ERROR_MESSAGE } from "./index-B4xuge0I.js";
6
7
  function parseName(tag, name) {
7
8
  if (typeof name !== "string") {
8
9
  return null;
@@ -5612,7 +5613,6 @@ function Skeleton({
5612
5613
  }
5613
5614
  );
5614
5615
  }
5615
- const VERCEL_403_ERROR_MESSAGE = "Your current vercel account does not have access to this resource. Use `vercel login` or `vercel switch` to ensure you are linked to the right account.";
5616
5616
  class WorkflowWebAPIError extends Error {
5617
5617
  constructor(message2, options) {
5618
5618
  super(message2, { cause: options == null ? void 0 : options.cause });
@@ -9176,7 +9176,7 @@ const app = express();
9176
9176
  app.all(
9177
9177
  "*",
9178
9178
  createRequestHandler({
9179
- build: () => import("./server-build-DT0Hg0Yf.js").then((n) => n.G)
9179
+ build: () => import("./server-build-DtcOUEHS.js").then((n) => n.F)
9180
9180
  })
9181
9181
  );
9182
9182
  app.use(
@@ -1,5 +1,5 @@
1
- import { y as R, K as Ks, z as jsxRuntimeExports, A as Qe } from "./server-build-DT0Hg0Yf.js";
2
- import { r as reactExports } from "./app-CtOg8_v5.js";
1
+ import { x as R, K as Ks, y as jsxRuntimeExports, z as Qe } from "./server-build-DtcOUEHS.js";
2
+ import { r as reactExports } from "./app-L1V62FgT.js";
3
3
  import "node:stream";
4
4
  import "util";
5
5
  import "crypto";
@@ -11,12 +11,11 @@ import "node:path";
11
11
  import "node:url";
12
12
  import "module";
13
13
  import "node:fs/promises";
14
- import "tty";
15
- import "os";
14
+ import "node:util";
15
+ import "node:async_hooks";
16
16
  import "node:module";
17
17
  import "node:fs";
18
18
  import "node:child_process";
19
- import "node:util";
20
19
  import "node:timers/promises";
21
20
  import "events";
22
21
  import "node:assert";
@@ -32,14 +31,14 @@ import "node:perf_hooks";
32
31
  import "node:util/types";
33
32
  import "node:sqlite";
34
33
  import "node:worker_threads";
35
- import "node:async_hooks";
36
34
  import "node:console";
37
35
  import "node:timers";
38
36
  import "node:dns";
39
37
  import "path";
40
38
  import "fs";
41
- import "node:os";
39
+ import "os";
42
40
  import "net";
41
+ import "node:os";
43
42
  import "express";
44
43
  var L = ({ code: s, language: t, raw: e, className: n, ...d$1 }) => {
45
44
  let { shikiTheme: l } = reactExports.useContext(R), o = Ks(), [m, i] = reactExports.useState(e);