@workflow/web 5.0.0-beta.26 → 5.0.0-beta.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/client/assets/{encryption-g14N5vQl.js → encryption-BQTnudEZ.js} +1 -1
- package/build/client/assets/{entry.client-DOJDY_4b.js → entry.client-DQZ2hM2V.js} +24 -24
- package/build/client/assets/{highlighted-body-B3W2YXNL-QrddlyZu.js → highlighted-body-B3W2YXNL-CQ-a-eYE.js} +1 -1
- package/build/client/assets/{home-BNApVOct.js → home-DuZRFOMe.js} +1698 -234
- package/build/client/assets/{index-B6-SzLmT.js → index-ConSkUmc.js} +0 -2
- package/build/client/assets/{index-C7C6cDW5.js → index-HqNj_XIX.js} +10 -10
- package/build/client/assets/{manifest-379f050f.js → manifest-bb838d97.js} +1 -1
- package/build/client/assets/{mermaid-3ZIDBTTL-Cg-Mp5Kj.js → mermaid-3ZIDBTTL-QcES6x1o.js} +767 -279
- package/build/client/assets/root-BT69a3LD.css +1 -0
- package/build/client/assets/{root-BsPxYsbK.js → root-BiHTsCtP.js} +1 -1
- package/build/client/assets/{run-detail-sr7StYc6.js → run-detail-DSpZ5dnN.js} +925 -759
- package/build/client/assets/server-build-BkKXPNcO.css +1 -0
- package/build/client/assets/{workflow-graph-viewer-CcCwLmnF.js → workflow-graph-viewer-CyKfZJOQ.js} +227 -220
- package/build/client/assets/{zstd-browser-decoder-OOeWOMJw.js → zstd-browser-decoder-BigjGoI1.js} +2 -2
- package/build/server/assets/{app-DQ35jFT1.js → app-Cl6-bhGd.js} +43 -43
- package/build/server/assets/{highlighted-body-B3W2YXNL-DUlvgLoF.js → highlighted-body-B3W2YXNL-Daljn6fi.js} +4 -4
- package/build/server/assets/index-B_N7SdQh.js +115 -0
- package/build/server/assets/{index-BafExO0s.js → index-BfLBLRRi.js} +10 -10
- package/build/server/assets/{mermaid-3ZIDBTTL-BdnRYE9a.js → mermaid-3ZIDBTTL-xnUhfFrD.js} +4 -4
- package/build/server/assets/{server-build-0CazaFkH.js → server-build-D5Nuwxaw.js} +40483 -37602
- package/build/server/assets/{token-DK_R23fr.js → token-DDgfwjzz.js} +2 -2
- package/build/server/assets/{token-util-CaJAmsYa.js → token-util-CthtfGuG.js} +2 -2
- package/build/server/assets/{zstd-browser-decoder-pCjqxVHM.js → zstd-browser-decoder-zp5ZpR7T.js} +5 -5
- package/build/server/index.js +1 -1
- package/package.json +11 -9
- package/build/client/assets/root-F_dqJDC7.css +0 -1
- package/build/client/assets/server-build-DVBDkRDS.css +0 -1
- package/build/server/assets/index-BgRt1-Z6.js +0 -100
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/encryption-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/encryption-BQTnudEZ.js","assets/index-ConSkUmc.js","assets/index-BXZSIDEp.js","assets/zstd-browser-decoder-BigjGoI1.js","assets/highlighted-body-B3W2YXNL-CQ-a-eYE.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);
|
|
@@ -6746,22 +6746,38 @@ const createLucideIcon = (iconName, iconNode) => {
|
|
|
6746
6746
|
* This source code is licensed under the ISC license.
|
|
6747
6747
|
* See the LICENSE file in the root directory of this source tree.
|
|
6748
6748
|
*/
|
|
6749
|
-
const __iconNode$
|
|
6749
|
+
const __iconNode$5 = [
|
|
6750
6750
|
["path", { d: "m12 19-7-7 7-7", key: "1l729n" }],
|
|
6751
6751
|
["path", { d: "M19 12H5", key: "x3x0zl" }]
|
|
6752
6752
|
];
|
|
6753
|
-
const ArrowLeft = createLucideIcon("arrow-left", __iconNode$
|
|
6753
|
+
const ArrowLeft = createLucideIcon("arrow-left", __iconNode$5);
|
|
6754
6754
|
/**
|
|
6755
6755
|
* @license lucide-react v0.575.0 - ISC
|
|
6756
6756
|
*
|
|
6757
6757
|
* This source code is licensed under the ISC license.
|
|
6758
6758
|
* See the LICENSE file in the root directory of this source tree.
|
|
6759
6759
|
*/
|
|
6760
|
-
const __iconNode$
|
|
6760
|
+
const __iconNode$4 = [
|
|
6761
6761
|
["path", { d: "M5 12h14", key: "1ays0h" }],
|
|
6762
6762
|
["path", { d: "m12 5 7 7-7 7", key: "xquz4c" }]
|
|
6763
6763
|
];
|
|
6764
|
-
const ArrowRight = createLucideIcon("arrow-right", __iconNode$
|
|
6764
|
+
const ArrowRight = createLucideIcon("arrow-right", __iconNode$4);
|
|
6765
|
+
/**
|
|
6766
|
+
* @license lucide-react v0.575.0 - ISC
|
|
6767
|
+
*
|
|
6768
|
+
* This source code is licensed under the ISC license.
|
|
6769
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
6770
|
+
*/
|
|
6771
|
+
const __iconNode$3 = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
|
|
6772
|
+
const ChevronDown = createLucideIcon("chevron-down", __iconNode$3);
|
|
6773
|
+
/**
|
|
6774
|
+
* @license lucide-react v0.575.0 - ISC
|
|
6775
|
+
*
|
|
6776
|
+
* This source code is licensed under the ISC license.
|
|
6777
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
6778
|
+
*/
|
|
6779
|
+
const __iconNode$2 = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
|
|
6780
|
+
const ChevronRight = createLucideIcon("chevron-right", __iconNode$2);
|
|
6765
6781
|
/**
|
|
6766
6782
|
* @license lucide-react v0.575.0 - ISC
|
|
6767
6783
|
*
|
|
@@ -10526,7 +10542,7 @@ async function hydrateDataWithKey(value, revivers, key) {
|
|
|
10526
10542
|
let data = value;
|
|
10527
10543
|
if (data instanceof Uint8Array && isEncryptedData(data) && key) {
|
|
10528
10544
|
const { decrypt } = await __vitePreload(async () => {
|
|
10529
|
-
const { decrypt: decrypt2 } = await import("./encryption-
|
|
10545
|
+
const { decrypt: decrypt2 } = await import("./encryption-BQTnudEZ.js");
|
|
10530
10546
|
return { decrypt: decrypt2 };
|
|
10531
10547
|
}, true ? __vite__mapDeps([0,1,2]) : void 0);
|
|
10532
10548
|
const { payload } = decodeFormatPrefix(data);
|
|
@@ -11451,7 +11467,7 @@ const string$3 = (params) => {
|
|
|
11451
11467
|
return new RegExp(`^${regex}$`);
|
|
11452
11468
|
};
|
|
11453
11469
|
const integer = /^-?\d+$/;
|
|
11454
|
-
const number$
|
|
11470
|
+
const number$4 = /^-?\d+(?:\.\d+)?$/;
|
|
11455
11471
|
const boolean$3 = /^(?:true|false)$/i;
|
|
11456
11472
|
const _null$2 = /^null$/i;
|
|
11457
11473
|
const _undefined$2 = /^undefined$/i;
|
|
@@ -12293,7 +12309,7 @@ const $ZodJWT = /* @__PURE__ */ $constructor("$ZodJWT", (inst, def) => {
|
|
|
12293
12309
|
});
|
|
12294
12310
|
const $ZodNumber = /* @__PURE__ */ $constructor("$ZodNumber", (inst, def) => {
|
|
12295
12311
|
$ZodType.init(inst, def);
|
|
12296
|
-
inst._zod.pattern = inst._zod.bag.pattern ?? number$
|
|
12312
|
+
inst._zod.pattern = inst._zod.bag.pattern ?? number$4;
|
|
12297
12313
|
inst._zod.parse = (payload, _ctx) => {
|
|
12298
12314
|
if (def.coerce)
|
|
12299
12315
|
try {
|
|
@@ -12980,7 +12996,7 @@ const $ZodRecord = /* @__PURE__ */ $constructor("$ZodRecord", (inst, def) => {
|
|
|
12980
12996
|
if (keyResult instanceof Promise) {
|
|
12981
12997
|
throw new Error("Async schemas not supported in object keys currently");
|
|
12982
12998
|
}
|
|
12983
|
-
const checkNumericKey = typeof key === "string" && number$
|
|
12999
|
+
const checkNumericKey = typeof key === "string" && number$4.test(key) && keyResult.issues.length;
|
|
12984
13000
|
if (checkNumericKey) {
|
|
12985
13001
|
const retryResult = def.keyType._zod.run({ value: Number(key), issues: [] }, ctx);
|
|
12986
13002
|
if (retryResult instanceof Promise) {
|
|
@@ -13686,6 +13702,15 @@ function _number(Class, params) {
|
|
|
13686
13702
|
});
|
|
13687
13703
|
}
|
|
13688
13704
|
// @__NO_SIDE_EFFECTS__
|
|
13705
|
+
function _coercedNumber(Class, params) {
|
|
13706
|
+
return new Class({
|
|
13707
|
+
type: "number",
|
|
13708
|
+
coerce: true,
|
|
13709
|
+
checks: [],
|
|
13710
|
+
...normalizeParams(params)
|
|
13711
|
+
});
|
|
13712
|
+
}
|
|
13713
|
+
// @__NO_SIDE_EFFECTS__
|
|
13689
13714
|
function _int(Class, params) {
|
|
13690
13715
|
return new Class({
|
|
13691
13716
|
type: "number",
|
|
@@ -14976,7 +15001,7 @@ const ZodNumber = /* @__PURE__ */ $constructor("ZodNumber", (inst, def) => {
|
|
|
14976
15001
|
inst.isFinite = true;
|
|
14977
15002
|
inst.format = bag.format ?? null;
|
|
14978
15003
|
});
|
|
14979
|
-
function number$
|
|
15004
|
+
function number$3(params) {
|
|
14980
15005
|
return /* @__PURE__ */ _number(ZodNumber, params);
|
|
14981
15006
|
}
|
|
14982
15007
|
const ZodNumberFormat = /* @__PURE__ */ $constructor("ZodNumberFormat", (inst, def) => {
|
|
@@ -15414,6 +15439,9 @@ function _instanceof(cls, params = {}) {
|
|
|
15414
15439
|
};
|
|
15415
15440
|
return inst;
|
|
15416
15441
|
}
|
|
15442
|
+
function number$2(params) {
|
|
15443
|
+
return /* @__PURE__ */ _coercedNumber(ZodNumber, params);
|
|
15444
|
+
}
|
|
15417
15445
|
function date(params) {
|
|
15418
15446
|
return /* @__PURE__ */ _coercedDate(ZodDate, params);
|
|
15419
15447
|
}
|
|
@@ -15465,10 +15493,16 @@ const EventTypeSchema = _enum([
|
|
|
15465
15493
|
"wait_created",
|
|
15466
15494
|
"wait_completed"
|
|
15467
15495
|
]);
|
|
15496
|
+
const TerminalRunEventTypeSchema = EventTypeSchema.extract([
|
|
15497
|
+
"run_completed",
|
|
15498
|
+
"run_failed",
|
|
15499
|
+
"run_cancelled"
|
|
15500
|
+
]);
|
|
15501
|
+
TerminalRunEventTypeSchema.options;
|
|
15468
15502
|
const BaseEventSchema = object({
|
|
15469
15503
|
eventType: EventTypeSchema,
|
|
15470
15504
|
correlationId: string$2().optional(),
|
|
15471
|
-
specVersion: number$
|
|
15505
|
+
specVersion: number$3().optional()
|
|
15472
15506
|
});
|
|
15473
15507
|
const StepCompletedEventSchema = BaseEventSchema.extend({
|
|
15474
15508
|
eventType: literal("step_completed"),
|
|
@@ -15508,7 +15542,7 @@ const StepStartedEventSchema = BaseEventSchema.extend({
|
|
|
15508
15542
|
correlationId: string$2(),
|
|
15509
15543
|
eventData: object({
|
|
15510
15544
|
stepName: string$2().optional(),
|
|
15511
|
-
attempt: number$
|
|
15545
|
+
attempt: number$3().optional(),
|
|
15512
15546
|
// Carried on the lazy-start path (where `input` is present) so the
|
|
15513
15547
|
// backend can build the payload ref key without re-reading the run.
|
|
15514
15548
|
workflowName: string$2().optional(),
|
|
@@ -15582,7 +15616,7 @@ const AttributeWriterSchema = discriminatedUnion("type", [
|
|
|
15582
15616
|
object({
|
|
15583
15617
|
type: literal("step"),
|
|
15584
15618
|
stepId: string$2(),
|
|
15585
|
-
attempt: number$
|
|
15619
|
+
attempt: number$3()
|
|
15586
15620
|
})
|
|
15587
15621
|
]);
|
|
15588
15622
|
const AttrSetEventSchema = BaseEventSchema.extend({
|
|
@@ -15689,78 +15723,8 @@ AllEventsSchema.and(object({
|
|
|
15689
15723
|
eventId: string$2(),
|
|
15690
15724
|
createdAt: date(),
|
|
15691
15725
|
occurredAt: date().optional(),
|
|
15692
|
-
specVersion: number$
|
|
15726
|
+
specVersion: number$3().optional()
|
|
15693
15727
|
}));
|
|
15694
|
-
object({
|
|
15695
|
-
runId: string$2(),
|
|
15696
|
-
hookId: string$2(),
|
|
15697
|
-
token: string$2(),
|
|
15698
|
-
ownerId: string$2(),
|
|
15699
|
-
projectId: string$2(),
|
|
15700
|
-
environment: string$2(),
|
|
15701
|
-
metadata: SerializedDataSchema.optional(),
|
|
15702
|
-
createdAt: date(),
|
|
15703
|
-
// Optional in database for backwards compatibility, defaults to 1 (legacy) when reading
|
|
15704
|
-
specVersion: number$2().optional(),
|
|
15705
|
-
isWebhook: boolean$2().optional(),
|
|
15706
|
-
isSystem: boolean$2().optional()
|
|
15707
|
-
});
|
|
15708
|
-
string$2().regex(/^__(?:[a-z][a-z0-9]*_)?wkf_(?:workflow|step)_$/, "Must match __wkf_{workflow|step}_ or __{namespace}_wkf_{workflow|step}_");
|
|
15709
|
-
string$2().regex(/^__(?:[a-z][a-z0-9]*_)?wkf_(?:workflow|step)_.+$/, "Must be a valid queue name with a recognized prefix");
|
|
15710
|
-
string$2().regex(/^[a-z][a-z0-9]*$/, "Must be lowercase alphanumeric, starting with a letter");
|
|
15711
|
-
string$2().brand().describe("A stored queue message ID");
|
|
15712
|
-
const TraceCarrierSchema = record(string$2(), string$2());
|
|
15713
|
-
const RunInputSchema = object({
|
|
15714
|
-
input: unknown$1(),
|
|
15715
|
-
deploymentId: string$2(),
|
|
15716
|
-
workflowName: string$2(),
|
|
15717
|
-
specVersion: number$2(),
|
|
15718
|
-
executionContext: record(string$2(), any()).optional(),
|
|
15719
|
-
/** Initial plaintext run attributes, for resilient run creation. */
|
|
15720
|
-
attributes: record(string$2(), string$2()).optional(),
|
|
15721
|
-
/**
|
|
15722
|
-
* Permits reserved `$`-prefixed keys in `attributes`, mirrored from the
|
|
15723
|
-
* `start()` option so resilient run creation validates the same way as
|
|
15724
|
-
* the original `run_created` attempt.
|
|
15725
|
-
*/
|
|
15726
|
-
allowReservedAttributes: literal(true).optional()
|
|
15727
|
-
});
|
|
15728
|
-
const WorkflowInvokePayloadSchema = object({
|
|
15729
|
-
runId: string$2(),
|
|
15730
|
-
traceCarrier: TraceCarrierSchema.optional(),
|
|
15731
|
-
requestedAt: date().optional(),
|
|
15732
|
-
/** Consecutive replay divergences in this recovery chain and latest position. */
|
|
15733
|
-
replayDivergence: object({
|
|
15734
|
-
eventId: string$2(),
|
|
15735
|
-
count: number$2().int().positive()
|
|
15736
|
-
}).optional(),
|
|
15737
|
-
/** Number of times this message has been re-enqueued due to server errors (5xx) */
|
|
15738
|
-
serverErrorRetryCount: number$2().int().optional(),
|
|
15739
|
-
/** Step ID for inline step execution in combined handler. If provided, the flow execution
|
|
15740
|
-
* will jump directly to execute the step with the given ID before doing an event replay. */
|
|
15741
|
-
stepId: string$2().optional(),
|
|
15742
|
-
/** Step name, sent alongside stepId to avoid loading the event log just to resolve the name. */
|
|
15743
|
-
stepName: string$2().optional(),
|
|
15744
|
-
/** Run creation data, only present on the first queue delivery from start() */
|
|
15745
|
-
runInput: RunInputSchema.optional()
|
|
15746
|
-
});
|
|
15747
|
-
const StepInvokePayloadSchema = object({
|
|
15748
|
-
workflowName: string$2(),
|
|
15749
|
-
workflowRunId: string$2(),
|
|
15750
|
-
workflowStartedAt: number$2(),
|
|
15751
|
-
stepId: string$2(),
|
|
15752
|
-
traceCarrier: TraceCarrierSchema.optional(),
|
|
15753
|
-
requestedAt: date().optional()
|
|
15754
|
-
});
|
|
15755
|
-
const HealthCheckPayloadSchema = object({
|
|
15756
|
-
__healthCheck: literal(true),
|
|
15757
|
-
correlationId: string$2()
|
|
15758
|
-
});
|
|
15759
|
-
union([
|
|
15760
|
-
WorkflowInvokePayloadSchema,
|
|
15761
|
-
StepInvokePayloadSchema,
|
|
15762
|
-
HealthCheckPayloadSchema
|
|
15763
|
-
]);
|
|
15764
15728
|
const WorkflowRunStatusSchema = _enum([
|
|
15765
15729
|
"pending",
|
|
15766
15730
|
"running",
|
|
@@ -15768,6 +15732,12 @@ const WorkflowRunStatusSchema = _enum([
|
|
|
15768
15732
|
"failed",
|
|
15769
15733
|
"cancelled"
|
|
15770
15734
|
]);
|
|
15735
|
+
const TerminalWorkflowRunStatusSchema = WorkflowRunStatusSchema.extract([
|
|
15736
|
+
"completed",
|
|
15737
|
+
"failed",
|
|
15738
|
+
"cancelled"
|
|
15739
|
+
]);
|
|
15740
|
+
TerminalWorkflowRunStatusSchema.options;
|
|
15771
15741
|
const WorkflowRunBaseSchema = object({
|
|
15772
15742
|
runId: string$2(),
|
|
15773
15743
|
status: WorkflowRunStatusSchema,
|
|
@@ -15794,7 +15764,7 @@ const WorkflowRunBaseSchema = object({
|
|
|
15794
15764
|
*/
|
|
15795
15765
|
workflowName: string$2(),
|
|
15796
15766
|
// Optional in database for backwards compatibility, defaults to 1 (legacy) when reading
|
|
15797
|
-
specVersion: number$
|
|
15767
|
+
specVersion: number$3().optional(),
|
|
15798
15768
|
executionContext: record(string$2(), any()).optional(),
|
|
15799
15769
|
input: SerializedDataSchema.optional(),
|
|
15800
15770
|
output: SerializedDataSchema.optional(),
|
|
@@ -15866,22 +15836,6 @@ discriminatedUnion("status", [
|
|
|
15866
15836
|
completedAt: date()
|
|
15867
15837
|
})
|
|
15868
15838
|
]);
|
|
15869
|
-
const zodJsonSchema = lazy(() => {
|
|
15870
|
-
return union([
|
|
15871
|
-
string$2(),
|
|
15872
|
-
number$2(),
|
|
15873
|
-
boolean$2(),
|
|
15874
|
-
_null(),
|
|
15875
|
-
array(zodJsonSchema),
|
|
15876
|
-
record(string$2(), zodJsonSchema)
|
|
15877
|
-
]);
|
|
15878
|
-
});
|
|
15879
|
-
object({
|
|
15880
|
-
message: string$2(),
|
|
15881
|
-
stack: string$2().optional(),
|
|
15882
|
-
code: string$2().optional()
|
|
15883
|
-
// Populated with RunErrorCode values (USER_ERROR, RUNTIME_ERROR, etc.) for run_failed events
|
|
15884
|
-
});
|
|
15885
15839
|
const StepStatusSchema = _enum([
|
|
15886
15840
|
"pending",
|
|
15887
15841
|
"running",
|
|
@@ -15927,7 +15881,7 @@ object({
|
|
|
15927
15881
|
* view the error without going through the decryption + hydration pipeline.
|
|
15928
15882
|
*/
|
|
15929
15883
|
error: SerializedDataSchema.optional(),
|
|
15930
|
-
attempt: number$
|
|
15884
|
+
attempt: number$3(),
|
|
15931
15885
|
/**
|
|
15932
15886
|
* When the step first started executing. Set by the first step_started event
|
|
15933
15887
|
* and not updated on subsequent retries.
|
|
@@ -15938,9 +15892,14 @@ object({
|
|
|
15938
15892
|
updatedAt: date(),
|
|
15939
15893
|
retryAfter: date().optional(),
|
|
15940
15894
|
// Optional in database for backwards compatibility, defaults to 1 (legacy) when reading
|
|
15941
|
-
specVersion: number$
|
|
15895
|
+
specVersion: number$3().optional()
|
|
15942
15896
|
});
|
|
15943
|
-
|
|
15897
|
+
const TerminalStepStatusSchema = StepStatusSchema.extract([
|
|
15898
|
+
"completed",
|
|
15899
|
+
"failed",
|
|
15900
|
+
"cancelled"
|
|
15901
|
+
]);
|
|
15902
|
+
TerminalStepStatusSchema.options;
|
|
15944
15903
|
const WaitStatusSchema = _enum(["waiting", "completed"]);
|
|
15945
15904
|
object({
|
|
15946
15905
|
waitId: string$2(),
|
|
@@ -15950,8 +15909,194 @@ object({
|
|
|
15950
15909
|
completedAt: date().optional(),
|
|
15951
15910
|
createdAt: date(),
|
|
15952
15911
|
updatedAt: date(),
|
|
15953
|
-
specVersion: number$
|
|
15912
|
+
specVersion: number$3().optional()
|
|
15913
|
+
});
|
|
15914
|
+
const NullableDateSchema = date().nullable().optional();
|
|
15915
|
+
const NullableStringSchema = string$2().nullable().optional();
|
|
15916
|
+
const NullableBooleanSchema = boolean$2().nullable().optional();
|
|
15917
|
+
object({
|
|
15918
|
+
runId: string$2(),
|
|
15919
|
+
status: WorkflowRunStatusSchema,
|
|
15920
|
+
deploymentId: string$2(),
|
|
15921
|
+
workflowName: string$2(),
|
|
15922
|
+
specVersion: number$2().optional(),
|
|
15923
|
+
attributes: record(string$2(), string$2()).default({}),
|
|
15924
|
+
createdAt: date(),
|
|
15925
|
+
updatedAt: date(),
|
|
15926
|
+
startedAt: NullableDateSchema,
|
|
15927
|
+
completedAt: NullableDateSchema,
|
|
15928
|
+
errorCode: NullableStringSchema,
|
|
15929
|
+
workflowCoreVersion: NullableStringSchema,
|
|
15930
|
+
workflowEncryptionEnabled: NullableBooleanSchema
|
|
15931
|
+
});
|
|
15932
|
+
object({
|
|
15933
|
+
runId: string$2(),
|
|
15934
|
+
stepId: string$2(),
|
|
15935
|
+
stepName: NullableStringSchema,
|
|
15936
|
+
status: StepStatusSchema,
|
|
15937
|
+
attempt: number$3().optional(),
|
|
15938
|
+
createdAt: date(),
|
|
15939
|
+
updatedAt: date(),
|
|
15940
|
+
startedAt: NullableDateSchema,
|
|
15941
|
+
completedAt: NullableDateSchema,
|
|
15942
|
+
retryAfter: NullableDateSchema,
|
|
15943
|
+
errorCode: NullableStringSchema,
|
|
15944
|
+
workflowCoreVersion: NullableStringSchema,
|
|
15945
|
+
workflowEncryptionEnabled: NullableBooleanSchema
|
|
15946
|
+
});
|
|
15947
|
+
object({
|
|
15948
|
+
runId: string$2(),
|
|
15949
|
+
eventId: string$2(),
|
|
15950
|
+
eventType: EventTypeSchema,
|
|
15951
|
+
correlationId: NullableStringSchema,
|
|
15952
|
+
entityId: NullableStringSchema,
|
|
15953
|
+
stepName: NullableStringSchema,
|
|
15954
|
+
workflowName: string$2(),
|
|
15955
|
+
deploymentId: string$2(),
|
|
15956
|
+
specVersion: number$2().optional(),
|
|
15957
|
+
runCreatedAt: date(),
|
|
15958
|
+
createdAt: date(),
|
|
15959
|
+
region: NullableStringSchema,
|
|
15960
|
+
vercelId: NullableStringSchema,
|
|
15961
|
+
requestId: NullableStringSchema,
|
|
15962
|
+
resumeAt: NullableDateSchema,
|
|
15963
|
+
retryAfter: NullableDateSchema,
|
|
15964
|
+
errorCode: NullableStringSchema,
|
|
15965
|
+
workflowCoreVersion: NullableStringSchema,
|
|
15966
|
+
isWebhook: NullableBooleanSchema,
|
|
15967
|
+
isSystem: NullableBooleanSchema,
|
|
15968
|
+
workflowEncryptionEnabled: NullableBooleanSchema
|
|
15969
|
+
});
|
|
15970
|
+
object({
|
|
15971
|
+
runId: string$2(),
|
|
15972
|
+
hookId: string$2(),
|
|
15973
|
+
status: _enum(["created", "received", "disposed", "conflict"]),
|
|
15974
|
+
createdAt: date(),
|
|
15975
|
+
updatedAt: date(),
|
|
15976
|
+
receivedAt: NullableDateSchema,
|
|
15977
|
+
disposedAt: NullableDateSchema,
|
|
15978
|
+
isWebhook: NullableBooleanSchema,
|
|
15979
|
+
isSystem: NullableBooleanSchema,
|
|
15980
|
+
workflowCoreVersion: NullableStringSchema,
|
|
15981
|
+
workflowEncryptionEnabled: NullableBooleanSchema
|
|
15982
|
+
});
|
|
15983
|
+
object({
|
|
15984
|
+
runId: string$2(),
|
|
15985
|
+
waitId: string$2(),
|
|
15986
|
+
status: WaitStatusSchema,
|
|
15987
|
+
resumeAt: NullableDateSchema,
|
|
15988
|
+
createdAt: date(),
|
|
15989
|
+
updatedAt: date(),
|
|
15990
|
+
completedAt: NullableDateSchema,
|
|
15991
|
+
workflowCoreVersion: NullableStringSchema,
|
|
15992
|
+
workflowEncryptionEnabled: NullableBooleanSchema
|
|
15993
|
+
});
|
|
15994
|
+
object({
|
|
15995
|
+
runId: string$2(),
|
|
15996
|
+
hookId: string$2(),
|
|
15997
|
+
token: string$2(),
|
|
15998
|
+
ownerId: string$2(),
|
|
15999
|
+
projectId: string$2(),
|
|
16000
|
+
environment: string$2(),
|
|
16001
|
+
metadata: SerializedDataSchema.optional(),
|
|
16002
|
+
createdAt: date(),
|
|
16003
|
+
// Optional in database for backwards compatibility, defaults to 1 (legacy) when reading
|
|
16004
|
+
specVersion: number$3().optional(),
|
|
16005
|
+
isWebhook: boolean$2().optional(),
|
|
16006
|
+
isSystem: boolean$2().optional()
|
|
16007
|
+
});
|
|
16008
|
+
string$2().regex(/^__(?:[a-z][a-z0-9]*_)?wkf_(?:workflow|step)_$/, "Must match __wkf_{workflow|step}_ or __{namespace}_wkf_{workflow|step}_");
|
|
16009
|
+
string$2().regex(/^__(?:[a-z][a-z0-9]*_)?wkf_(?:workflow|step)_.+$/, "Must be a valid queue name with a recognized prefix");
|
|
16010
|
+
string$2().regex(/^[a-z][a-z0-9]*$/, "Must be lowercase alphanumeric, starting with a letter");
|
|
16011
|
+
string$2().brand().describe("A stored queue message ID");
|
|
16012
|
+
const TraceCarrierSchema = record(string$2(), string$2());
|
|
16013
|
+
const RunInputSchema = object({
|
|
16014
|
+
input: unknown$1(),
|
|
16015
|
+
deploymentId: string$2(),
|
|
16016
|
+
workflowName: string$2(),
|
|
16017
|
+
specVersion: number$3(),
|
|
16018
|
+
executionContext: record(string$2(), any()).optional(),
|
|
16019
|
+
/** Initial plaintext run attributes, for resilient run creation. */
|
|
16020
|
+
attributes: record(string$2(), string$2()).optional(),
|
|
16021
|
+
/**
|
|
16022
|
+
* Permits reserved `$`-prefixed keys in `attributes`, mirrored from the
|
|
16023
|
+
* `start()` option so resilient run creation validates the same way as
|
|
16024
|
+
* the original `run_created` attempt.
|
|
16025
|
+
*/
|
|
16026
|
+
allowReservedAttributes: literal(true).optional()
|
|
16027
|
+
});
|
|
16028
|
+
const WorkflowInvokePayloadSchema = object({
|
|
16029
|
+
runId: string$2(),
|
|
16030
|
+
traceCarrier: TraceCarrierSchema.optional(),
|
|
16031
|
+
requestedAt: date().optional(),
|
|
16032
|
+
/** Consecutive replay divergences in this recovery chain and latest position. */
|
|
16033
|
+
replayDivergence: object({
|
|
16034
|
+
eventId: string$2(),
|
|
16035
|
+
count: number$3().int().positive()
|
|
16036
|
+
}).optional(),
|
|
16037
|
+
/** Number of times this message has been re-enqueued due to server errors (5xx) */
|
|
16038
|
+
serverErrorRetryCount: number$3().int().optional(),
|
|
16039
|
+
/** Step ID for inline step execution in combined handler. If provided, the flow execution
|
|
16040
|
+
* will jump directly to execute the step with the given ID before doing an event replay. */
|
|
16041
|
+
stepId: string$2().optional(),
|
|
16042
|
+
/** Step name, sent alongside stepId to avoid loading the event log just to resolve the name. */
|
|
16043
|
+
stepName: string$2().optional(),
|
|
16044
|
+
/** Run creation data, only present on the first queue delivery from start() */
|
|
16045
|
+
runInput: RunInputSchema.optional()
|
|
16046
|
+
});
|
|
16047
|
+
const StepInvokePayloadSchema = object({
|
|
16048
|
+
workflowName: string$2(),
|
|
16049
|
+
workflowRunId: string$2(),
|
|
16050
|
+
workflowStartedAt: number$3(),
|
|
16051
|
+
stepId: string$2(),
|
|
16052
|
+
traceCarrier: TraceCarrierSchema.optional(),
|
|
16053
|
+
requestedAt: date().optional()
|
|
16054
|
+
});
|
|
16055
|
+
const HealthCheckPayloadSchema = object({
|
|
16056
|
+
__healthCheck: literal(true),
|
|
16057
|
+
correlationId: string$2()
|
|
16058
|
+
});
|
|
16059
|
+
union([
|
|
16060
|
+
WorkflowInvokePayloadSchema,
|
|
16061
|
+
StepInvokePayloadSchema,
|
|
16062
|
+
HealthCheckPayloadSchema
|
|
16063
|
+
]);
|
|
16064
|
+
const zodJsonSchema = lazy(() => {
|
|
16065
|
+
return union([
|
|
16066
|
+
string$2(),
|
|
16067
|
+
number$3(),
|
|
16068
|
+
boolean$2(),
|
|
16069
|
+
_null(),
|
|
16070
|
+
array(zodJsonSchema),
|
|
16071
|
+
record(string$2(), zodJsonSchema)
|
|
16072
|
+
]);
|
|
15954
16073
|
});
|
|
16074
|
+
object({
|
|
16075
|
+
currentLookbackDays: number$3(),
|
|
16076
|
+
maxLookbackDays: number$3(),
|
|
16077
|
+
currentWindowStart: date(),
|
|
16078
|
+
maxWindowStart: date(),
|
|
16079
|
+
upgradeAvailable: boolean$2()
|
|
16080
|
+
});
|
|
16081
|
+
object({
|
|
16082
|
+
message: string$2(),
|
|
16083
|
+
stack: string$2().optional(),
|
|
16084
|
+
code: string$2().optional()
|
|
16085
|
+
// Populated with RunErrorCode values (USER_ERROR, RUNTIME_ERROR, etc.) for run_failed events
|
|
16086
|
+
});
|
|
16087
|
+
string$2().ulid();
|
|
16088
|
+
const V4_EXTRA_EVENT_DATA_REF_FIELDS = {
|
|
16089
|
+
run_started: ["input"],
|
|
16090
|
+
step_started: ["input"]
|
|
16091
|
+
};
|
|
16092
|
+
function getEventDataRefFields(eventType) {
|
|
16093
|
+
return [
|
|
16094
|
+
.../* @__PURE__ */ new Set([
|
|
16095
|
+
...EVENT_DATA_REF_FIELDS[eventType] ?? [],
|
|
16096
|
+
...V4_EXTRA_EVENT_DATA_REF_FIELDS[eventType] ?? []
|
|
16097
|
+
])
|
|
16098
|
+
];
|
|
16099
|
+
}
|
|
15955
16100
|
function base64ToArrayBuffer(base642) {
|
|
15956
16101
|
if (base642 === "" || base642 === ".") {
|
|
15957
16102
|
return new ArrayBuffer(0);
|
|
@@ -16213,7 +16358,7 @@ function replaceEncryptedAndExpiredWithMarkers(resource) {
|
|
|
16213
16358
|
}
|
|
16214
16359
|
if (result.eventData && typeof result.eventData === "object") {
|
|
16215
16360
|
const eventType = typeof result.eventType === "string" ? result.eventType : "";
|
|
16216
|
-
const refKeys =
|
|
16361
|
+
const refKeys = getEventDataRefFields(eventType);
|
|
16217
16362
|
const ed = { ...result.eventData };
|
|
16218
16363
|
for (const key of refKeys) {
|
|
16219
16364
|
if (key in ed) {
|
|
@@ -16224,29 +16369,28 @@ function replaceEncryptedAndExpiredWithMarkers(resource) {
|
|
|
16224
16369
|
}
|
|
16225
16370
|
return result;
|
|
16226
16371
|
}
|
|
16227
|
-
async function
|
|
16372
|
+
async function hydrateResourceIOAsync(resource, key) {
|
|
16228
16373
|
const { hydrateDataWithKey: hydrateDataWithKey2 } = await __vitePreload(async () => {
|
|
16229
16374
|
const { hydrateDataWithKey: hydrateDataWithKey3 } = await Promise.resolve().then(() => serializationFormat);
|
|
16230
16375
|
return { hydrateDataWithKey: hydrateDataWithKey3 };
|
|
16231
16376
|
}, true ? void 0 : void 0);
|
|
16232
|
-
const { importKey } = await __vitePreload(async () => {
|
|
16233
|
-
const { importKey: importKey2 } = await import("./encryption-g14N5vQl.js");
|
|
16234
|
-
return { importKey: importKey2 };
|
|
16235
|
-
}, true ? __vite__mapDeps([0,1,2]) : void 0);
|
|
16236
16377
|
const { ensureZstdDecoderRegistered } = await __vitePreload(async () => {
|
|
16237
|
-
const { ensureZstdDecoderRegistered: ensureZstdDecoderRegistered2 } = await import("./zstd-browser-decoder-
|
|
16378
|
+
const { ensureZstdDecoderRegistered: ensureZstdDecoderRegistered2 } = await import("./zstd-browser-decoder-BigjGoI1.js");
|
|
16238
16379
|
return { ensureZstdDecoderRegistered: ensureZstdDecoderRegistered2 };
|
|
16239
16380
|
}, true ? __vite__mapDeps([3,2]) : void 0);
|
|
16240
16381
|
ensureZstdDecoderRegistered();
|
|
16241
|
-
const cryptoKey = await
|
|
16382
|
+
const cryptoKey = key ? await __vitePreload(async () => {
|
|
16383
|
+
const { importKey } = await import("./encryption-BQTnudEZ.js");
|
|
16384
|
+
return { importKey };
|
|
16385
|
+
}, true ? __vite__mapDeps([0,1,2]) : void 0).then(({ importKey }) => importKey(key)) : void 0;
|
|
16242
16386
|
const revivers = getRevivers();
|
|
16243
|
-
async function
|
|
16387
|
+
async function hydrateField(value) {
|
|
16244
16388
|
if (isEncryptedMarker$1(value)) {
|
|
16245
16389
|
const raw2 = value.__encryptedData;
|
|
16246
|
-
return hydrateDataWithKey2(raw2,
|
|
16390
|
+
return cryptoKey ? hydrateDataWithKey2(raw2, revivers, cryptoKey) : value;
|
|
16247
16391
|
}
|
|
16248
16392
|
if (value instanceof Uint8Array) {
|
|
16249
|
-
return hydrateDataWithKey2(value,
|
|
16393
|
+
return hydrateDataWithKey2(value, revivers, cryptoKey);
|
|
16250
16394
|
}
|
|
16251
16395
|
return value;
|
|
16252
16396
|
}
|
|
@@ -16254,21 +16398,21 @@ async function hydrateResourceIOWithKey(resource, key) {
|
|
|
16254
16398
|
const result = { ...r2 };
|
|
16255
16399
|
for (const field of ["input", "output", "metadata", "error"]) {
|
|
16256
16400
|
if (field in result) {
|
|
16257
|
-
result[field] = await
|
|
16401
|
+
result[field] = await hydrateField(result[field]);
|
|
16258
16402
|
}
|
|
16259
16403
|
}
|
|
16260
16404
|
if (result.eventData && typeof result.eventData === "object") {
|
|
16261
16405
|
const eventType = typeof result.eventType === "string" ? result.eventType : "";
|
|
16262
|
-
const refKeys =
|
|
16406
|
+
const refKeys = getEventDataRefFields(eventType);
|
|
16263
16407
|
const eventData = { ...result.eventData };
|
|
16264
16408
|
for (const field of refKeys) {
|
|
16265
16409
|
if (field in eventData) {
|
|
16266
|
-
eventData[field] = await
|
|
16410
|
+
eventData[field] = await hydrateField(eventData[field]);
|
|
16267
16411
|
}
|
|
16268
16412
|
}
|
|
16269
16413
|
result.eventData = eventData;
|
|
16270
16414
|
}
|
|
16271
|
-
return result;
|
|
16415
|
+
return replaceEncryptedAndExpiredWithMarkers(result);
|
|
16272
16416
|
}
|
|
16273
16417
|
function hasEncryptedFields(resource) {
|
|
16274
16418
|
if (!resource || typeof resource !== "object")
|
|
@@ -16280,7 +16424,7 @@ function hasEncryptedFields(resource) {
|
|
|
16280
16424
|
}
|
|
16281
16425
|
if (r2.eventData && typeof r2.eventData === "object") {
|
|
16282
16426
|
const eventType = typeof r2.eventType === "string" ? r2.eventType : "";
|
|
16283
|
-
const refKeys =
|
|
16427
|
+
const refKeys = getEventDataRefFields(eventType);
|
|
16284
16428
|
const ed = r2.eventData;
|
|
16285
16429
|
for (const key of refKeys) {
|
|
16286
16430
|
if (key in ed && isEncryptedMarker$1(ed[key]))
|
|
@@ -17378,26 +17522,26 @@ const ToastContext = reactExports.createContext(defaultAdapter);
|
|
|
17378
17522
|
function useToast() {
|
|
17379
17523
|
return reactExports.useContext(ToastContext);
|
|
17380
17524
|
}
|
|
17381
|
-
const MS_IN_SECOND = 1e3;
|
|
17382
|
-
const MS_IN_MINUTE = 60 * MS_IN_SECOND;
|
|
17525
|
+
const MS_IN_SECOND$1 = 1e3;
|
|
17526
|
+
const MS_IN_MINUTE = 60 * MS_IN_SECOND$1;
|
|
17383
17527
|
const MS_IN_HOUR = 60 * MS_IN_MINUTE;
|
|
17384
17528
|
const MS_IN_DAY = 24 * MS_IN_HOUR;
|
|
17385
17529
|
function formatDuration(ms, compact = false) {
|
|
17386
17530
|
if (ms === 0) {
|
|
17387
17531
|
return "0s";
|
|
17388
17532
|
}
|
|
17389
|
-
if (ms < MS_IN_SECOND) {
|
|
17533
|
+
if (ms < MS_IN_SECOND$1) {
|
|
17390
17534
|
const roundedMs2 = Math.round(ms);
|
|
17391
|
-
return roundedMs2 < MS_IN_SECOND ? `${roundedMs2}ms` : "1s";
|
|
17535
|
+
return roundedMs2 < MS_IN_SECOND$1 ? `${roundedMs2}ms` : "1s";
|
|
17392
17536
|
}
|
|
17393
|
-
const roundedMs = Math.round(ms / MS_IN_SECOND) * MS_IN_SECOND;
|
|
17537
|
+
const roundedMs = Math.round(ms / MS_IN_SECOND$1) * MS_IN_SECOND$1;
|
|
17394
17538
|
if (roundedMs < MS_IN_MINUTE) {
|
|
17395
|
-
return `${Math.floor(roundedMs / MS_IN_SECOND)}s`;
|
|
17539
|
+
return `${Math.floor(roundedMs / MS_IN_SECOND$1)}s`;
|
|
17396
17540
|
}
|
|
17397
17541
|
if (compact) {
|
|
17398
17542
|
if (roundedMs < MS_IN_HOUR) {
|
|
17399
17543
|
const m3 = Math.floor(roundedMs / MS_IN_MINUTE);
|
|
17400
|
-
const s2 = Math.floor(roundedMs % MS_IN_MINUTE / MS_IN_SECOND);
|
|
17544
|
+
const s2 = Math.floor(roundedMs % MS_IN_MINUTE / MS_IN_SECOND$1);
|
|
17401
17545
|
return s2 > 0 ? `${m3}m ${s2}s` : `${m3}m`;
|
|
17402
17546
|
}
|
|
17403
17547
|
const h2 = Math.floor(roundedMs / MS_IN_HOUR);
|
|
@@ -17407,7 +17551,7 @@ function formatDuration(ms, compact = false) {
|
|
|
17407
17551
|
const days = Math.floor(roundedMs / MS_IN_DAY);
|
|
17408
17552
|
const hours = Math.floor(roundedMs % MS_IN_DAY / MS_IN_HOUR);
|
|
17409
17553
|
const minutes = Math.floor(roundedMs % MS_IN_HOUR / MS_IN_MINUTE);
|
|
17410
|
-
const seconds = Math.floor(roundedMs % MS_IN_MINUTE / MS_IN_SECOND);
|
|
17554
|
+
const seconds = Math.floor(roundedMs % MS_IN_MINUTE / MS_IN_SECOND$1);
|
|
17411
17555
|
const parts = [];
|
|
17412
17556
|
if (days > 0) {
|
|
17413
17557
|
parts.push(`${days}d`);
|
|
@@ -17421,28 +17565,25 @@ function formatDuration(ms, compact = false) {
|
|
|
17421
17565
|
parts.push(`${seconds}s`);
|
|
17422
17566
|
return parts.join(" ");
|
|
17423
17567
|
}
|
|
17424
|
-
|
|
17425
|
-
minimumFractionDigits: 2,
|
|
17426
|
-
maximumFractionDigits: 2
|
|
17427
|
-
});
|
|
17428
|
-
function formatDurationPrecise(ms) {
|
|
17568
|
+
function formatDurationPrecise(ms, fractionDigits = 2) {
|
|
17429
17569
|
if (ms === 0) {
|
|
17430
17570
|
return "0s";
|
|
17431
17571
|
}
|
|
17432
|
-
if (ms < MS_IN_SECOND) {
|
|
17572
|
+
if (ms < MS_IN_SECOND$1) {
|
|
17433
17573
|
const roundedMs = Math.round(ms);
|
|
17434
|
-
if (roundedMs < MS_IN_SECOND) {
|
|
17574
|
+
if (roundedMs < MS_IN_SECOND$1) {
|
|
17435
17575
|
return `${roundedMs}ms`;
|
|
17436
17576
|
}
|
|
17437
17577
|
}
|
|
17438
|
-
const
|
|
17578
|
+
const granularityMs = MS_IN_SECOND$1 / 10 ** fractionDigits;
|
|
17579
|
+
const normalizedMs = Math.round(ms / granularityMs) * granularityMs;
|
|
17439
17580
|
if (normalizedMs < MS_IN_MINUTE) {
|
|
17440
|
-
return `${
|
|
17581
|
+
return `${Number((normalizedMs / MS_IN_SECOND$1).toFixed(fractionDigits))}s`;
|
|
17441
17582
|
}
|
|
17442
17583
|
const days = Math.floor(normalizedMs / MS_IN_DAY);
|
|
17443
17584
|
const hours = Math.floor(normalizedMs % MS_IN_DAY / MS_IN_HOUR);
|
|
17444
17585
|
const minutes = Math.floor(normalizedMs % MS_IN_HOUR / MS_IN_MINUTE);
|
|
17445
|
-
const seconds = normalizedMs % MS_IN_MINUTE / MS_IN_SECOND;
|
|
17586
|
+
const seconds = normalizedMs % MS_IN_MINUTE / MS_IN_SECOND$1;
|
|
17446
17587
|
const parts = [];
|
|
17447
17588
|
if (days > 0) {
|
|
17448
17589
|
parts.push(`${days}d`);
|
|
@@ -17453,7 +17594,7 @@ function formatDurationPrecise(ms) {
|
|
|
17453
17594
|
if (minutes > 0) {
|
|
17454
17595
|
parts.push(`${minutes}m`);
|
|
17455
17596
|
}
|
|
17456
|
-
parts.push(`${
|
|
17597
|
+
parts.push(`${Number(seconds.toFixed(fractionDigits))}s`);
|
|
17457
17598
|
return parts.join(" ");
|
|
17458
17599
|
}
|
|
17459
17600
|
function isDoStreamStep(stepName) {
|
|
@@ -17512,6 +17653,47 @@ const cva = (base, config2) => (props) => {
|
|
|
17512
17653
|
}, []);
|
|
17513
17654
|
return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);
|
|
17514
17655
|
};
|
|
17656
|
+
const CollapsibleContext = reactExports.createContext(null);
|
|
17657
|
+
function useCollapsibleContext(part) {
|
|
17658
|
+
const context = reactExports.useContext(CollapsibleContext);
|
|
17659
|
+
if (!context) {
|
|
17660
|
+
throw new Error(`<Collapsible${part}> must be rendered inside <CollapsibleRoot>`);
|
|
17661
|
+
}
|
|
17662
|
+
return context;
|
|
17663
|
+
}
|
|
17664
|
+
function CollapsibleRoot({ children: children2, variant = "section", disabled = false, defaultOpen = false, onOpenChange, className }) {
|
|
17665
|
+
const [open, setOpen] = reactExports.useState(defaultOpen);
|
|
17666
|
+
const handleToggle = (event) => {
|
|
17667
|
+
if (event.target !== event.currentTarget)
|
|
17668
|
+
return;
|
|
17669
|
+
const next2 = event.currentTarget.open;
|
|
17670
|
+
setOpen(next2);
|
|
17671
|
+
onOpenChange == null ? void 0 : onOpenChange(next2);
|
|
17672
|
+
};
|
|
17673
|
+
const details = jsxRuntimeExports.jsx("details", { "data-slot": "collapsible", "data-state": open ? "open" : "closed", open, onToggle: disabled ? void 0 : handleToggle, className: cn$4(variant === "card" ? "group/card border-gray-alpha-400 last:border-b" : "group", className), children: jsxRuntimeExports.jsx(CollapsibleContext.Provider, { value: { variant, disabled }, children: children2 }) });
|
|
17674
|
+
if (variant === "card") {
|
|
17675
|
+
return details;
|
|
17676
|
+
}
|
|
17677
|
+
return jsxRuntimeExports.jsx("section", { className: "-mx-4 border-t border-gray-alpha-400 px-4 py-2", children: details });
|
|
17678
|
+
}
|
|
17679
|
+
function CollapsibleTrigger({ children: children2, className }) {
|
|
17680
|
+
const { variant, disabled } = useCollapsibleContext("Trigger");
|
|
17681
|
+
if (variant === "card") {
|
|
17682
|
+
return jsxRuntimeExports.jsxs("summary", { "data-slot": "collapsible-trigger", className: cn$4("flex cursor-pointer list-none items-center gap-1.5 border-t border-gray-alpha-400 bg-background-200 px-3 py-4 hover:bg-gray-100 [&::-webkit-details-marker]:hidden", className), children: [jsxRuntimeExports.jsx(ChevronRight, { size: 14, className: "shrink-0 text-gray-700 group-hover/card:text-gray-1000 group-open/card:rotate-90" }), children2] });
|
|
17683
|
+
}
|
|
17684
|
+
const row = "flex h-9 items-center gap-2 -mx-2 px-2 text-heading-14 font-medium list-none [&::-webkit-details-marker]:hidden";
|
|
17685
|
+
if (disabled) {
|
|
17686
|
+
return jsxRuntimeExports.jsx("summary", { "data-slot": "collapsible-trigger", className: cn$4(row, "pointer-events-none text-gray-700", className), children: jsxRuntimeExports.jsx("span", { className: "min-w-0 flex-1", children: children2 }) });
|
|
17687
|
+
}
|
|
17688
|
+
return jsxRuntimeExports.jsxs("summary", { "data-slot": "collapsible-trigger", className: cn$4(row, "group/trigger cursor-pointer rounded hover:bg-gray-alpha-100", className), children: [jsxRuntimeExports.jsxs("span", { className: "relative isolate h-3.5 w-3.5 shrink-0 text-gray-700 group-hover/trigger:text-gray-1000", children: [jsxRuntimeExports.jsx(ChevronRight, { size: 14, className: "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 opacity-100 group-open:opacity-0" }), jsxRuntimeExports.jsx(ChevronDown, { size: 14, className: "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 opacity-0 group-open:opacity-100" })] }), jsxRuntimeExports.jsx("span", { className: "min-w-0 flex-1", children: children2 })] });
|
|
17689
|
+
}
|
|
17690
|
+
function CollapsibleContent({ children: children2, className }) {
|
|
17691
|
+
const { variant } = useCollapsibleContext("Content");
|
|
17692
|
+
return jsxRuntimeExports.jsx("div", { "data-slot": "collapsible-content", className: cn$4(variant === "section" && "mt-2 mb-3", className), children: children2 });
|
|
17693
|
+
}
|
|
17694
|
+
function Collapsible({ label, children: children2, disabled, defaultOpen, onOpenChange }) {
|
|
17695
|
+
return jsxRuntimeExports.jsxs(CollapsibleRoot, { disabled, defaultOpen, onOpenChange, children: [jsxRuntimeExports.jsx(CollapsibleTrigger, { children: label }), children2 != null && jsxRuntimeExports.jsx(CollapsibleContent, { children: children2 })] });
|
|
17696
|
+
}
|
|
17515
17697
|
const buttonVariants$1 = cva([
|
|
17516
17698
|
"outline-none m-0 border-0 align-baseline no-underline group/trigger",
|
|
17517
17699
|
"relative cursor-pointer select-none transform translate-z-0",
|
|
@@ -17969,14 +18151,7 @@ function ExpandableContainer({ field, entries, open, close, prefix, ctx, isLast
|
|
|
17969
18151
|
}
|
|
17970
18152
|
};
|
|
17971
18153
|
const lastIndex = entries.length - 1;
|
|
17972
|
-
return (
|
|
17973
|
-
// The treeitem row is the focusable, keyboard-operable control (roving
|
|
17974
|
-
// tabindex + arrow keys); the disclosure marker below is purely decorative.
|
|
17975
|
-
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 ? (
|
|
17976
|
-
// biome-ignore lint/a11y/useSemanticElements: ARIA tree group is the correct role here
|
|
17977
|
-
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)) })
|
|
17978
|
-
) : jsxRuntimeExports.jsx("span", { className: CLS.collapsedContent, "aria-hidden": "true" }), jsxRuntimeExports.jsx("span", { className: CLS.punctuation, children: close }), jsxRuntimeExports.jsx(Comma, { isLast })] })
|
|
17979
|
-
);
|
|
18154
|
+
return 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 ? 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)) }) : jsxRuntimeExports.jsx("span", { className: CLS.collapsedContent, "aria-hidden": "true" }), jsxRuntimeExports.jsx("span", { className: CLS.punctuation, children: close }), jsxRuntimeExports.jsx(Comma, { isLast })] });
|
|
17980
18155
|
}
|
|
17981
18156
|
function DataRender({ field, value, isLast, ctx }) {
|
|
17982
18157
|
if (isBytesDisplay(value)) {
|
|
@@ -43762,7 +43937,7 @@ var tn = f("block", "before:content-[counter(line)]", "before:inline-block", "be
|
|
|
43762
43937
|
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 });
|
|
43763
43938
|
var Se = reactExports.createContext({ code: "" }), de = () => reactExports.useContext(Se);
|
|
43764
43939
|
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 }) });
|
|
43765
|
-
var cn$1 = /\n+$/, dn = reactExports.lazy(() => __vitePreload(() => import("./highlighted-body-B3W2YXNL-
|
|
43940
|
+
var cn$1 = /\n+$/, dn = reactExports.lazy(() => __vitePreload(() => import("./highlighted-body-B3W2YXNL-CQ-a-eYE.js"), true ? __vite__mapDeps([4,2]) : void 0).then((e) => ({ default: e.HighlightedCodeBlockBody }))), rt = ({ code: e, language: t, className: o, children: n, isIncomplete: s2 = false, ...r2 }) => {
|
|
43766
43941
|
let i = reactExports.useMemo(() => e.replace(cn$1, ""), [e]), c = reactExports.useMemo(() => ({ bg: "transparent", fg: "inherit", tokens: i.split(`
|
|
43767
43942
|
`).map((a2) => [{ content: a2, color: "inherit", bgColor: "transparent", htmlStyle: {}, offset: 0 }]) }), [i]);
|
|
43768
43943
|
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 }) })] }) });
|
|
@@ -45834,6 +46009,50 @@ const Tooltip$1 = Root3;
|
|
|
45834
46009
|
const TooltipTrigger$1 = Trigger;
|
|
45835
46010
|
const TooltipContent$1 = reactExports.forwardRef(({ className, sideOffset = 8, showArrow = true, children: children2, ...props }, ref) => jsxRuntimeExports.jsx(Portal, { children: jsxRuntimeExports.jsxs(Content2, { ref, sideOffset, className: cn$4("z-[99999] flex items-center gap-1 rounded-[10px] bg-gray-1000 px-2 py-1.5 !text-label-13 text-background-100 shadow-md select-none", className), ...props, children: [children2, showArrow ? jsxRuntimeExports.jsx(Arrow2, { width: 11, height: 5, className: "fill-gray-1000" }) : null] }) }));
|
|
45836
46011
|
TooltipContent$1.displayName = Content2.displayName;
|
|
46012
|
+
const ActiveSpanContext = reactExports.createContext(null);
|
|
46013
|
+
ActiveSpanContext.displayName = "ActiveSpanContext";
|
|
46014
|
+
function ActiveSpanProvider({ spans, children: children2 }) {
|
|
46015
|
+
const [activeSpanId, setActiveSpanId] = reactExports.useState(null);
|
|
46016
|
+
reactExports.useEffect(() => {
|
|
46017
|
+
setActiveSpanId((currentSpanId) => {
|
|
46018
|
+
if (!currentSpanId) {
|
|
46019
|
+
return null;
|
|
46020
|
+
}
|
|
46021
|
+
const hasCurrentSpan = spans.some((span) => span.spanId === currentSpanId);
|
|
46022
|
+
if (hasCurrentSpan) {
|
|
46023
|
+
return currentSpanId;
|
|
46024
|
+
}
|
|
46025
|
+
return null;
|
|
46026
|
+
});
|
|
46027
|
+
}, [spans]);
|
|
46028
|
+
const activeSpan = reactExports.useMemo(() => {
|
|
46029
|
+
if (!activeSpanId) {
|
|
46030
|
+
return null;
|
|
46031
|
+
}
|
|
46032
|
+
return spans.find((span) => span.spanId === activeSpanId) ?? null;
|
|
46033
|
+
}, [activeSpanId, spans]);
|
|
46034
|
+
const setActiveSpan = reactExports.useCallback((spanId) => {
|
|
46035
|
+
setActiveSpanId(spanId);
|
|
46036
|
+
}, []);
|
|
46037
|
+
const clearActiveSpan = reactExports.useCallback(() => {
|
|
46038
|
+
setActiveSpanId(null);
|
|
46039
|
+
}, []);
|
|
46040
|
+
const value = reactExports.useMemo(() => ({
|
|
46041
|
+
activeSpanId,
|
|
46042
|
+
activeSpan,
|
|
46043
|
+
spans,
|
|
46044
|
+
setActiveSpan,
|
|
46045
|
+
clearActiveSpan
|
|
46046
|
+
}), [activeSpanId, activeSpan, spans, setActiveSpan, clearActiveSpan]);
|
|
46047
|
+
return jsxRuntimeExports.jsx(ActiveSpanContext.Provider, { value, children: children2 });
|
|
46048
|
+
}
|
|
46049
|
+
const useActiveSpan = () => {
|
|
46050
|
+
const context = reactExports.useContext(ActiveSpanContext);
|
|
46051
|
+
if (!context) {
|
|
46052
|
+
throw new Error("useActiveSpan must be used within ActiveSpanProvider");
|
|
46053
|
+
}
|
|
46054
|
+
return context;
|
|
46055
|
+
};
|
|
45837
46056
|
const ATTR_FILTER_REGEX = /(?:^|\s)(?<pair>(?<key>[\w.]+):(?<value>\S*))/g;
|
|
45838
46057
|
function parseSpanSearchQuery(rawQuery) {
|
|
45839
46058
|
var _a3, _b2, _c;
|
|
@@ -45976,6 +46195,26 @@ function computeRootBounds(spans) {
|
|
|
45976
46195
|
function getSpanDurationMs(span) {
|
|
45977
46196
|
return Math.max(0, getHighResInMs(span.endTime) - getHighResInMs(span.startTime));
|
|
45978
46197
|
}
|
|
46198
|
+
function isSpanErrored(span) {
|
|
46199
|
+
var _a3;
|
|
46200
|
+
const workflowStatus = (_a3 = span.attributes.data) == null ? void 0 : _a3.status;
|
|
46201
|
+
return span.status.code === 2 || workflowStatus === "failed";
|
|
46202
|
+
}
|
|
46203
|
+
function clampViewportToRoot(next2, rootStart, rootEnd, minDurationMs) {
|
|
46204
|
+
const rootDuration = Math.max(rootEnd - rootStart, minDurationMs);
|
|
46205
|
+
const duration2 = Math.min(rootDuration, Math.max(minDurationMs, next2.end - next2.start));
|
|
46206
|
+
const maxStart = rootEnd - duration2;
|
|
46207
|
+
const start = Math.min(Math.max(next2.start, rootStart), maxStart);
|
|
46208
|
+
return { start, end: start + duration2 };
|
|
46209
|
+
}
|
|
46210
|
+
function wheelDeltaToPixels(delta, deltaMode) {
|
|
46211
|
+
return deltaMode === 1 ? delta * 16 : delta;
|
|
46212
|
+
}
|
|
46213
|
+
function wheelZoomScaleFactor(event) {
|
|
46214
|
+
const dy = wheelDeltaToPixels(event.deltaY, event.deltaMode);
|
|
46215
|
+
const isMouseWheel = event.deltaMode === 1 || Math.abs(event.deltaY) >= 50;
|
|
46216
|
+
return 2 ** (dy / (isMouseWheel ? 200 : 60));
|
|
46217
|
+
}
|
|
45979
46218
|
const NICE_INTERVALS = [
|
|
45980
46219
|
1,
|
|
45981
46220
|
2,
|
|
@@ -46009,6 +46248,7 @@ const NICE_INTERVALS = [
|
|
|
46009
46248
|
5e9
|
|
46010
46249
|
];
|
|
46011
46250
|
const MAX_MARKERS = 8;
|
|
46251
|
+
const MS_IN_SECOND = 1e3;
|
|
46012
46252
|
function pickInterval(viewDuration, maxTicks) {
|
|
46013
46253
|
for (const interval of NICE_INTERVALS) {
|
|
46014
46254
|
if (viewDuration / interval <= maxTicks)
|
|
@@ -46021,6 +46261,7 @@ function computeTimeMarkers(viewDuration, offset2) {
|
|
|
46021
46261
|
return [];
|
|
46022
46262
|
const maxTicks = 6;
|
|
46023
46263
|
const interval = pickInterval(viewDuration, maxTicks);
|
|
46264
|
+
const fractionDigits = interval >= MS_IN_SECOND ? 0 : Math.ceil(-Math.log10(interval / MS_IN_SECOND));
|
|
46024
46265
|
const firstTick = Math.ceil(offset2 / interval) * interval;
|
|
46025
46266
|
const markers2 = [];
|
|
46026
46267
|
for (let t = firstTick; t <= offset2 + viewDuration; t += interval) {
|
|
@@ -46029,7 +46270,7 @@ function computeTimeMarkers(viewDuration, offset2) {
|
|
|
46029
46270
|
continue;
|
|
46030
46271
|
markers2.push({
|
|
46031
46272
|
position: Math.min(Math.max(position2, 0), 1),
|
|
46032
|
-
label: formatDuration(Math.abs(t), true),
|
|
46273
|
+
label: fractionDigits === 0 ? formatDuration(Math.abs(t), true) : formatDurationPrecise(Math.abs(t), fractionDigits),
|
|
46033
46274
|
value: t
|
|
46034
46275
|
});
|
|
46035
46276
|
if (markers2.length >= MAX_MARKERS)
|
|
@@ -46545,7 +46786,6 @@ function SegmentBar({ segments, showLabels = true }) {
|
|
|
46545
46786
|
}) });
|
|
46546
46787
|
}
|
|
46547
46788
|
const TimelineBar = reactExports.memo(function TimelineBar2({ span, viewStart, viewDuration, containerWidth, isSelected, isDimmed, onSelect, onRevealTime }) {
|
|
46548
|
-
var _a3;
|
|
46549
46789
|
const startMs = getHighResInMs(span.startTime);
|
|
46550
46790
|
const endMs = getHighResInMs(span.endTime);
|
|
46551
46791
|
const totalDurationMs = getSpanDurationMs(span);
|
|
@@ -46556,8 +46796,7 @@ const TimelineBar = reactExports.memo(function TimelineBar2({ span, viewStart, v
|
|
|
46556
46796
|
const markers2 = reactExports.useMemo(() => geometry.mode.kind === "full" ? cullCollidingMarkers(projectMarkers(baseMarkers, geometry.visibleStartMs, geometry.visibleEndMs), geometry.visiblePixelWidth) : [], [geometry, baseMarkers]);
|
|
46557
46797
|
const offscreen = reactExports.useMemo(() => geometry.mode.kind === "full" ? computeOffscreenMarkers(baseMarkers, geometry.visibleStartMs, geometry.visibleEndMs) : { left: null, right: null }, [geometry, baseMarkers]);
|
|
46558
46798
|
const hasMarkers = markers2.length > 0 || offscreen.left !== null || offscreen.right !== null;
|
|
46559
|
-
const
|
|
46560
|
-
const isErrored = span.status.code === 2 || workflowStatus === "failed";
|
|
46799
|
+
const isErrored = isSpanErrored(span);
|
|
46561
46800
|
const colors = getResourceColor(span.resource);
|
|
46562
46801
|
const fallbackBg = isErrored ? colors.errorBg ?? "var(--ds-red-200)" : colors.bg;
|
|
46563
46802
|
const fallbackBorder = isErrored ? colors.errorBorder ?? "var(--ds-red-500)" : colors.border;
|
|
@@ -46606,51 +46845,285 @@ function Timeline({ spans, viewStart, viewEnd, markers: markers2, selectedId, se
|
|
|
46606
46845
|
return jsxRuntimeExports.jsxs("div", { ref: containerRef, className: "relative h-full overflow-hidden", style: { minHeight: spans.length * ROW_HEIGHT_PX }, children: [jsxRuntimeExports.jsx("div", { "aria-hidden": true, className: "absolute inset-y-0 pointer-events-none", style: TIMELINE_INSET_STYLE, children: markers2.map((marker2) => (
|
|
46607
46846
|
// Skip the "0s" origin marker since the left edge already implies it.
|
|
46608
46847
|
Math.abs(marker2.value) > 1e-6 ? jsxRuntimeExports.jsx("div", { className: "absolute top-0 bottom-0 w-px bg-gray-alpha-300", style: { left: `${marker2.position * 100}%` } }, String(marker2.value)) : null
|
|
46609
|
-
)) }), hoverFraction != null && jsxRuntimeExports.jsx("div", { className: "absolute inset-y-0 pointer-events-none z-10", style: TIMELINE_INSET_STYLE, children: jsxRuntimeExports.jsx("div", { className: "absolute top-0 bottom-0 w-px bg-gray-alpha-500", style: { left: `${hoverFraction * 100}%` } }) }), jsxRuntimeExports.jsx("div", { style: { transform: `translateY(${start * ROW_HEIGHT_PX}px)` }, children: spans.slice(start, end).map((span) => jsxRuntimeExports.jsx(TimelineBar, { span, viewStart, viewDuration, containerWidth: timelineWidth, isSelected: selectedId === span.spanId, isDimmed: isSpanDimmedBySearch(span.spanId, searchResult), onSelect, onRevealTime }, span.spanId)) }), altHeld && jsxRuntimeExports.jsx("div", { "aria-hidden": true, className: "absolute inset-y-0 pointer-events-none", style: TIMELINE_INSET_STYLE, children: gaps.map((gap) => jsxRuntimeExports.jsx(DeltaIndicator, { leftFrac: gap.leftFrac, rightFrac: gap.rightFrac, label:
|
|
46848
|
+
)) }), hoverFraction != null && jsxRuntimeExports.jsx("div", { className: "absolute inset-y-0 pointer-events-none z-10", style: TIMELINE_INSET_STYLE, children: jsxRuntimeExports.jsx("div", { className: "absolute top-0 bottom-0 w-px bg-gray-alpha-500", style: { left: `${hoverFraction * 100}%` } }) }), jsxRuntimeExports.jsx("div", { style: { transform: `translateY(${start * ROW_HEIGHT_PX}px)` }, children: spans.slice(start, end).map((span) => jsxRuntimeExports.jsx(TimelineBar, { span, viewStart, viewDuration, containerWidth: timelineWidth, isSelected: selectedId === span.spanId, isDimmed: isSpanDimmedBySearch(span.spanId, searchResult), onSelect, onRevealTime }, span.spanId)) }), altHeld && jsxRuntimeExports.jsx("div", { "aria-hidden": true, className: "absolute inset-y-0 pointer-events-none", style: TIMELINE_INSET_STYLE, children: gaps.map((gap) => jsxRuntimeExports.jsx(DeltaIndicator, { leftFrac: gap.leftFrac, rightFrac: gap.rightFrac, label: formatDurationPrecise(gap.gapMs), rowIndex: gap.rowIndex }, gap.rowIndex)) })] });
|
|
46849
|
+
}
|
|
46850
|
+
const CANVAS_PAD_Y_PX = 6;
|
|
46851
|
+
const MIN_LINE_HEIGHT_PX = 1.5;
|
|
46852
|
+
const MAX_LINE_HEIGHT_PX = 3;
|
|
46853
|
+
const MIN_LINE_WIDTH_PX = 2;
|
|
46854
|
+
const CLICK_DRAG_THRESHOLD_PX = 3;
|
|
46855
|
+
const MIN_BRUSH_WIDTH_PX = 6;
|
|
46856
|
+
const KEYBOARD_PAN_FRACTION = 0.1;
|
|
46857
|
+
const RESOURCE_LINE_TOKENS = {
|
|
46858
|
+
run: "--ds-blue-400",
|
|
46859
|
+
step: "--ds-green-400",
|
|
46860
|
+
hook: "--ds-gray-400",
|
|
46861
|
+
sleep: "--ds-gray-400"
|
|
46862
|
+
};
|
|
46863
|
+
const DEFAULT_LINE_TOKEN = "--ds-gray-400";
|
|
46864
|
+
const ERROR_LINE_TOKEN = "--ds-red-400";
|
|
46865
|
+
function computeDensityLayout(spans, rootStartMs, rootDurationMs, contentWidth, contentHeight) {
|
|
46866
|
+
const count2 = spans.length;
|
|
46867
|
+
const lineHeight = Math.max(MIN_LINE_HEIGHT_PX, Math.min(MAX_LINE_HEIGHT_PX, contentHeight / count2));
|
|
46868
|
+
const rowStep = count2 > 1 ? Math.min((contentHeight - lineHeight) / (count2 - 1), lineHeight + 1) : 0;
|
|
46869
|
+
const rectsByToken = /* @__PURE__ */ new Map();
|
|
46870
|
+
spans.forEach((span, index2) => {
|
|
46871
|
+
const token = isSpanErrored(span) ? ERROR_LINE_TOKEN : RESOURCE_LINE_TOKENS[span.resource] ?? DEFAULT_LINE_TOKEN;
|
|
46872
|
+
const startMs = getHighResInMs(span.startTime);
|
|
46873
|
+
const endMs = getHighResInMs(span.endTime);
|
|
46874
|
+
const x2 = TIMELINE_PADDING_PX + (startMs - rootStartMs) / rootDurationMs * contentWidth;
|
|
46875
|
+
const w2 = Math.max(MIN_LINE_WIDTH_PX, (endMs - startMs) / rootDurationMs * contentWidth);
|
|
46876
|
+
const y2 = CANVAS_PAD_Y_PX + index2 * rowStep;
|
|
46877
|
+
const rects = rectsByToken.get(token) ?? [];
|
|
46878
|
+
rects.push([x2, y2, w2]);
|
|
46879
|
+
rectsByToken.set(token, rects);
|
|
46880
|
+
});
|
|
46881
|
+
return { lineHeight, rectsByToken };
|
|
46610
46882
|
}
|
|
46611
|
-
|
|
46612
|
-
|
|
46613
|
-
|
|
46614
|
-
|
|
46883
|
+
function useDpr() {
|
|
46884
|
+
const [dpr, setDpr] = reactExports.useState(1);
|
|
46885
|
+
reactExports.useLayoutEffect(() => {
|
|
46886
|
+
const onChange = () => setDpr(window.devicePixelRatio || 1);
|
|
46887
|
+
const media = matchMedia(`(resolution: ${dpr}dppx)`);
|
|
46888
|
+
media.addEventListener("change", onChange);
|
|
46889
|
+
onChange();
|
|
46890
|
+
return () => media.removeEventListener("change", onChange);
|
|
46891
|
+
}, [dpr]);
|
|
46892
|
+
return dpr;
|
|
46893
|
+
}
|
|
46894
|
+
function useThemeVersion() {
|
|
46895
|
+
const [version2, setVersion] = reactExports.useState(0);
|
|
46615
46896
|
reactExports.useEffect(() => {
|
|
46616
|
-
|
|
46617
|
-
|
|
46618
|
-
|
|
46897
|
+
const observer = new MutationObserver(() => setVersion((v2) => v2 + 1));
|
|
46898
|
+
observer.observe(document.documentElement, {
|
|
46899
|
+
attributes: true,
|
|
46900
|
+
attributeFilter: ["class", "data-theme", "style"]
|
|
46901
|
+
});
|
|
46902
|
+
return () => observer.disconnect();
|
|
46903
|
+
}, []);
|
|
46904
|
+
return version2;
|
|
46905
|
+
}
|
|
46906
|
+
const Minimap = reactExports.memo(function Minimap2({ spans, root: root2, viewport, minViewportMs, onViewportChange, onAnimateTo }) {
|
|
46907
|
+
const { startTime: rootStartMs, endTime: rootEndMs, duration: rootDurationMs } = root2;
|
|
46908
|
+
const containerRef = reactExports.useRef(null);
|
|
46909
|
+
const canvasRef = reactExports.useRef(null);
|
|
46910
|
+
const dpr = useDpr();
|
|
46911
|
+
const themeVersion = useThemeVersion();
|
|
46912
|
+
const viewportRef = reactExports.useRef(viewport);
|
|
46913
|
+
viewportRef.current = viewport;
|
|
46914
|
+
const [drag, setDrag] = reactExports.useState(null);
|
|
46915
|
+
const [selection, setSelection] = reactExports.useState(null);
|
|
46916
|
+
const xToTime = reactExports.useCallback((x2, contentWidth) => {
|
|
46917
|
+
if (contentWidth <= 0)
|
|
46918
|
+
return rootStartMs;
|
|
46919
|
+
const fraction = (x2 - TIMELINE_PADDING_PX) / contentWidth;
|
|
46920
|
+
return Math.min(Math.max(rootStartMs + fraction * rootDurationMs, rootStartMs), rootEndMs);
|
|
46921
|
+
}, [rootStartMs, rootDurationMs, rootEndMs]);
|
|
46922
|
+
const clamp2 = reactExports.useCallback((next2) => clampViewportToRoot(next2, rootStartMs, rootEndMs, minViewportMs), [rootStartMs, rootEndMs, minViewportMs]);
|
|
46923
|
+
reactExports.useLayoutEffect(() => {
|
|
46924
|
+
const canvas = canvasRef.current;
|
|
46925
|
+
const container = containerRef.current;
|
|
46926
|
+
const ctx = canvas == null ? void 0 : canvas.getContext("2d");
|
|
46927
|
+
if (!canvas || !container || !ctx)
|
|
46928
|
+
return;
|
|
46929
|
+
const draw = () => {
|
|
46930
|
+
const width = canvas.clientWidth;
|
|
46931
|
+
const height = canvas.clientHeight;
|
|
46932
|
+
const contentWidth = width - TIMELINE_PADDING_PX * 2;
|
|
46933
|
+
if (width <= 0 || height <= 0 || contentWidth <= 0)
|
|
46934
|
+
return;
|
|
46935
|
+
canvas.width = Math.round(width * dpr);
|
|
46936
|
+
canvas.height = Math.round(height * dpr);
|
|
46937
|
+
ctx.scale(dpr, dpr);
|
|
46938
|
+
ctx.clearRect(0, 0, width, height);
|
|
46939
|
+
if (spans.length === 0 || rootDurationMs <= 0)
|
|
46940
|
+
return;
|
|
46941
|
+
const { lineHeight, rectsByToken } = computeDensityLayout(spans, rootStartMs, rootDurationMs, contentWidth, height - CANVAS_PAD_Y_PX * 2);
|
|
46942
|
+
const style2 = getComputedStyle(container);
|
|
46943
|
+
const drawToken = (token) => {
|
|
46944
|
+
const rects = rectsByToken.get(token);
|
|
46945
|
+
if (!rects)
|
|
46946
|
+
return;
|
|
46947
|
+
ctx.fillStyle = style2.getPropertyValue(token).trim() || "rgb(160,160,160)";
|
|
46948
|
+
ctx.beginPath();
|
|
46949
|
+
for (const [x2, y2, w2] of rects) {
|
|
46950
|
+
ctx.roundRect(x2, y2, w2, lineHeight, lineHeight / 2);
|
|
46951
|
+
}
|
|
46952
|
+
ctx.fill();
|
|
46953
|
+
};
|
|
46954
|
+
for (const token of rectsByToken.keys()) {
|
|
46955
|
+
if (token !== ERROR_LINE_TOKEN)
|
|
46956
|
+
drawToken(token);
|
|
46619
46957
|
}
|
|
46620
|
-
|
|
46621
|
-
|
|
46622
|
-
|
|
46958
|
+
drawToken(ERROR_LINE_TOKEN);
|
|
46959
|
+
};
|
|
46960
|
+
draw();
|
|
46961
|
+
const observer = new ResizeObserver(draw);
|
|
46962
|
+
observer.observe(container);
|
|
46963
|
+
return () => observer.disconnect();
|
|
46964
|
+
}, [spans, rootStartMs, rootDurationMs, dpr, themeVersion]);
|
|
46965
|
+
const pointerFrame = reactExports.useCallback((e) => {
|
|
46966
|
+
const rect = e.currentTarget.getBoundingClientRect();
|
|
46967
|
+
return {
|
|
46968
|
+
x: e.clientX - rect.left,
|
|
46969
|
+
cw: rect.width - TIMELINE_PADDING_PX * 2
|
|
46970
|
+
};
|
|
46971
|
+
}, []);
|
|
46972
|
+
const resolveDragState = reactExports.useCallback((target2, x2, cw) => {
|
|
46973
|
+
if (target2.closest('[data-minimap-handle="left"]')) {
|
|
46974
|
+
return { mode: "resize-left" };
|
|
46975
|
+
}
|
|
46976
|
+
if (target2.closest('[data-minimap-handle="right"]')) {
|
|
46977
|
+
return { mode: "resize-right" };
|
|
46978
|
+
}
|
|
46979
|
+
const { start, end } = viewportRef.current;
|
|
46980
|
+
const isFullExtent = start - rootStartMs < rootDurationMs * 1e-3 && rootEndMs - end < rootDurationMs * 1e-3;
|
|
46981
|
+
if (target2.closest("[data-minimap-brush]") && !isFullExtent) {
|
|
46982
|
+
return { mode: "pan", grabOffsetMs: xToTime(x2, cw) - start };
|
|
46983
|
+
}
|
|
46984
|
+
return { mode: "select", originX: x2, originMs: xToTime(x2, cw) };
|
|
46985
|
+
}, [xToTime, rootStartMs, rootDurationMs, rootEndMs]);
|
|
46986
|
+
const handlePointerDown = reactExports.useCallback((e) => {
|
|
46987
|
+
if (e.button !== 0)
|
|
46988
|
+
return;
|
|
46989
|
+
const { x: x2, cw } = pointerFrame(e);
|
|
46990
|
+
if (cw <= 0)
|
|
46991
|
+
return;
|
|
46992
|
+
e.currentTarget.setPointerCapture(e.pointerId);
|
|
46993
|
+
setDrag(resolveDragState(e.target, x2, cw));
|
|
46994
|
+
}, [pointerFrame, resolveDragState]);
|
|
46995
|
+
const handlePointerMove = reactExports.useCallback((e) => {
|
|
46996
|
+
if (!drag)
|
|
46997
|
+
return;
|
|
46998
|
+
const { x: x2, cw } = pointerFrame(e);
|
|
46999
|
+
const t = xToTime(x2, cw);
|
|
47000
|
+
const { start, end } = viewportRef.current;
|
|
47001
|
+
if (drag.mode === "pan") {
|
|
47002
|
+
const duration2 = end - start;
|
|
47003
|
+
onViewportChange(clamp2({
|
|
47004
|
+
start: t - drag.grabOffsetMs,
|
|
47005
|
+
end: t - drag.grabOffsetMs + duration2
|
|
47006
|
+
}));
|
|
47007
|
+
} else if (drag.mode === "resize-left") {
|
|
47008
|
+
onViewportChange({ start: Math.min(t, end - minViewportMs), end });
|
|
47009
|
+
} else if (drag.mode === "resize-right") {
|
|
47010
|
+
onViewportChange({ start, end: Math.max(t, start + minViewportMs) });
|
|
47011
|
+
} else if (selection || Math.abs(x2 - drag.originX) > CLICK_DRAG_THRESHOLD_PX) {
|
|
47012
|
+
setSelection({
|
|
47013
|
+
x0: Math.min(drag.originX, x2),
|
|
47014
|
+
x1: Math.max(drag.originX, x2)
|
|
47015
|
+
});
|
|
47016
|
+
}
|
|
47017
|
+
}, [
|
|
47018
|
+
drag,
|
|
47019
|
+
selection,
|
|
47020
|
+
pointerFrame,
|
|
47021
|
+
xToTime,
|
|
47022
|
+
onViewportChange,
|
|
47023
|
+
clamp2,
|
|
47024
|
+
minViewportMs
|
|
47025
|
+
]);
|
|
47026
|
+
const endDrag = reactExports.useCallback((e) => {
|
|
47027
|
+
if (!drag)
|
|
47028
|
+
return;
|
|
47029
|
+
if (drag.mode === "select") {
|
|
47030
|
+
const { x: x2, cw } = pointerFrame(e);
|
|
47031
|
+
const t = xToTime(x2, cw);
|
|
47032
|
+
if (selection) {
|
|
47033
|
+
onAnimateTo(clamp2({
|
|
47034
|
+
start: Math.min(drag.originMs, t),
|
|
47035
|
+
end: Math.max(drag.originMs, t)
|
|
47036
|
+
}));
|
|
47037
|
+
} else {
|
|
47038
|
+
const { start, end } = viewportRef.current;
|
|
47039
|
+
const duration2 = end - start;
|
|
47040
|
+
onAnimateTo(clamp2({ start: t - duration2 / 2, end: t + duration2 / 2 }));
|
|
46623
47041
|
}
|
|
46624
|
-
return null;
|
|
46625
|
-
});
|
|
46626
|
-
}, [spans]);
|
|
46627
|
-
const activeSpan = reactExports.useMemo(() => {
|
|
46628
|
-
if (!activeSpanId) {
|
|
46629
|
-
return null;
|
|
46630
47042
|
}
|
|
46631
|
-
|
|
46632
|
-
|
|
46633
|
-
|
|
46634
|
-
|
|
46635
|
-
|
|
46636
|
-
|
|
46637
|
-
setActiveSpanId(null);
|
|
47043
|
+
setSelection(null);
|
|
47044
|
+
setDrag(null);
|
|
47045
|
+
}, [drag, selection, pointerFrame, xToTime, onAnimateTo, clamp2]);
|
|
47046
|
+
const handleLostPointerCapture = reactExports.useCallback(() => {
|
|
47047
|
+
setSelection(null);
|
|
47048
|
+
setDrag(null);
|
|
46638
47049
|
}, []);
|
|
46639
|
-
const
|
|
46640
|
-
|
|
46641
|
-
|
|
46642
|
-
|
|
46643
|
-
|
|
46644
|
-
|
|
46645
|
-
|
|
46646
|
-
|
|
46647
|
-
const
|
|
46648
|
-
|
|
46649
|
-
|
|
46650
|
-
|
|
46651
|
-
|
|
46652
|
-
|
|
46653
|
-
|
|
47050
|
+
const handleDoubleClick = reactExports.useCallback(() => {
|
|
47051
|
+
onAnimateTo({ start: rootStartMs, end: rootEndMs });
|
|
47052
|
+
}, [onAnimateTo, rootStartMs, rootEndMs]);
|
|
47053
|
+
reactExports.useEffect(() => {
|
|
47054
|
+
const el = containerRef.current;
|
|
47055
|
+
if (!el || rootDurationMs <= 0)
|
|
47056
|
+
return;
|
|
47057
|
+
const zoomAtCursor = (e, cw, left) => {
|
|
47058
|
+
const scaleFactor = wheelZoomScaleFactor(e);
|
|
47059
|
+
const { start, end } = viewportRef.current;
|
|
47060
|
+
const duration2 = end - start;
|
|
47061
|
+
const cursorFraction = Math.min(Math.max((e.clientX - left - TIMELINE_PADDING_PX) / cw, 0), 1);
|
|
47062
|
+
const cursorMs = rootStartMs + cursorFraction * rootDurationMs;
|
|
47063
|
+
const anchor = Math.min(Math.max(duration2 > 0 ? (cursorMs - start) / duration2 : 0.5, 0), 1);
|
|
47064
|
+
const newDuration = duration2 * scaleFactor;
|
|
47065
|
+
onViewportChange(clamp2({
|
|
47066
|
+
start: cursorMs - anchor * newDuration,
|
|
47067
|
+
end: cursorMs + (1 - anchor) * newDuration
|
|
47068
|
+
}));
|
|
47069
|
+
};
|
|
47070
|
+
const panByMapPixels = (e, cw) => {
|
|
47071
|
+
const dx = wheelDeltaToPixels(e.deltaX, e.deltaMode);
|
|
47072
|
+
const panMs = dx / cw * rootDurationMs;
|
|
47073
|
+
const { start, end } = viewportRef.current;
|
|
47074
|
+
onViewportChange(clamp2({ start: start + panMs, end: end + panMs }));
|
|
47075
|
+
};
|
|
47076
|
+
const onWheel = (e) => {
|
|
47077
|
+
const isZoomGesture = e.ctrlKey || e.metaKey;
|
|
47078
|
+
const hasDeltaX = Math.abs(e.deltaX) > Math.abs(e.deltaY);
|
|
47079
|
+
if (!isZoomGesture && !hasDeltaX)
|
|
47080
|
+
return;
|
|
47081
|
+
e.preventDefault();
|
|
47082
|
+
const rect = el.getBoundingClientRect();
|
|
47083
|
+
const cw = rect.width - TIMELINE_PADDING_PX * 2;
|
|
47084
|
+
if (cw <= 0)
|
|
47085
|
+
return;
|
|
47086
|
+
if (isZoomGesture)
|
|
47087
|
+
zoomAtCursor(e, cw, rect.left);
|
|
47088
|
+
else
|
|
47089
|
+
panByMapPixels(e, cw);
|
|
47090
|
+
};
|
|
47091
|
+
el.addEventListener("wheel", onWheel, { passive: false });
|
|
47092
|
+
return () => el.removeEventListener("wheel", onWheel);
|
|
47093
|
+
}, [rootStartMs, rootDurationMs, onViewportChange, clamp2]);
|
|
47094
|
+
const handleKeyDown = reactExports.useCallback((e) => {
|
|
47095
|
+
const { start, end } = viewportRef.current;
|
|
47096
|
+
const duration2 = end - start;
|
|
47097
|
+
const pan = duration2 * KEYBOARD_PAN_FRACTION;
|
|
47098
|
+
if (e.key === "ArrowLeft") {
|
|
47099
|
+
onViewportChange(clamp2({ start: start - pan, end: end - pan }));
|
|
47100
|
+
} else if (e.key === "ArrowRight") {
|
|
47101
|
+
onViewportChange(clamp2({ start: start + pan, end: end + pan }));
|
|
47102
|
+
} else if (e.key === "Home") {
|
|
47103
|
+
onViewportChange(clamp2({ start: rootStartMs, end: rootStartMs + duration2 }));
|
|
47104
|
+
} else if (e.key === "End") {
|
|
47105
|
+
onViewportChange(clamp2({ start: rootEndMs - duration2, end: rootEndMs }));
|
|
47106
|
+
} else {
|
|
47107
|
+
return;
|
|
47108
|
+
}
|
|
47109
|
+
e.preventDefault();
|
|
47110
|
+
}, [onViewportChange, clamp2, rootStartMs, rootEndMs]);
|
|
47111
|
+
const startFraction = (viewport.start - rootStartMs) / rootDurationMs;
|
|
47112
|
+
const endFraction = (viewport.end - rootStartMs) / rootDurationMs;
|
|
47113
|
+
const trackWidth = `(100% - ${TIMELINE_PADDING_PX * 2}px)`;
|
|
47114
|
+
const brushStyle = {
|
|
47115
|
+
left: `calc(${TIMELINE_PADDING_PX}px + ${startFraction} * ${trackWidth})`,
|
|
47116
|
+
width: `max(${MIN_BRUSH_WIDTH_PX}px, calc(${endFraction - startFraction} * ${trackWidth}))`
|
|
47117
|
+
};
|
|
47118
|
+
const viewDuration = viewport.end - viewport.start;
|
|
47119
|
+
const scrollableMs = Math.max(rootDurationMs - viewDuration, 0);
|
|
47120
|
+
const scrollPercent = scrollableMs > 0 ? Math.round((viewport.start - rootStartMs) / scrollableMs * 100) : 0;
|
|
47121
|
+
return jsxRuntimeExports.jsxs("div", { ref: containerRef, className: cn$4("relative h-10 min-h-10 w-full border-b border-gray-alpha-400 bg-background-100 select-none overflow-hidden touch-none", (drag == null ? void 0 : drag.mode) === "select" && "cursor-crosshair"), onPointerDown: handlePointerDown, onPointerMove: handlePointerMove, onPointerUp: endDrag, onPointerCancel: endDrag, onLostPointerCapture: handleLostPointerCapture, onDoubleClick: handleDoubleClick, children: [jsxRuntimeExports.jsx("canvas", { ref: canvasRef, "aria-hidden": true, className: "pointer-events-none absolute inset-0 h-full w-full mix-blend-multiply [.dark-theme_&]:mix-blend-screen [.dark_&]:mix-blend-screen [[data-theme=dark]_&]:mix-blend-screen" }), selection ? jsxRuntimeExports.jsx("div", { "aria-hidden": true, className: "pointer-events-none absolute inset-y-0 border border-blue-500 bg-blue-300 opacity-40", style: { left: selection.x0, width: selection.x1 - selection.x0 } }) : null, jsxRuntimeExports.jsxs("div", { "data-minimap-brush": true, role: "scrollbar", "aria-controls": "trace-timeline", "aria-orientation": "horizontal", "aria-valuemin": 0, "aria-valuemax": 100, "aria-valuenow": scrollPercent, "aria-valuetext": `Viewing ${formatDurationPrecise(viewport.start - rootStartMs)} to ${formatDurationPrecise(viewport.end - rootStartMs)} of ${formatDurationPrecise(rootDurationMs)}`, "aria-label": "Timeline overview", tabIndex: 0, onKeyDown: handleKeyDown, className: cn$4(
|
|
47122
|
+
// Glass thumb, matching the legacy trace viewer's map window.
|
|
47123
|
+
"group/minimap-brush absolute top-0.5 bottom-0.5 rounded-[3px] border border-gray-alpha-400 bg-gray-alpha-200 shadow-sm focus-visible:outline focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-[var(--ds-focus-color)]",
|
|
47124
|
+
(drag == null ? void 0 : drag.mode) === "pan" ? "cursor-grabbing" : "cursor-grab"
|
|
47125
|
+
), style: brushStyle, children: [jsxRuntimeExports.jsx("div", { "data-minimap-handle": "left", className: "absolute inset-y-0 -left-1 flex w-2.5 cursor-ew-resize items-center justify-center", children: jsxRuntimeExports.jsx("span", { className: cn$4("h-3.5 w-[3px] rounded-full bg-gray-600 opacity-0 transition-opacity group-hover/minimap-brush:opacity-100 group-focus-visible/minimap-brush:opacity-100", drag && "opacity-100") }) }), jsxRuntimeExports.jsx("div", { "data-minimap-handle": "right", className: "absolute inset-y-0 -right-1 flex w-2.5 cursor-ew-resize items-center justify-center", children: jsxRuntimeExports.jsx("span", { className: cn$4("h-3.5 w-[3px] rounded-full bg-gray-600 opacity-0 transition-opacity group-hover/minimap-brush:opacity-100 group-focus-visible/minimap-brush:opacity-100", drag && "opacity-100") }) })] })] });
|
|
47126
|
+
});
|
|
46654
47127
|
const DEFAULT_PAGE_SIZE = 10;
|
|
46655
47128
|
function cn(...inputs) {
|
|
46656
47129
|
return twMerge(clsx(inputs));
|
|
@@ -49015,6 +49488,9 @@ async function fetchEventsByCorrelationId(worldEnv, correlationId, params) {
|
|
|
49015
49488
|
async function fetchHooks(worldEnv, params) {
|
|
49016
49489
|
return rpc("fetchHooks", { worldEnv, params });
|
|
49017
49490
|
}
|
|
49491
|
+
async function fetchHookToken(worldEnv, runId, hookId) {
|
|
49492
|
+
return rpc("fetchHookToken", { worldEnv, runId, hookId });
|
|
49493
|
+
}
|
|
49018
49494
|
async function fetchHook(worldEnv, hookId, resolveData = "all") {
|
|
49019
49495
|
return rpc("fetchHook", { worldEnv, hookId, resolveData });
|
|
49020
49496
|
}
|
|
@@ -49050,106 +49526,118 @@ const mermaid3ZIDBTTL = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.def
|
|
|
49050
49526
|
Mermaid: Nt
|
|
49051
49527
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
49052
49528
|
export {
|
|
49053
|
-
|
|
49529
|
+
Spinner as $,
|
|
49054
49530
|
Anchor as A,
|
|
49055
49531
|
Button as B,
|
|
49056
|
-
|
|
49532
|
+
ChevronRight as C,
|
|
49057
49533
|
DEFAULT_PAGE_SIZE as D,
|
|
49058
|
-
|
|
49059
|
-
|
|
49060
|
-
|
|
49061
|
-
|
|
49062
|
-
|
|
49063
|
-
|
|
49534
|
+
useControllableState as E,
|
|
49535
|
+
Root2 as F,
|
|
49536
|
+
Arrow as G,
|
|
49537
|
+
ChevronDown as H,
|
|
49538
|
+
useComposedRefs as I,
|
|
49539
|
+
fetchRun as J,
|
|
49064
49540
|
Ks as K,
|
|
49065
49541
|
LoaderCircle as L,
|
|
49066
|
-
|
|
49067
|
-
|
|
49068
|
-
|
|
49542
|
+
cva as M,
|
|
49543
|
+
Presence as N,
|
|
49544
|
+
createContext2 as O,
|
|
49069
49545
|
Primitive as P,
|
|
49070
49546
|
Qe as Q,
|
|
49071
49547
|
R,
|
|
49072
49548
|
ServerConfigProvider as S,
|
|
49073
49549
|
Tooltip as T,
|
|
49074
|
-
|
|
49550
|
+
fetchWorkflowsManifest as U,
|
|
49075
49551
|
VISUALLY_HIDDEN_STYLES as V,
|
|
49076
|
-
|
|
49077
|
-
|
|
49078
|
-
|
|
49079
|
-
|
|
49552
|
+
cn$4 as W,
|
|
49553
|
+
DataInspector as X,
|
|
49554
|
+
DecryptClickContext as Y,
|
|
49555
|
+
Button$1 as Z,
|
|
49080
49556
|
__vitePreload as _,
|
|
49081
49557
|
TooltipTrigger as a,
|
|
49082
|
-
|
|
49083
|
-
|
|
49084
|
-
|
|
49085
|
-
|
|
49086
|
-
|
|
49087
|
-
|
|
49088
|
-
|
|
49089
|
-
|
|
49090
|
-
|
|
49091
|
-
|
|
49092
|
-
|
|
49093
|
-
|
|
49094
|
-
|
|
49095
|
-
|
|
49096
|
-
|
|
49097
|
-
|
|
49098
|
-
|
|
49099
|
-
|
|
49100
|
-
|
|
49101
|
-
|
|
49102
|
-
|
|
49103
|
-
|
|
49104
|
-
|
|
49105
|
-
|
|
49106
|
-
|
|
49107
|
-
|
|
49108
|
-
|
|
49109
|
-
|
|
49110
|
-
|
|
49111
|
-
|
|
49112
|
-
|
|
49113
|
-
|
|
49114
|
-
|
|
49115
|
-
|
|
49116
|
-
|
|
49117
|
-
|
|
49118
|
-
|
|
49119
|
-
|
|
49120
|
-
|
|
49121
|
-
|
|
49122
|
-
|
|
49123
|
-
|
|
49124
|
-
|
|
49125
|
-
|
|
49126
|
-
|
|
49127
|
-
|
|
49128
|
-
|
|
49129
|
-
|
|
49130
|
-
|
|
49131
|
-
|
|
49132
|
-
|
|
49133
|
-
|
|
49134
|
-
|
|
49135
|
-
|
|
49136
|
-
|
|
49137
|
-
|
|
49138
|
-
|
|
49139
|
-
|
|
49140
|
-
|
|
49141
|
-
|
|
49142
|
-
|
|
49143
|
-
|
|
49144
|
-
|
|
49145
|
-
|
|
49558
|
+
LIVE_UPDATE_INTERVAL_MS as a$,
|
|
49559
|
+
Lock as a0,
|
|
49560
|
+
CollapsibleRoot as a1,
|
|
49561
|
+
CollapsibleTrigger as a2,
|
|
49562
|
+
CollapsibleContent as a3,
|
|
49563
|
+
RESERVED_ATTRIBUTE_KEY_PREFIX as a4,
|
|
49564
|
+
ContextCardProvider as a5,
|
|
49565
|
+
Skeleton$1 as a6,
|
|
49566
|
+
Yr as a7,
|
|
49567
|
+
isEncryptedMarker$1 as a8,
|
|
49568
|
+
TimestampTooltip as a9,
|
|
49569
|
+
useReducedMotion as aA,
|
|
49570
|
+
searchSpans as aB,
|
|
49571
|
+
computeRootBounds as aC,
|
|
49572
|
+
computeTimeMarkers as aD,
|
|
49573
|
+
clampViewportToRoot as aE,
|
|
49574
|
+
getHighResInMs as aF,
|
|
49575
|
+
scrollRowIntoView as aG,
|
|
49576
|
+
TIMELINE_PADDING_PX as aH,
|
|
49577
|
+
Minimap as aI,
|
|
49578
|
+
Timeline as aJ,
|
|
49579
|
+
TimelineHeader as aK,
|
|
49580
|
+
wheelZoomScaleFactor as aL,
|
|
49581
|
+
wheelDeltaToPixels as aM,
|
|
49582
|
+
SidebarDataProvider as aN,
|
|
49583
|
+
fetchHook as aO,
|
|
49584
|
+
hydrateResourceIOAsync as aP,
|
|
49585
|
+
fetchStep as aQ,
|
|
49586
|
+
hydrateResourceIO as aR,
|
|
49587
|
+
fetchStreams as aS,
|
|
49588
|
+
Slot as aT,
|
|
49589
|
+
Slottable as aU,
|
|
49590
|
+
buttonVariants as aV,
|
|
49591
|
+
fetchEvent as aW,
|
|
49592
|
+
fetchEventsByCorrelationId as aX,
|
|
49593
|
+
isEncryptedData as aY,
|
|
49594
|
+
hydrateData as aZ,
|
|
49595
|
+
getWebRevivers as a_,
|
|
49596
|
+
formatDuration as aa,
|
|
49597
|
+
_r as ab,
|
|
49598
|
+
RunClickContext as ac,
|
|
49599
|
+
StreamClickContext as ad,
|
|
49600
|
+
Collapsible as ae,
|
|
49601
|
+
isExpiredMarker as af,
|
|
49602
|
+
isDoStreamStep as ag,
|
|
49603
|
+
extractConversation as ah,
|
|
49604
|
+
hasEncryptedFields as ai,
|
|
49605
|
+
getEventDataRefFields as aj,
|
|
49606
|
+
useSidebarDataOptional as ak,
|
|
49607
|
+
clsx as al,
|
|
49608
|
+
useActiveSpan as am,
|
|
49609
|
+
useSidebarData as an,
|
|
49610
|
+
Tooltip$1 as ao,
|
|
49611
|
+
TooltipTrigger$1 as ap,
|
|
49612
|
+
IconButton as aq,
|
|
49613
|
+
TooltipContent$1 as ar,
|
|
49614
|
+
useRowWindow as as,
|
|
49615
|
+
isSpanDimmedBySearch as at,
|
|
49616
|
+
ROW_HEIGHT_PX as au,
|
|
49617
|
+
getSpanDurationMs as av,
|
|
49618
|
+
isSpanErrored as aw,
|
|
49619
|
+
formatDurationPrecise as ax,
|
|
49620
|
+
TooltipProvider as ay,
|
|
49621
|
+
ActiveSpanProvider as az,
|
|
49146
49622
|
TooltipContent as b,
|
|
49147
|
-
|
|
49148
|
-
|
|
49149
|
-
|
|
49150
|
-
|
|
49151
|
-
|
|
49152
|
-
|
|
49623
|
+
getEncryptionKeyForRun as b0,
|
|
49624
|
+
StreamViewer as b1,
|
|
49625
|
+
composeRefs as b2,
|
|
49626
|
+
useFloating as b3,
|
|
49627
|
+
offset as b4,
|
|
49628
|
+
shift as b5,
|
|
49629
|
+
limitShift as b6,
|
|
49630
|
+
flip as b7,
|
|
49631
|
+
size as b8,
|
|
49632
|
+
arrow as b9,
|
|
49633
|
+
hide as ba,
|
|
49634
|
+
autoUpdate as bb,
|
|
49635
|
+
cancelRun as bc,
|
|
49636
|
+
reenqueueRun as bd,
|
|
49637
|
+
wakeUpRun as be,
|
|
49638
|
+
resumeHook as bf,
|
|
49639
|
+
fetchHookToken as bg,
|
|
49640
|
+
recreateRun as bh,
|
|
49153
49641
|
createLucideIcon as c,
|
|
49154
49642
|
runHealthCheck as d,
|
|
49155
49643
|
cn as e,
|
|
@@ -49173,5 +49661,5 @@ export {
|
|
|
49173
49661
|
DismissableLayer as w,
|
|
49174
49662
|
createContextScope as x,
|
|
49175
49663
|
createSlot as y,
|
|
49176
|
-
|
|
49664
|
+
Content as z
|
|
49177
49665
|
};
|