@workflow/web 5.0.0-beta.13 → 5.0.0-beta.14
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/{highlighted-body-B3W2YXNL-B8ZRlnzz.js → highlighted-body-B3W2YXNL-BEqiCpJd.js} +1 -1
- package/build/client/assets/{home-1yC3MOjQ.js → home-D9oyGYfj.js} +2 -2
- package/build/client/assets/{manifest-9f37c22f.js → manifest-6fc92124.js} +1 -1
- package/build/client/assets/{mermaid-3ZIDBTTL-BDM4-x6u.js → mermaid-3ZIDBTTL-C02sm-ZS.js} +90 -122
- package/build/client/assets/{root-C5RLIKj5.js → root-Dduz44vX.js} +1 -1
- package/build/client/assets/{run-detail-DM1PDAnQ.js → run-detail-uOQTua8_.js} +53 -15
- package/build/client/assets/{workflow-graph-viewer-C8H50hkM.js → workflow-graph-viewer-CU0UU458.js} +1 -1
- package/build/server/assets/{app-eXXkzWLS.js → app-BKJ-G0q_.js} +1 -1
- package/build/server/assets/{highlighted-body-B3W2YXNL-DMxq-VLe.js → highlighted-body-B3W2YXNL-Frh10t8y.js} +2 -2
- package/build/server/assets/index-B8YoYr9f.js +1117 -0
- package/build/server/assets/{index-BjEgWhxl.js → index-GhULR6rc.js} +15 -12
- package/build/server/assets/{mermaid-3ZIDBTTL-DNPNsNRF.js → mermaid-3ZIDBTTL-BtSvadnb.js} +2 -2
- package/build/server/assets/{server-build-CSP1Aknr.js → server-build-B9XdaVeE.js} +306 -1180
- package/build/server/assets/{token-DOrkjd5O.js → token-CpI-8AoV.js} +2 -2
- package/build/server/assets/{token-util-Hv7wRzsW.js → token-util-FXtXbDcd.js} +2 -2
- package/build/server/index.js +1 -1
- package/package.json +5 -5
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { R, K as Ks, Q as Qe } from "./mermaid-3ZIDBTTL-
|
|
1
|
+
import { R, K as Ks, Q as Qe } from "./mermaid-3ZIDBTTL-C02sm-ZS.js";
|
|
2
2
|
import { r as reactExports, j as jsxRuntimeExports } from "./index-BXZSIDEp.js";
|
|
3
3
|
var L = ({ code: s, language: t, raw: e, className: n, ...d$1 }) => {
|
|
4
4
|
let { shikiTheme: l } = reactExports.useContext(R), o = Ks(), [m, i] = reactExports.useState(e);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as reactExports, j as jsxRuntimeExports, A as Link, f as reactDomExports, C as useSearchParams, B as useNavigate, D as useLocation, w as withComponentProps } from "./index-BXZSIDEp.js";
|
|
2
|
-
import { R as ResolveHookModal, S as Send, a as Skeleton, u as unwrapOrThrow, W as WorkflowWebAPIError, b as RelativeTime, A as Alert, C as CircleAlert, c as AlertTitle, d as AlertDescription, g as getErrorMessage, e as CopyableText, D as DropdownMenu, f as DropdownMenuTrigger, E as Ellipsis, h as DropdownMenuContent, i as DropdownMenuItem, j as ChevronRight, r as resumeHook, k as createCollection, l as hideOthers, m as ReactRemoveScroll, n as useDirection, o as ChevronDown, p as ChevronUp, q as Check, X, s as useControllableState$1, P as Primitive$1, t as composeEventHandlers$1, v as Presence, w as useSize, x as createContextScope$1, y as cancelRun, z as reenqueueRun, B as parseWorkflowName, F as StatusBadge, Z as Zap, G as CircleX, H as RunActionsDropdownItems, I as unwrapServerActionResult, J as WorkflowGraphViewer, T as Tabs, K as TabsList, L as TabsTrigger, M as TabsContent, N as ErrorBoundary } from "./workflow-graph-viewer-
|
|
3
|
-
import { c as createLucideIcon, g as useToast, d as cn, D as DEFAULT_PAGE_SIZE, h as fetchRuns, i as fetchHooks, j as getPaginationDisplay, T as Tooltip, a as TooltipTrigger, B as Button, b as TooltipContent, k as fetchEvents, l as useCallbackRef, m as useComposedRefs, P as Primitive, A as Anchor, n as composeEventHandlers, o as useLayoutEffect2, p as Portal$2, q as useId, s as createPopperScope, v as DismissableLayer, w as createContextScope, x as createSlot, C as Content$1, y as useControllableState, z as Root2$1, V as VISUALLY_HIDDEN_STYLES, E as Arrow, F as useComposedRefs$1, u as useServerConfig, t as toast, L as LoaderCircle, G as fetchRun, H as cva, I as Presence$1, J as createContext2, M as fetchWorkflowsManifest } from "./mermaid-3ZIDBTTL-
|
|
2
|
+
import { R as ResolveHookModal, S as Send, a as Skeleton, u as unwrapOrThrow, W as WorkflowWebAPIError, b as RelativeTime, A as Alert, C as CircleAlert, c as AlertTitle, d as AlertDescription, g as getErrorMessage, e as CopyableText, D as DropdownMenu, f as DropdownMenuTrigger, E as Ellipsis, h as DropdownMenuContent, i as DropdownMenuItem, j as ChevronRight, r as resumeHook, k as createCollection, l as hideOthers, m as ReactRemoveScroll, n as useDirection, o as ChevronDown, p as ChevronUp, q as Check, X, s as useControllableState$1, P as Primitive$1, t as composeEventHandlers$1, v as Presence, w as useSize, x as createContextScope$1, y as cancelRun, z as reenqueueRun, B as parseWorkflowName, F as StatusBadge, Z as Zap, G as CircleX, H as RunActionsDropdownItems, I as unwrapServerActionResult, J as WorkflowGraphViewer, T as Tabs, K as TabsList, L as TabsTrigger, M as TabsContent, N as ErrorBoundary } from "./workflow-graph-viewer-CU0UU458.js";
|
|
3
|
+
import { c as createLucideIcon, g as useToast, d as cn, D as DEFAULT_PAGE_SIZE, h as fetchRuns, i as fetchHooks, j as getPaginationDisplay, T as Tooltip, a as TooltipTrigger, B as Button, b as TooltipContent, k as fetchEvents, l as useCallbackRef, m as useComposedRefs, P as Primitive, A as Anchor, n as composeEventHandlers, o as useLayoutEffect2, p as Portal$2, q as useId, s as createPopperScope, v as DismissableLayer, w as createContextScope, x as createSlot, C as Content$1, y as useControllableState, z as Root2$1, V as VISUALLY_HIDDEN_STYLES, E as Arrow, F as useComposedRefs$1, u as useServerConfig, t as toast, L as LoaderCircle, G as fetchRun, H as cva, I as Presence$1, J as createContext2, M as fetchWorkflowsManifest } from "./mermaid-3ZIDBTTL-C02sm-ZS.js";
|
|
4
4
|
import "./index-B6-SzLmT.js";
|
|
5
5
|
/**
|
|
6
6
|
* @license lucide-react v0.575.0 - ISC
|
|
@@ -1 +1 @@
|
|
|
1
|
-
window.__reactRouterManifest={"entry":{"module":"/assets/entry.client-DOJDY_4b.js","imports":["/assets/index-BXZSIDEp.js"],"css":[]},"routes":{"root":{"id":"root","path":"","hasAction":true,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasClientMiddleware":false,"hasDefaultExport":true,"hasErrorBoundary":true,"module":"/assets/root-
|
|
1
|
+
window.__reactRouterManifest={"entry":{"module":"/assets/entry.client-DOJDY_4b.js","imports":["/assets/index-BXZSIDEp.js"],"css":[]},"routes":{"root":{"id":"root","path":"","hasAction":true,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasClientMiddleware":false,"hasDefaultExport":true,"hasErrorBoundary":true,"module":"/assets/root-Dduz44vX.js","imports":["/assets/index-BXZSIDEp.js","/assets/mermaid-3ZIDBTTL-C02sm-ZS.js"],"css":["/assets/root-Bqr5evzw.css","/assets/mermaid-3ZIDBTTL-DKxHcEOp.css"]},"routes/home":{"id":"routes/home","parentId":"root","index":true,"hasAction":false,"hasLoader":false,"hasClientAction":false,"hasClientLoader":false,"hasClientMiddleware":false,"hasDefaultExport":true,"hasErrorBoundary":false,"module":"/assets/home-D9oyGYfj.js","imports":["/assets/index-BXZSIDEp.js","/assets/workflow-graph-viewer-CU0UU458.js","/assets/mermaid-3ZIDBTTL-C02sm-ZS.js","/assets/index-B6-SzLmT.js"],"css":["/assets/workflow-graph-viewer-DnlNuQQH.css","/assets/mermaid-3ZIDBTTL-DKxHcEOp.css"]},"routes/run-detail":{"id":"routes/run-detail","parentId":"root","path":"run/:runId","hasAction":false,"hasLoader":false,"hasClientAction":false,"hasClientLoader":false,"hasClientMiddleware":false,"hasDefaultExport":true,"hasErrorBoundary":false,"module":"/assets/run-detail-uOQTua8_.js","imports":["/assets/index-BXZSIDEp.js","/assets/workflow-graph-viewer-CU0UU458.js","/assets/mermaid-3ZIDBTTL-C02sm-ZS.js","/assets/encryption-g14N5vQl.js","/assets/index-B6-SzLmT.js"],"css":["/assets/workflow-graph-viewer-DnlNuQQH.css","/assets/mermaid-3ZIDBTTL-DKxHcEOp.css"]},"routes/api.rpc":{"id":"routes/api.rpc","parentId":"root","path":"api/rpc","hasAction":true,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasClientMiddleware":false,"hasDefaultExport":false,"hasErrorBoundary":false,"module":"/assets/api.rpc-l0sNRNKZ.js","imports":[],"css":[]},"routes/api.stream.$streamId":{"id":"routes/api.stream.$streamId","parentId":"root","path":"api/stream/:streamId","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasClientMiddleware":false,"hasDefaultExport":false,"hasErrorBoundary":false,"module":"/assets/api.stream._streamId-l0sNRNKZ.js","imports":[],"css":[]}},"url":"/assets/manifest-6fc92124.js","version":"6fc92124"};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/encryption-g14N5vQl.js","assets/index-B6-SzLmT.js","assets/index-BXZSIDEp.js","assets/highlighted-body-B3W2YXNL-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/encryption-g14N5vQl.js","assets/index-B6-SzLmT.js","assets/index-BXZSIDEp.js","assets/highlighted-body-B3W2YXNL-BEqiCpJd.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);
|
|
@@ -6779,6 +6779,41 @@ function formatDuration(ms, compact = false) {
|
|
|
6779
6779
|
parts.push(`${seconds}s`);
|
|
6780
6780
|
return parts.join(" ");
|
|
6781
6781
|
}
|
|
6782
|
+
const preciseSecondsFormatter = new Intl.NumberFormat(void 0, {
|
|
6783
|
+
minimumFractionDigits: 2,
|
|
6784
|
+
maximumFractionDigits: 2
|
|
6785
|
+
});
|
|
6786
|
+
function formatDurationPrecise(ms) {
|
|
6787
|
+
if (ms === 0) {
|
|
6788
|
+
return "0s";
|
|
6789
|
+
}
|
|
6790
|
+
if (ms < MS_IN_SECOND) {
|
|
6791
|
+
const roundedMs = Math.round(ms);
|
|
6792
|
+
if (roundedMs < MS_IN_SECOND) {
|
|
6793
|
+
return `${roundedMs}ms`;
|
|
6794
|
+
}
|
|
6795
|
+
}
|
|
6796
|
+
const normalizedMs = Math.round(ms / 10) * 10;
|
|
6797
|
+
if (normalizedMs < MS_IN_MINUTE) {
|
|
6798
|
+
return `${preciseSecondsFormatter.format(normalizedMs / MS_IN_SECOND)}s`;
|
|
6799
|
+
}
|
|
6800
|
+
const days = Math.floor(normalizedMs / MS_IN_DAY);
|
|
6801
|
+
const hours = Math.floor(normalizedMs % MS_IN_DAY / MS_IN_HOUR);
|
|
6802
|
+
const minutes = Math.floor(normalizedMs % MS_IN_HOUR / MS_IN_MINUTE);
|
|
6803
|
+
const seconds = normalizedMs % MS_IN_MINUTE / MS_IN_SECOND;
|
|
6804
|
+
const parts = [];
|
|
6805
|
+
if (days > 0) {
|
|
6806
|
+
parts.push(`${days}d`);
|
|
6807
|
+
}
|
|
6808
|
+
if (hours > 0) {
|
|
6809
|
+
parts.push(`${hours}h`);
|
|
6810
|
+
}
|
|
6811
|
+
if (minutes > 0) {
|
|
6812
|
+
parts.push(`${minutes}m`);
|
|
6813
|
+
}
|
|
6814
|
+
parts.push(`${preciseSecondsFormatter.format(seconds)}s`);
|
|
6815
|
+
return parts.join(" ");
|
|
6816
|
+
}
|
|
6782
6817
|
function isDoStreamStep(stepName) {
|
|
6783
6818
|
return stepName.endsWith("//doStreamStep");
|
|
6784
6819
|
}
|
|
@@ -10858,7 +10893,6 @@ function shallowClone(o) {
|
|
|
10858
10893
|
return o;
|
|
10859
10894
|
}
|
|
10860
10895
|
const propertyKeyTypes = /* @__PURE__ */ new Set(["string", "number", "symbol"]);
|
|
10861
|
-
const primitiveTypes = /* @__PURE__ */ new Set(["string", "number", "bigint", "boolean", "symbol", "undefined"]);
|
|
10862
10896
|
function escapeRegex(str) {
|
|
10863
10897
|
return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
10864
10898
|
}
|
|
@@ -13164,51 +13198,6 @@ function handleReadonlyResult(payload) {
|
|
|
13164
13198
|
payload.value = Object.freeze(payload.value);
|
|
13165
13199
|
return payload;
|
|
13166
13200
|
}
|
|
13167
|
-
const $ZodTemplateLiteral = /* @__PURE__ */ $constructor("$ZodTemplateLiteral", (inst, def) => {
|
|
13168
|
-
$ZodType.init(inst, def);
|
|
13169
|
-
const regexParts = [];
|
|
13170
|
-
for (const part of def.parts) {
|
|
13171
|
-
if (typeof part === "object" && part !== null) {
|
|
13172
|
-
if (!part._zod.pattern) {
|
|
13173
|
-
throw new Error(`Invalid template literal part, no pattern found: ${[...part._zod.traits].shift()}`);
|
|
13174
|
-
}
|
|
13175
|
-
const source = part._zod.pattern instanceof RegExp ? part._zod.pattern.source : part._zod.pattern;
|
|
13176
|
-
if (!source)
|
|
13177
|
-
throw new Error(`Invalid template literal part: ${part._zod.traits}`);
|
|
13178
|
-
const start = source.startsWith("^") ? 1 : 0;
|
|
13179
|
-
const end = source.endsWith("$") ? source.length - 1 : source.length;
|
|
13180
|
-
regexParts.push(source.slice(start, end));
|
|
13181
|
-
} else if (part === null || primitiveTypes.has(typeof part)) {
|
|
13182
|
-
regexParts.push(escapeRegex(`${part}`));
|
|
13183
|
-
} else {
|
|
13184
|
-
throw new Error(`Invalid template literal part: ${part}`);
|
|
13185
|
-
}
|
|
13186
|
-
}
|
|
13187
|
-
inst._zod.pattern = new RegExp(`^${regexParts.join("")}$`);
|
|
13188
|
-
inst._zod.parse = (payload, _ctx) => {
|
|
13189
|
-
if (typeof payload.value !== "string") {
|
|
13190
|
-
payload.issues.push({
|
|
13191
|
-
input: payload.value,
|
|
13192
|
-
inst,
|
|
13193
|
-
expected: "string",
|
|
13194
|
-
code: "invalid_type"
|
|
13195
|
-
});
|
|
13196
|
-
return payload;
|
|
13197
|
-
}
|
|
13198
|
-
inst._zod.pattern.lastIndex = 0;
|
|
13199
|
-
if (!inst._zod.pattern.test(payload.value)) {
|
|
13200
|
-
payload.issues.push({
|
|
13201
|
-
input: payload.value,
|
|
13202
|
-
inst,
|
|
13203
|
-
code: "invalid_format",
|
|
13204
|
-
format: def.format ?? "template_literal",
|
|
13205
|
-
pattern: inst._zod.pattern.source
|
|
13206
|
-
});
|
|
13207
|
-
return payload;
|
|
13208
|
-
}
|
|
13209
|
-
return payload;
|
|
13210
|
-
};
|
|
13211
|
-
});
|
|
13212
13201
|
const $ZodLazy = /* @__PURE__ */ $constructor("$ZodLazy", (inst, def) => {
|
|
13213
13202
|
$ZodType.init(inst, def);
|
|
13214
13203
|
defineLazy(inst._zod, "innerType", () => def.getter());
|
|
@@ -14361,14 +14350,6 @@ const literalProcessor = (schema, ctx, json, _params) => {
|
|
|
14361
14350
|
json.enum = vals;
|
|
14362
14351
|
}
|
|
14363
14352
|
};
|
|
14364
|
-
const templateLiteralProcessor = (schema, _ctx, json, _params) => {
|
|
14365
|
-
const _json = json;
|
|
14366
|
-
const pattern = schema._zod.pattern;
|
|
14367
|
-
if (!pattern)
|
|
14368
|
-
throw new Error("Pattern not found in template literal");
|
|
14369
|
-
_json.type = "string";
|
|
14370
|
-
_json.pattern = pattern.source;
|
|
14371
|
-
};
|
|
14372
14353
|
const customProcessor = (_schema, ctx, _json, _params) => {
|
|
14373
14354
|
if (ctx.unrepresentable === "throw") {
|
|
14374
14355
|
throw new Error("Custom types cannot be represented in JSON Schema");
|
|
@@ -15282,18 +15263,6 @@ function readonly(innerType) {
|
|
|
15282
15263
|
innerType
|
|
15283
15264
|
});
|
|
15284
15265
|
}
|
|
15285
|
-
const ZodTemplateLiteral = /* @__PURE__ */ $constructor("ZodTemplateLiteral", (inst, def) => {
|
|
15286
|
-
$ZodTemplateLiteral.init(inst, def);
|
|
15287
|
-
ZodType.init(inst, def);
|
|
15288
|
-
inst._zod.processJSONSchema = (ctx, json, params) => templateLiteralProcessor(inst, ctx, json);
|
|
15289
|
-
});
|
|
15290
|
-
function templateLiteral(parts, params) {
|
|
15291
|
-
return new ZodTemplateLiteral({
|
|
15292
|
-
type: "template_literal",
|
|
15293
|
-
parts,
|
|
15294
|
-
...normalizeParams(params)
|
|
15295
|
-
});
|
|
15296
|
-
}
|
|
15297
15266
|
const ZodLazy = /* @__PURE__ */ $constructor("ZodLazy", (inst, def) => {
|
|
15298
15267
|
$ZodLazy.init(inst, def);
|
|
15299
15268
|
ZodType.init(inst, def);
|
|
@@ -15589,11 +15558,9 @@ object({
|
|
|
15589
15558
|
isWebhook: boolean$2().optional(),
|
|
15590
15559
|
isSystem: boolean$2().optional()
|
|
15591
15560
|
});
|
|
15592
|
-
|
|
15593
|
-
|
|
15594
|
-
|
|
15595
|
-
]);
|
|
15596
|
-
templateLiteral([QueuePrefix, string$2()]);
|
|
15561
|
+
string$2().regex(/^__(?:[a-z][a-z0-9]*_)?wkf_(?:workflow|step)_$/, "Must match __wkf_{workflow|step}_ or __{namespace}_wkf_{workflow|step}_");
|
|
15562
|
+
string$2().regex(/^__(?:[a-z][a-z0-9]*_)?wkf_(?:workflow|step)_.+$/, "Must be a valid queue name with a recognized prefix");
|
|
15563
|
+
string$2().regex(/^[a-z][a-z0-9]*$/, "Must be lowercase alphanumeric, starting with a letter");
|
|
15597
15564
|
string$2().brand().describe("A stored queue message ID");
|
|
15598
15565
|
const TraceCarrierSchema = record(string$2(), string$2());
|
|
15599
15566
|
const RunInputSchema = object({
|
|
@@ -43315,7 +43282,7 @@ var tn = f("block", "before:content-[counter(line)]", "before:inline-block", "be
|
|
|
43315
43282
|
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 });
|
|
43316
43283
|
var Se = reactExports.createContext({ code: "" }), de = () => reactExports.useContext(Se);
|
|
43317
43284
|
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 }) });
|
|
43318
|
-
var cn$1 = /\n+$/, dn = reactExports.lazy(() => __vitePreload(() => import("./highlighted-body-B3W2YXNL-
|
|
43285
|
+
var cn$1 = /\n+$/, dn = reactExports.lazy(() => __vitePreload(() => import("./highlighted-body-B3W2YXNL-BEqiCpJd.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 }) => {
|
|
43319
43286
|
let i = reactExports.useMemo(() => e.replace(cn$1, ""), [e]), c = reactExports.useMemo(() => ({ bg: "transparent", fg: "inherit", tokens: i.split(`
|
|
43320
43287
|
`).map((a2) => [{ content: a2, color: "inherit", bgColor: "transparent", htmlStyle: {}, offset: 0 }]) }), [i]);
|
|
43321
43288
|
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 }) })] }) });
|
|
@@ -45965,7 +45932,7 @@ function PlainBar({ bg, border, label }) {
|
|
|
45965
45932
|
}
|
|
45966
45933
|
function SegmentBar({ segments }) {
|
|
45967
45934
|
return jsxRuntimeExports.jsx("div", { className: "relative h-6 w-full", children: segments.map((seg, i) => {
|
|
45968
|
-
const label =
|
|
45935
|
+
const label = formatDurationPrecise(seg.fullDurationMs);
|
|
45969
45936
|
const showLabel = seg.pixelWidth >= Math.max(40, label.length * 6 + 12);
|
|
45970
45937
|
const isNarrowQueued = seg.status === "queued" && seg.pixelWidth < 20;
|
|
45971
45938
|
const overrideBg = isNarrowQueued ? "var(--ds-gray-400)" : void 0;
|
|
@@ -45993,7 +45960,7 @@ const TimelineBar = reactExports.memo(function TimelineBar2({ span, viewStart, v
|
|
|
45993
45960
|
const colors = getResourceColor(span.resource);
|
|
45994
45961
|
const fallbackBg = isErrored ? colors.errorBg ?? "var(--ds-red-200)" : colors.bg;
|
|
45995
45962
|
const fallbackBorder = isErrored ? colors.errorBorder ?? "var(--ds-red-500)" : colors.border;
|
|
45996
|
-
const totalLabel =
|
|
45963
|
+
const totalLabel = formatDurationPrecise(totalDurationMs);
|
|
45997
45964
|
const showTotalLabel = geometry.visiblePixelWidth >= Math.max(40, totalLabel.length * 6 + 12);
|
|
45998
45965
|
const handleClick = reactExports.useCallback(() => {
|
|
45999
45966
|
onSelect(span.spanId);
|
|
@@ -48631,58 +48598,59 @@ export {
|
|
|
48631
48598
|
hasEncryptedFields as a7,
|
|
48632
48599
|
EVENT_DATA_REF_FIELDS as a8,
|
|
48633
48600
|
useSidebarDataOptional as a9,
|
|
48634
|
-
|
|
48635
|
-
|
|
48636
|
-
|
|
48637
|
-
|
|
48638
|
-
|
|
48639
|
-
|
|
48640
|
-
|
|
48641
|
-
|
|
48642
|
-
|
|
48643
|
-
|
|
48644
|
-
|
|
48645
|
-
|
|
48646
|
-
|
|
48647
|
-
|
|
48648
|
-
|
|
48649
|
-
|
|
48650
|
-
|
|
48651
|
-
|
|
48652
|
-
|
|
48653
|
-
|
|
48654
|
-
|
|
48655
|
-
|
|
48656
|
-
|
|
48657
|
-
|
|
48658
|
-
|
|
48659
|
-
|
|
48601
|
+
fetchStreams as aA,
|
|
48602
|
+
Slot as aB,
|
|
48603
|
+
Slottable as aC,
|
|
48604
|
+
buttonVariants as aD,
|
|
48605
|
+
fetchEvent as aE,
|
|
48606
|
+
fetchEventsByCorrelationId as aF,
|
|
48607
|
+
isEncryptedData as aG,
|
|
48608
|
+
hydrateData as aH,
|
|
48609
|
+
getWebRevivers as aI,
|
|
48610
|
+
LIVE_UPDATE_INTERVAL_MS as aJ,
|
|
48611
|
+
getEncryptionKeyForRun as aK,
|
|
48612
|
+
StreamViewer as aL,
|
|
48613
|
+
composeRefs as aM,
|
|
48614
|
+
useFloating as aN,
|
|
48615
|
+
offset as aO,
|
|
48616
|
+
shift as aP,
|
|
48617
|
+
limitShift as aQ,
|
|
48618
|
+
flip as aR,
|
|
48619
|
+
size as aS,
|
|
48620
|
+
arrow as aT,
|
|
48621
|
+
hide as aU,
|
|
48622
|
+
autoUpdate as aV,
|
|
48623
|
+
cancelRun as aW,
|
|
48624
|
+
reenqueueRun as aX,
|
|
48625
|
+
wakeUpRun as aY,
|
|
48626
|
+
resumeHook as aZ,
|
|
48627
|
+
recreateRun as a_,
|
|
48660
48628
|
clsx as aa,
|
|
48661
48629
|
useRowWindow as ab,
|
|
48662
48630
|
isSpanDimmedBySearch as ac,
|
|
48663
48631
|
ROW_HEIGHT_PX as ad,
|
|
48664
48632
|
getSpanDurationMs as ae,
|
|
48665
|
-
|
|
48666
|
-
|
|
48667
|
-
|
|
48668
|
-
|
|
48669
|
-
|
|
48670
|
-
|
|
48671
|
-
|
|
48672
|
-
|
|
48673
|
-
|
|
48674
|
-
|
|
48675
|
-
|
|
48676
|
-
|
|
48677
|
-
|
|
48678
|
-
|
|
48679
|
-
|
|
48680
|
-
|
|
48681
|
-
|
|
48682
|
-
|
|
48683
|
-
|
|
48684
|
-
|
|
48685
|
-
|
|
48633
|
+
formatDurationPrecise as af,
|
|
48634
|
+
TooltipProvider as ag,
|
|
48635
|
+
ActiveSpanProvider as ah,
|
|
48636
|
+
useActiveSpan as ai,
|
|
48637
|
+
useSidebarData as aj,
|
|
48638
|
+
searchSpans as ak,
|
|
48639
|
+
computeRootBounds as al,
|
|
48640
|
+
computeTimeMarkers as am,
|
|
48641
|
+
getHighResInMs as an,
|
|
48642
|
+
TIMELINE_PADDING_PX as ao,
|
|
48643
|
+
Timeline as ap,
|
|
48644
|
+
TimelineHeader as aq,
|
|
48645
|
+
IconButton as ar,
|
|
48646
|
+
Tooltip$1 as as,
|
|
48647
|
+
TooltipTrigger$1 as at,
|
|
48648
|
+
TooltipContent$1 as au,
|
|
48649
|
+
SidebarDataProvider as av,
|
|
48650
|
+
hydrateResourceIOWithKey as aw,
|
|
48651
|
+
hydrateResourceIO as ax,
|
|
48652
|
+
fetchHook as ay,
|
|
48653
|
+
fetchStep as az,
|
|
48686
48654
|
TooltipContent as b,
|
|
48687
48655
|
createLucideIcon as c,
|
|
48688
48656
|
cn as d,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
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-BXZSIDEp.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-
|
|
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-C02sm-ZS.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,6 +1,6 @@
|
|
|
1
1
|
import { j as jsxRuntimeExports, r as reactExports, f as reactDomExports, G as ReactDOM, B as useNavigate, C as useSearchParams, A as Link, w as withComponentProps, H as useParams } from "./index-BXZSIDEp.js";
|
|
2
|
-
import { q as Check, O as Copy, C as CircleAlert, Q as parseStepName, B as parseWorkflowName, j as ChevronRight, o as ChevronDown, U as ErrorCard, Z as Zap, S as Send, R as ResolveHookModal, V as Circle, p as ChevronUp, X, N as ErrorBoundary, I as unwrapServerActionResult, u as unwrapOrThrow, W as WorkflowWebAPIError, Y as useEscapeKeydown, t as composeEventHandlers, _ as useCallbackRef, $ as useLayoutEffect2, s as useControllableState, a0 as useId, a1 as createContext2, v as Presence, x as createContextScope, l as hideOthers, m as ReactRemoveScroll, a2 as useFocusGuards, a3 as LAYOUT, a4 as wakeUpRun, r as resumeHook, A as Alert, c as AlertTitle, d as AlertDescription, a as Skeleton$1, a5 as RunActionsButtons, F as StatusBadge, e as CopyableText, b as RelativeTime, T as Tabs, K as TabsList, L as TabsTrigger, M as TabsContent, y as cancelRun, a6 as recreateRun } from "./workflow-graph-viewer-
|
|
3
|
-
import { c as createLucideIcon, N as Spinner, O as cn, g as useToast, U as Skeleton, W as DecryptClickContext, Y as Yr, X as isEncryptedMarker, Z as formatDuration, _ as DataInspector, $ as _r, a0 as Button, a1 as Lock, a2 as RunClickContext, a3 as StreamClickContext, a4 as isExpiredMarker, a5 as isDoStreamStep, a6 as extractConversation, a7 as hasEncryptedFields, a8 as EVENT_DATA_REF_FIELDS, a9 as useSidebarDataOptional, aa as clsx, ab as useRowWindow, ac as isSpanDimmedBySearch, ad as ROW_HEIGHT_PX, ae as getSpanDurationMs, af as
|
|
2
|
+
import { q as Check, O as Copy, C as CircleAlert, Q as parseStepName, B as parseWorkflowName, j as ChevronRight, o as ChevronDown, U as ErrorCard, Z as Zap, S as Send, R as ResolveHookModal, V as Circle, p as ChevronUp, X, N as ErrorBoundary, I as unwrapServerActionResult, u as unwrapOrThrow, W as WorkflowWebAPIError, Y as useEscapeKeydown, t as composeEventHandlers, _ as useCallbackRef, $ as useLayoutEffect2, s as useControllableState, a0 as useId, a1 as createContext2, v as Presence, x as createContextScope, l as hideOthers, m as ReactRemoveScroll, a2 as useFocusGuards, a3 as LAYOUT, a4 as wakeUpRun, r as resumeHook, A as Alert, c as AlertTitle, d as AlertDescription, a as Skeleton$1, a5 as RunActionsButtons, F as StatusBadge, e as CopyableText, b as RelativeTime, T as Tabs, K as TabsList, L as TabsTrigger, M as TabsContent, y as cancelRun, a6 as recreateRun } from "./workflow-graph-viewer-CU0UU458.js";
|
|
3
|
+
import { c as createLucideIcon, N as Spinner, O as cn, g as useToast, U as Skeleton, W as DecryptClickContext, Y as Yr, X as isEncryptedMarker, Z as formatDuration, _ as DataInspector, $ as _r, a0 as Button, a1 as Lock, a2 as RunClickContext, a3 as StreamClickContext, a4 as isExpiredMarker, a5 as isDoStreamStep, a6 as extractConversation, a7 as hasEncryptedFields, a8 as EVENT_DATA_REF_FIELDS, a9 as useSidebarDataOptional, aa as clsx, ab as useRowWindow, ac as isSpanDimmedBySearch, ad as ROW_HEIGHT_PX, ae as getSpanDurationMs, af as formatDurationPrecise, ag as TooltipProvider, ah as ActiveSpanProvider, ai as useActiveSpan, aj as useSidebarData, ak as searchSpans, al as computeRootBounds, am as computeTimeMarkers, an as getHighResInMs, ao as TIMELINE_PADDING_PX, ap as Timeline, aq as TimelineHeader, ar as IconButton, as as Tooltip, at as TooltipTrigger, au as TooltipContent, av as SidebarDataProvider, aw as hydrateResourceIOWithKey, ax as hydrateResourceIO, ay as fetchHook, k as fetchEvents, G as fetchRun, az as fetchStep, aA as fetchStreams, aB as Slot, F as useComposedRefs, aC as Slottable, d as cn$1, aD as buttonVariants, aE as fetchEvent, aF as fetchEventsByCorrelationId, aG as isEncryptedData, aH as hydrateData, aI as getWebRevivers, T as Tooltip$1, a as TooltipTrigger$1, b as TooltipContent$1, aJ as LIVE_UPDATE_INTERVAL_MS$1, u as useServerConfig, aK as getEncryptionKeyForRun, t as toast, L as LoaderCircle, aL as StreamViewer } from "./mermaid-3ZIDBTTL-C02sm-ZS.js";
|
|
4
4
|
import { decrypt, importKey } from "./encryption-g14N5vQl.js";
|
|
5
5
|
import "./index-B6-SzLmT.js";
|
|
6
6
|
/**
|
|
@@ -2011,6 +2011,7 @@ const attributeOrder = [
|
|
|
2011
2011
|
"eventData",
|
|
2012
2012
|
"input",
|
|
2013
2013
|
"output",
|
|
2014
|
+
"attributes",
|
|
2014
2015
|
"resumeAt"
|
|
2015
2016
|
];
|
|
2016
2017
|
const sortByAttributeOrder = (a, b) => {
|
|
@@ -2029,6 +2030,7 @@ const attributeDisplayNames = {
|
|
|
2029
2030
|
runId: "Run ID",
|
|
2030
2031
|
token: "Token",
|
|
2031
2032
|
eventType: "Event Type",
|
|
2033
|
+
errorCode: "Error Code",
|
|
2032
2034
|
correlationId: "Correlation ID",
|
|
2033
2035
|
deploymentId: "Deployment ID",
|
|
2034
2036
|
specVersion: "Spec Version",
|
|
@@ -2127,12 +2129,12 @@ const attributeToDisplayFn = {
|
|
|
2127
2129
|
environment: (_value) => null,
|
|
2128
2130
|
executionContext: (_value) => null,
|
|
2129
2131
|
// Attributes MVP — string-string metadata attached to the run.
|
|
2130
|
-
// Rendered
|
|
2131
|
-
// hasDisplayContent gate
|
|
2132
|
+
// Rendered in its own collapsible DetailCard; if empty/missing, hidden
|
|
2133
|
+
// by the hasDisplayContent gate.
|
|
2132
2134
|
attributes: (value) => {
|
|
2133
2135
|
if (!hasDisplayContent(value))
|
|
2134
2136
|
return null;
|
|
2135
|
-
return JsonBlock(value);
|
|
2137
|
+
return jsxRuntimeExports.jsx(DetailCard, { summary: "Attributes", children: JsonBlock(value) });
|
|
2136
2138
|
},
|
|
2137
2139
|
// Dates — wrapped with TimestampTooltip showing UTC/local + relative time
|
|
2138
2140
|
createdAt: timestampWithTooltipOrNull,
|
|
@@ -2223,12 +2225,14 @@ const resolvableAttributes = [
|
|
|
2223
2225
|
"output",
|
|
2224
2226
|
"error",
|
|
2225
2227
|
"metadata",
|
|
2228
|
+
"attributes",
|
|
2226
2229
|
"eventData"
|
|
2227
2230
|
];
|
|
2228
2231
|
const selfHeaderedAttributes = /* @__PURE__ */ new Set([
|
|
2229
2232
|
"input",
|
|
2230
2233
|
"output",
|
|
2231
2234
|
"error",
|
|
2235
|
+
"attributes",
|
|
2232
2236
|
"eventData"
|
|
2233
2237
|
]);
|
|
2234
2238
|
const ExpiredDataMessage = () => jsxRuntimeExports.jsx("div", { className: "text-copy-12 rounded-md border p-4 my-2", style: {
|
|
@@ -2457,13 +2461,46 @@ function EventDataBlock({ eventType, data }) {
|
|
|
2457
2461
|
}
|
|
2458
2462
|
return jsxRuntimeExports.jsx(CopyableDataBlock, { data });
|
|
2459
2463
|
}
|
|
2460
|
-
function EventsList({ events, isLoading = false, error, onLoadEventData, encryptionKey }) {
|
|
2464
|
+
function EventsList({ events, isLoading = false, error, onLoadEventData, onStreamClick, onRunClick, encryptionKey }) {
|
|
2461
2465
|
const sortedEvents = reactExports.useMemo(() => [...events].sort((a, b) => new Date(a.createdAt).getTime() - new Date(b.createdAt).getTime()), [events]);
|
|
2462
2466
|
const hasEvents = sortedEvents.length > 0 && !error;
|
|
2463
2467
|
if (!hasEvents && !isLoading) {
|
|
2464
2468
|
return jsxRuntimeExports.jsx(DetailCard, { summary: "Events", disabled: true });
|
|
2465
2469
|
}
|
|
2466
|
-
return jsxRuntimeExports.jsx(DetailCard, { summary: "Events", contentClassName: "mb-0", defaultOpen: true, children: isLoading ? jsxRuntimeExports.jsx("div", { className: "flex flex-col -mx-4", children: [0, 1, 2].map((i) => jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between gap-3 bg-background-200 px-4 py-2", children: [jsxRuntimeExports.jsx(Skeleton, { className: "h-4 w-32 rounded" }), jsxRuntimeExports.jsx(Skeleton, { className: "h-3 w-16 rounded" })] }, i)) }) : jsxRuntimeExports.jsx("div", { className: "flex flex-col -mx-4", children: sortedEvents.map((event) => jsxRuntimeExports.jsx(EventItem, { event, onLoadEventData, encryptionKey }, event.eventId)) }) });
|
|
2470
|
+
return jsxRuntimeExports.jsx(RunClickContext.Provider, { value: onRunClick, children: jsxRuntimeExports.jsx(StreamClickContext.Provider, { value: onStreamClick, children: jsxRuntimeExports.jsx(DetailCard, { summary: "Events", contentClassName: "mb-0", defaultOpen: true, children: isLoading ? jsxRuntimeExports.jsx("div", { className: "flex flex-col -mx-4", children: [0, 1, 2].map((i) => jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between gap-3 bg-background-200 px-4 py-2", children: [jsxRuntimeExports.jsx(Skeleton, { className: "h-4 w-32 rounded" }), jsxRuntimeExports.jsx(Skeleton, { className: "h-3 w-16 rounded" })] }, i)) }) : jsxRuntimeExports.jsx("div", { className: "flex flex-col -mx-4", children: sortedEvents.map((event) => jsxRuntimeExports.jsx(EventItem, { event, onLoadEventData, encryptionKey }, event.eventId)) }) }) }) });
|
|
2471
|
+
}
|
|
2472
|
+
const hasField = (value, key) => key in value;
|
|
2473
|
+
function spanDetailMatchesSelection(detail, resource, resourceId) {
|
|
2474
|
+
if (!detail || typeof detail !== "object" || !resource || !resourceId) {
|
|
2475
|
+
return false;
|
|
2476
|
+
}
|
|
2477
|
+
switch (resource) {
|
|
2478
|
+
case "step":
|
|
2479
|
+
return hasField(detail, "stepId") && detail.stepId === resourceId;
|
|
2480
|
+
case "hook":
|
|
2481
|
+
return hasField(detail, "hookId") && detail.hookId === resourceId;
|
|
2482
|
+
case "sleep":
|
|
2483
|
+
return hasField(detail, "waitId") && detail.waitId === resourceId;
|
|
2484
|
+
case "run":
|
|
2485
|
+
return hasField(detail, "runId") && !("stepId" in detail) && !("hookId" in detail) && !("waitId" in detail) && detail.runId === resourceId;
|
|
2486
|
+
default:
|
|
2487
|
+
return false;
|
|
2488
|
+
}
|
|
2489
|
+
}
|
|
2490
|
+
function mergeSpanDetail(spanData, detail) {
|
|
2491
|
+
if (!detail || typeof detail !== "object") {
|
|
2492
|
+
return spanData;
|
|
2493
|
+
}
|
|
2494
|
+
if (!spanData || typeof spanData !== "object") {
|
|
2495
|
+
return detail;
|
|
2496
|
+
}
|
|
2497
|
+
const merged = { ...detail };
|
|
2498
|
+
for (const [key, value] of Object.entries(spanData)) {
|
|
2499
|
+
if (value !== void 0) {
|
|
2500
|
+
merged[key] = value;
|
|
2501
|
+
}
|
|
2502
|
+
}
|
|
2503
|
+
return merged;
|
|
2467
2504
|
}
|
|
2468
2505
|
function isStep(data) {
|
|
2469
2506
|
return data !== null && typeof data === "object" && "stepId" in data;
|
|
@@ -2554,17 +2591,18 @@ function EntityDetailPanel({ run, onStreamClick, onRunClick, spanDetailData, spa
|
|
|
2554
2591
|
]);
|
|
2555
2592
|
const error = spanDetailError ?? void 0;
|
|
2556
2593
|
const loading = spanDetailLoading ?? false;
|
|
2594
|
+
const matchedSpanDetailData = reactExports.useMemo(() => spanDetailMatchesSelection(spanDetailData, resource, resourceId) ? spanDetailData : null, [spanDetailData, resource, resourceId]);
|
|
2557
2595
|
const hookToken = reactExports.useMemo(() => {
|
|
2558
2596
|
if (resource !== "hook" || !resourceId)
|
|
2559
2597
|
return void 0;
|
|
2560
|
-
if (isHook(
|
|
2561
|
-
return
|
|
2598
|
+
if (isHook(matchedSpanDetailData) && matchedSpanDetailData.token) {
|
|
2599
|
+
return matchedSpanDetailData.token;
|
|
2562
2600
|
}
|
|
2563
2601
|
if (isHook(data) && data.token) {
|
|
2564
2602
|
return data.token;
|
|
2565
2603
|
}
|
|
2566
2604
|
return void 0;
|
|
2567
|
-
}, [resource, resourceId,
|
|
2605
|
+
}, [resource, resourceId, matchedSpanDetailData, data]);
|
|
2568
2606
|
reactExports.useEffect(() => {
|
|
2569
2607
|
if (error && selectedSpan && resource) {
|
|
2570
2608
|
toast2.error(`Failed to load ${resource} details`, {
|
|
@@ -2619,7 +2657,7 @@ function EntityDetailPanel({ run, onStreamClick, onRunClick, spanDetailData, spa
|
|
|
2619
2657
|
}
|
|
2620
2658
|
try {
|
|
2621
2659
|
setResolvingHook(true);
|
|
2622
|
-
const candidate =
|
|
2660
|
+
const candidate = matchedSpanDetailData ?? data;
|
|
2623
2661
|
const hook = isHook(candidate) ? candidate : void 0;
|
|
2624
2662
|
await onResolveHook(hookToken, payload, hook);
|
|
2625
2663
|
toast2.success("Hook resolved", {
|
|
@@ -2637,8 +2675,8 @@ function EntityDetailPanel({ run, onStreamClick, onRunClick, spanDetailData, spa
|
|
|
2637
2675
|
} finally {
|
|
2638
2676
|
setResolvingHook(false);
|
|
2639
2677
|
}
|
|
2640
|
-
}, [onResolveHook, hookToken, resolvingHook,
|
|
2641
|
-
const displayData =
|
|
2678
|
+
}, [onResolveHook, hookToken, resolvingHook, matchedSpanDetailData, data]);
|
|
2679
|
+
const displayData = reactExports.useMemo(() => mergeSpanDetail(data, matchedSpanDetailData), [data, matchedSpanDetailData]);
|
|
2642
2680
|
const moduleSpecifier = reactExports.useMemo(() => {
|
|
2643
2681
|
const displayRecord = displayData;
|
|
2644
2682
|
const displayStepName = displayRecord.stepName;
|
|
@@ -2667,7 +2705,7 @@ function EntityDetailPanel({ run, onStreamClick, onRunClick, spanDetailData, spa
|
|
|
2667
2705
|
}, children: [jsxRuntimeExports.jsx(Zap, { className: "h-4 w-4" }), stoppingSleep ? "Waking up..." : "Wake Up Sleep"] }), resource === "hook" && canResolveHook && jsxRuntimeExports.jsxs("button", { type: "button", onClick: () => setShowResolveHookModal(true), disabled: resolvingHook, className: clsx("flex items-center justify-center gap-2 rounded-md px-3 py-2 text-sm font-medium", "disabled:opacity-50 disabled:cursor-not-allowed transition-colors", resolvingHook ? "opacity-50 cursor-not-allowed" : "cursor-pointer"), style: {
|
|
2668
2706
|
background: "var(--ds-gray-1000)",
|
|
2669
2707
|
color: "var(--ds-background-100)"
|
|
2670
|
-
}, children: [jsxRuntimeExports.jsx(Send, { className: "h-4 w-4" }), "Resolve Hook"] })] })] }), jsxRuntimeExports.jsx(AttributePanel, { data: displayData, moduleSpecifier, expiredAt: run.expiredAt, isLoading: loading, error: error ?? void 0, onStreamClick, onRunClick, onDecrypt, isDecrypting, resource }), resource !== "run" && rawEvents && jsxRuntimeExports.jsx(EventsList, { events: rawEvents, onLoadEventData, encryptionKey })] }) }), jsxRuntimeExports.jsx(ResolveHookModal, { isOpen: showResolveHookModal, onClose: () => setShowResolveHookModal(false), onSubmit: handleResolveHook, isSubmitting: resolvingHook })] });
|
|
2708
|
+
}, children: [jsxRuntimeExports.jsx(Send, { className: "h-4 w-4" }), "Resolve Hook"] })] })] }), jsxRuntimeExports.jsx(AttributePanel, { data: displayData, moduleSpecifier, expiredAt: run.expiredAt, isLoading: loading, error: error ?? void 0, onStreamClick, onRunClick, onDecrypt, isDecrypting, resource }), resource !== "run" && rawEvents && jsxRuntimeExports.jsx(EventsList, { events: rawEvents, onLoadEventData, onStreamClick, onRunClick, encryptionKey })] }) }), jsxRuntimeExports.jsx(ResolveHookModal, { isOpen: showResolveHookModal, onClose: () => setShowResolveHookModal(false), onSubmit: handleResolveHook, isSubmitting: resolvingHook })] });
|
|
2671
2709
|
}
|
|
2672
2710
|
const COL_TEMPLATE = "340px 1px minmax(50px, 1fr)";
|
|
2673
2711
|
const ROWS = [
|
|
@@ -2777,7 +2815,7 @@ const EventRow = ({ span, isSelected, isDimmed, onSelectSpan }) => {
|
|
|
2777
2815
|
const workflowStatus = (_a = span.attributes.data) == null ? void 0 : _a.status;
|
|
2778
2816
|
const isErrored = span.status.code === 2 || workflowStatus === "failed";
|
|
2779
2817
|
const { icon: Icon, className: tagClassName } = getEventStyle(span.resource, isErrored);
|
|
2780
|
-
return jsxRuntimeExports.jsx("li", { className: cn("relative overflow-clip group transition-opacity", ROW_HEIGHT_CLASS, isDimmed && "opacity-35"), role: "treeitem", "aria-selected": isSelected, "aria-expanded": isSelected, "aria-level": 1, onClick: () => onSelectSpan(span.spanId), children: jsxRuntimeExports.jsx("div", { className: "h-full hover:bg-gray-100 group-aria-selected:bg-gray-100 group-aria-selected:hover:bg-gray-200", children: jsxRuntimeExports.jsxs("div", { className: "flex h-full min-w-0 items-center pl-4 pr-2", children: [jsxRuntimeExports.jsxs("div", { className: "flex min-w-0 flex-1 items-center gap-2", children: [jsxRuntimeExports.jsx("span", { className: cn("shrink-0", tagClassName), children: jsxRuntimeExports.jsx(Icon, { className: "w-4 h-4" }) }), jsxRuntimeExports.jsx("span", { className: "min-w-0 text-label-14", children: jsxRuntimeExports.jsx(MiddleTruncate, { value: span.name }) })] }), jsxRuntimeExports.jsx("div", { className: "ml-2 shrink-0", children: jsxRuntimeExports.jsx("span", { className: "text-label-14 text-gray-900 tabular-nums", children:
|
|
2818
|
+
return jsxRuntimeExports.jsx("li", { className: cn("relative overflow-clip group transition-opacity", ROW_HEIGHT_CLASS, isDimmed && "opacity-35"), role: "treeitem", "aria-selected": isSelected, "aria-expanded": isSelected, "aria-level": 1, onClick: () => onSelectSpan(span.spanId), children: jsxRuntimeExports.jsx("div", { className: "h-full hover:bg-gray-100 group-aria-selected:bg-gray-100 group-aria-selected:hover:bg-gray-200", children: jsxRuntimeExports.jsxs("div", { className: "flex h-full min-w-0 items-center pl-4 pr-2", children: [jsxRuntimeExports.jsxs("div", { className: "flex min-w-0 flex-1 items-center gap-2", children: [jsxRuntimeExports.jsx("span", { className: cn("shrink-0", tagClassName), children: jsxRuntimeExports.jsx(Icon, { className: "w-4 h-4" }) }), jsxRuntimeExports.jsx("span", { className: "min-w-0 text-label-14", children: jsxRuntimeExports.jsx(MiddleTruncate, { value: span.name }) })] }), jsxRuntimeExports.jsx("div", { className: "ml-2 shrink-0", children: jsxRuntimeExports.jsx("span", { className: "text-label-14 text-gray-900 tabular-nums", children: formatDurationPrecise(durationMs) }) })] }) }) });
|
|
2781
2819
|
};
|
|
2782
2820
|
const EventList = ({ spans, activeSpanId, searchResult, onSelectSpan }) => {
|
|
2783
2821
|
const listRef = reactExports.useRef(null);
|
package/build/client/assets/{workflow-graph-viewer-C8H50hkM.js → workflow-graph-viewer-CU0UU458.js}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
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 { c as createLucideIcon, O as cn, d as cn$1, H as cva,
|
|
4
|
+
import { c as createLucideIcon, O as cn, d as cn$1, H as cva, aM as composeRefs, F as useComposedRefs, aN as useFloating, aO as offset, aP as shift, aQ as limitShift, aR as flip, aS as size, aT as arrow, aU as hide, aV as autoUpdate, T as Tooltip, a as TooltipTrigger, b as TooltipContent, aW as cancelRun$1, aX as reenqueueRun$1, aY as wakeUpRun$1, aZ as resumeHook$1, a_ as recreateRun$1, w as createContextScope$1, m as useComposedRefs$1, x as createSlot, Z as formatDuration, B as Button, t as toast, q as useId$1, P as Primitive$1, n as composeEventHandlers$1, y as useControllableState$1, l as useCallbackRef$2, I as Presence$1 } from "./mermaid-3ZIDBTTL-C02sm-ZS.js";
|
|
5
5
|
import { r as reactExports, j as jsxRuntimeExports, f as reactDomExports, R as ReactExports, I as React, G as ReactDOM, a as requireReact, g as getDefaultExportFromCjs } from "./index-BXZSIDEp.js";
|
|
6
6
|
import { V as VERCEL_403_ERROR_MESSAGE } from "./index-B6-SzLmT.js";
|
|
7
7
|
function parseName(tag, name) {
|
|
@@ -9176,7 +9176,7 @@ const app = express();
|
|
|
9176
9176
|
app.all(
|
|
9177
9177
|
"/{*splat}",
|
|
9178
9178
|
createRequestHandler({
|
|
9179
|
-
build: () => import("./server-build-
|
|
9179
|
+
build: () => import("./server-build-B9XdaVeE.js").then((n) => n.a0)
|
|
9180
9180
|
})
|
|
9181
9181
|
);
|
|
9182
9182
|
app.use(
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { r as reactExports } from "./app-
|
|
1
|
+
import { U as R, X as Ks, Y as jsxRuntimeExports, Z as Qe } from "./server-build-B9XdaVeE.js";
|
|
2
|
+
import { r as reactExports } from "./app-BKJ-G0q_.js";
|
|
3
3
|
import "node:stream";
|
|
4
4
|
import "util";
|
|
5
5
|
import "crypto";
|