@burdenoff/fluidgrids-fe-sdk 2026.1111.1 → 2026.1111.2
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/dist/{ExecutionDetailPage-DpAYZYx2.js → ExecutionDetailPage-BLQ9mPPO.js} +72 -19
- package/dist/{FailureTriagePanel-BJoO3lsL.js → FailureTriagePanel-DquVHzGD.js} +97 -3
- package/dist/{FluidGridsProvider-CraUhM4E.js → FluidGridsProvider-Bve22Hxu.js} +1 -1
- package/dist/{HistoryPage-CYqyngbp.js → HistoryPage-CCVLBD8a.js} +3 -3
- package/dist/{InsightsPage-DBnOta71.js → InsightsPage-BCRRKaja.js} +352 -72
- package/dist/{ManagedAiPolicyAuthority-D3AYZ5FP.js → ManagedAiPolicyAuthority-PhyUARha.js} +6 -6
- package/dist/{MissingNodesInstallModal-LdB_-hSf.js → MissingNodesInstallModal-CkbBf648.js} +2 -2
- package/dist/{NodesPage-fEUyUKLC.js → NodesPage-XglgbnFQ.js} +2 -2
- package/dist/{PublishCustomNodeAction-C6qkAIjG.js → PublishCustomNodeAction-CtRHgitG.js} +1 -1
- package/dist/{TemplateConfigurationModal-CnqJFt2f.js → TemplateConfigurationModal-DPe69XFz.js} +2 -2
- package/dist/{TemplateDetailPanel-BWnLqcA7.js → TemplateDetailPanel-ahqcAMmr.js} +2 -2
- package/dist/{TemplatesPage-omZCh0-D.js → TemplatesPage-CRIn51Qa.js} +5 -5
- package/dist/{VersionDiffDialog-CLgIj_jc.js → VersionDiffDialog-BejQlKec.js} +1 -1
- package/dist/{WorkflowProposalCard-CV4kV4_Z.js → WorkflowProposalCard-aoR_tT2f.js} +1 -1
- package/dist/{WorkflowSearchRedirect-D34qC1Qm.js → WorkflowSearchRedirect-5x2HX5tx.js} +10 -10
- package/dist/{WorkflowShareDialog-DiD8Gqim.js → WorkflowShareDialog-BONVJpp_.js} +2 -2
- package/dist/{WorkflowsList-Bgsy1OPw.js → WorkflowsList-CDPqtaa3.js} +5 -5
- package/dist/{agent-form-Ci_vxQF5.js → agent-form-m8tkBULw.js} +1 -1
- package/dist/{agentTools-D61qQFfw.js → agentTools-DxuakWxT.js} +2 -2
- package/dist/{codec-client-Cm4GXmJ9.js → codec-client-aN37SXBf.js} +1 -1
- package/dist/executions.js +1 -1
- package/dist/{flow-builder-sG8ZsMYV.js → flow-builder-CmJi6XWS.js} +22 -22
- package/dist/history.js +1 -1
- package/dist/{index-FrgTpWov.d.ts → index-CpEB91Ys.d.ts} +33 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +24 -24
- package/dist/{node-detail-view-pyTakx4l.js → node-detail-view-CAUbejnM.js} +6 -6
- package/dist/{node-endpoint-configs-DXCKkK_9.js → node-endpoint-configs-BgZARXHI.js} +264 -4
- package/dist/nodes.js +1 -1
- package/dist/observability.d.ts +1 -1
- package/dist/observability.js +1 -1
- package/dist/{quick-config-panel-Zpsh2brj.js → quick-config-panel-BxM7KKaU.js} +2 -2
- package/dist/settings.js +1 -1
- package/dist/templates.js +1 -1
- package/dist/{useAgentDefinitions-Czl2aHJb.js → useAgentDefinitions-BKimckKY.js} +1 -1
- package/dist/{useExecutions-CZuOL3RI.js → useExecutions-BIrUuMlR.js} +3 -2
- package/dist/{useObservability-D402nqXD.js → useObservability-cCsmALjS.js} +2 -2
- package/dist/{useRunHistory-CsXQohcH.js → useRunHistory-DG0Nfolg.js} +2 -2
- package/dist/{useWorkflows-UyKrrkX-.js → useWorkflows-CQbVEHc0.js} +2 -2
- package/dist/workflow-builder.js +2 -2
- package/dist/workflows-list.js +1 -1
- package/package.json +1 -1
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
|
|
3
|
-
import { $ as DurableParityRunFieldsDocument,
|
|
4
|
-
import { $t as runDurationMs, Hn as useDurableFunctionNodesEnabled, Pn as runSignalTargets, Qt as nodeStateDurationMs, Un as useDurableParityEnabled, Yn as useWorkflowTestsEnabled, Zt as formatElapsedMs, jn as durableInterfaceOf, kn as canSignalRun, qn as usePhaseCFlags } from "./FluidGridsProvider-
|
|
3
|
+
import { $ as DurableParityRunFieldsDocument, B as DeleteTaskQueueDocument, D as CreateWorkerTokenDocument, E as CreateTaskQueueDocument, En as SetWorkflowRunVersioningOverrideDocument, Fi as throwIfResultError, Gr as WorkflowRunPendingDocument, Jr as WorkflowRunsCountDocument, Mi as describeOperationError, Rn as TaskQueueStatsDocument, V as DeleteWorkerTokenDocument, Vr as WorkflowRunHierarchyDocument, Wr as WorkflowRunMetadataDocument, Xi as DEFAULT_EXECUTIONS_FILTER, Zi as useExecutionsStore, _n as RunLogsDocument, bi as getFluidGridsClient, cr as WorkerTokensDocument, ct as ExplainRunDocument, er as UpdateTaskQueueDocument, hi as WorkflowWorkersDocument, hn as RunLogAppendedDocument, hr as WorkflowBatchOperationUpdatedDocument, on as RotateWorkerTokenDocument, sn as RunAiUsageDocument, wn as SetWorkerTokenConnectionAllowlistDocument, xi as getFluidGridsClientSafe, zi as getFluidGridsConfig, zn as TaskQueuesDocument } from "./node-endpoint-configs-BgZARXHI.js";
|
|
4
|
+
import { $t as runDurationMs, Hn as useDurableFunctionNodesEnabled, Pn as runSignalTargets, Qt as nodeStateDurationMs, Un as useDurableParityEnabled, Yn as useWorkflowTestsEnabled, Zt as formatElapsedMs, jn as durableInterfaceOf, kn as canSignalRun, qn as usePhaseCFlags } from "./FluidGridsProvider-Bve22Hxu.js";
|
|
5
5
|
import { r as useTr } from "./TranslationBridge-CX0OMnyn.js";
|
|
6
|
-
import { h as useWorkflowDefinitions, v as useWorkflowVersions } from "./useWorkflows-
|
|
6
|
+
import { h as useWorkflowDefinitions, v as useWorkflowVersions } from "./useWorkflows-CQbVEHc0.js";
|
|
7
7
|
import { KF as WorkflowUpdateWaitFor, OF as WorkflowQueryRejectCondition, Qu as ErrorType, dF as WorkflowBatchOperationType, fI as useFluidGridsPermission, kF as WorkflowResetType, lI as SdkPermissionButton, oI as FLUIDGRIDS_PERMISSIONS, pP as VersioningBehavior } from "./graphql-types-CulUbQWN.js";
|
|
8
|
-
import { _ as statusCountFilter, c as OPERATORS_BY_TYPE, d as STATUS_COUNT_GROUP_BY, f as callbackTone, g as shortRunId, h as runChainLinks, i as useExecutionStats, l as buildSearchAttributeFilter, m as parseMetadataDefinition, n as useExecution, o as useExecutionsWithStore, p as overrideRequestOf, r as useExecutionActions, s as EMPTY_SEARCH_FILTER, t as useAutoRefresh, u as searchFilterConflicts, v as statusCountsOf, y as validateDateRange } from "./useExecutions-
|
|
8
|
+
import { _ as statusCountFilter, c as OPERATORS_BY_TYPE, d as STATUS_COUNT_GROUP_BY, f as callbackTone, g as shortRunId, h as runChainLinks, i as useExecutionStats, l as buildSearchAttributeFilter, m as parseMetadataDefinition, n as useExecution, o as useExecutionsWithStore, p as overrideRequestOf, r as useExecutionActions, s as EMPTY_SEARCH_FILTER, t as useAutoRefresh, u as searchFilterConflicts, v as statusCountsOf, y as validateDateRange } from "./useExecutions-BIrUuMlR.js";
|
|
9
9
|
import { n as useFluidGridsPageControls } from "./pageControlsBridge-0pX9s-3k.js";
|
|
10
10
|
import { t as executionsControls } from "./pageControlSpecs-DZJ9K37m.js";
|
|
11
11
|
import { t as FluidGridsDocsLink } from "./FluidGridsDocsLink-iRiufGc2.js";
|
|
12
|
-
import { $ as startBatchTerminate, A as fetchBatchOperation, B as jsonArg, F as fetchRunControlFields, G as resetRun, I as fetchRunHistoryArchive, K as resetRunToLastCleanTask, L as fetchRunUpdate, N as fetchCodecServerSettings, O as failActivityById, P as fetchPauseRules, Q as startBatchOperation, R as fetchSearchAttributes, U as queryRun, V as pauseActivities, W as resetActivities, X as sendRunUpdate, Z as startBatchExport, _ as useResource, at as readTyped, c as FieldError, d as NativeSelect, f as RUN_CONTROL_DIALOG_STYLE, g as parseJsonObjectInput, h as parseJsonInput, it as upsertRunSearchAttributes, j as fetchBatchOperations, l as JsonBlock, m as newRunControlId, ot as writeTyped, p as StatusPill, q as revokeSignalToken, rt as updateActivityOptions, s as isAgentNodeType, tt as unpauseActivities, u as JsonField, w as createSignalToken, x as completeActivityById, y as cancelBatchOperation, z as fetchSignalTokens } from "./agent-form-
|
|
13
|
-
import { C as useAvailableTags, _ as buildNodeDisplayMap, b as EntityTagPicker, n as useWorkflowProposal, o as canSaveRunAsTestCase, r as saveRunAsTestCase, t as WorkflowProposalCard, v as formatRunVersion, y as nodeDisplayTitle } from "./WorkflowProposalCard-
|
|
12
|
+
import { $ as startBatchTerminate, A as fetchBatchOperation, B as jsonArg, F as fetchRunControlFields, G as resetRun, I as fetchRunHistoryArchive, K as resetRunToLastCleanTask, L as fetchRunUpdate, N as fetchCodecServerSettings, O as failActivityById, P as fetchPauseRules, Q as startBatchOperation, R as fetchSearchAttributes, U as queryRun, V as pauseActivities, W as resetActivities, X as sendRunUpdate, Z as startBatchExport, _ as useResource, at as readTyped, c as FieldError, d as NativeSelect, f as RUN_CONTROL_DIALOG_STYLE, g as parseJsonObjectInput, h as parseJsonInput, it as upsertRunSearchAttributes, j as fetchBatchOperations, l as JsonBlock, m as newRunControlId, ot as writeTyped, p as StatusPill, q as revokeSignalToken, rt as updateActivityOptions, s as isAgentNodeType, tt as unpauseActivities, u as JsonField, w as createSignalToken, x as completeActivityById, y as cancelBatchOperation, z as fetchSignalTokens } from "./agent-form-m8tkBULw.js";
|
|
13
|
+
import { C as useAvailableTags, _ as buildNodeDisplayMap, b as EntityTagPicker, n as useWorkflowProposal, o as canSaveRunAsTestCase, r as saveRunAsTestCase, t as WorkflowProposalCard, v as formatRunVersion, y as nodeDisplayTitle } from "./WorkflowProposalCard-aoR_tT2f.js";
|
|
14
14
|
import { t as AiCreditBalanceSlot } from "./aiCreditsBridge-BuE92tKo.js";
|
|
15
|
-
import { a as
|
|
16
|
-
import { a as
|
|
17
|
-
import { a as useDurableRunFields, i as useDeterminismStatus, n as SignalRunDialog, o as useRunStackTrace, r as terminateDurableRun, s as RunHistoryView, t as useRunHistory } from "./useRunHistory-
|
|
15
|
+
import { a as fetchRunFailureClusters, i as dismissRunFailureCluster, o as runListFilterFromSearch, r as OPEN_STATUSES, s as runListLinkKey, t as BUCKET_LABELS } from "./FailureTriagePanel-DquVHzGD.js";
|
|
16
|
+
import { a as encodedPayloadBytes, f as EffectBadge, h as useRunPolicyDecisions, i as decodePayloads, l as formatBudgetUsd, n as checkCodecServerUrl, o as isEncodedPayload, r as containsEncodedPayload, t as CodecServerError } from "./codec-client-aN37SXBf.js";
|
|
17
|
+
import { a as useDurableRunFields, i as useDeterminismStatus, n as SignalRunDialog, o as useRunStackTrace, r as terminateDurableRun, s as RunHistoryView, t as useRunHistory } from "./useRunHistory-DG0Nfolg.js";
|
|
18
18
|
import { a as formatTokens, o as modelLabel, r as aiCost } from "./ai-usage-CK61EZWc.js";
|
|
19
19
|
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
20
20
|
import { Link, useNavigate, useParams, useSearchParams } from "react-router";
|
|
@@ -239,6 +239,7 @@ function countActiveFilters(filter, parityEnabled) {
|
|
|
239
239
|
filter.durationMaxSeconds !== null,
|
|
240
240
|
filter.errorType !== "all",
|
|
241
241
|
filter.nodeId !== "",
|
|
242
|
+
filter.failedNodeType !== "",
|
|
242
243
|
filter.tagId !== "",
|
|
243
244
|
parityEnabled && filter.workflowId.trim() !== ""
|
|
244
245
|
].filter(Boolean).length;
|
|
@@ -280,6 +281,36 @@ function TagFilterSelect({ value, onChange, className }) {
|
|
|
280
281
|
}
|
|
281
282
|
|
|
282
283
|
// src/modules/executions/components/ExecutionFilters.tsx
|
|
284
|
+
/**
|
|
285
|
+
* An error type set by a link (Insights, BOFF-9974) that the dropdown offers
|
|
286
|
+
* no option for, so it still shows as selected.
|
|
287
|
+
*/
|
|
288
|
+
function LinkedErrorTypeOption({ errorType, offered }) {
|
|
289
|
+
if (errorType === "all" || offered.some(({ value }) => value === errorType)) return null;
|
|
290
|
+
return /* @__PURE__ */ jsx("option", {
|
|
291
|
+
value: errorType,
|
|
292
|
+
children: errorType
|
|
293
|
+
});
|
|
294
|
+
}
|
|
295
|
+
/** The failed-node-type filter (BOFF-9974), set only by links, with its clear button. */
|
|
296
|
+
function FailedNodeTypeChip({ nodeType, onClear }) {
|
|
297
|
+
const tr = useTr();
|
|
298
|
+
if (!nodeType) return null;
|
|
299
|
+
return /* @__PURE__ */ jsxs("span", {
|
|
300
|
+
className: "inline-flex items-center gap-1.5 rounded-lg border border-border-default bg-bg-surface px-3 py-2 text-sm text-text-primary",
|
|
301
|
+
"data-testid": "runs-failed-node-type-filter",
|
|
302
|
+
children: [tr("fluidgrids.executions.executionFilters.failedNodeType", "Failed node: {{nodeType}}", { nodeType }), /* @__PURE__ */ jsx("button", {
|
|
303
|
+
type: "button",
|
|
304
|
+
onClick: onClear,
|
|
305
|
+
"aria-label": tr("fluidgrids.executions.executionFilters.clearFailedNodeType", "Remove the failed node filter"),
|
|
306
|
+
className: "text-text-secondary hover:text-text-primary",
|
|
307
|
+
children: /* @__PURE__ */ jsx(Icon, {
|
|
308
|
+
icon: "mdi:close",
|
|
309
|
+
width: 14
|
|
310
|
+
})
|
|
311
|
+
})]
|
|
312
|
+
});
|
|
313
|
+
}
|
|
283
314
|
function ExecutionFilters({ workflows = [], onRefresh }) {
|
|
284
315
|
const tr = useTr();
|
|
285
316
|
const statusOptions = useMemo(() => [
|
|
@@ -376,8 +407,8 @@ function ExecutionFilters({ workflows = [], onRefresh }) {
|
|
|
376
407
|
label: tr("fluidgrids.executions.executionFilters.dateCustomRange", "Custom Range")
|
|
377
408
|
}
|
|
378
409
|
];
|
|
379
|
-
const { filter, setStatusFilter, setWorkflowFilter, setDateRange, setSearchQuery, setTriggerTypeFilter, setDurationFilter, setErrorTypeFilter, setNodeFilter, setTagFilter, resetFilters, autoRefresh, setAutoRefresh } = useExecutionsStore();
|
|
380
|
-
const [showCustomDate, setShowCustomDate] = useState(
|
|
410
|
+
const { filter, setStatusFilter, setWorkflowFilter, setDateRange, setSearchQuery, setTriggerTypeFilter, setDurationFilter, setErrorTypeFilter, setNodeFilter, setFailedNodeTypeFilter, setTagFilter, resetFilters, autoRefresh, setAutoRefresh } = useExecutionsStore();
|
|
411
|
+
const [showCustomDate, setShowCustomDate] = useState(() => filter.dateRange.preset === "custom");
|
|
381
412
|
const handleDatePresetChange = useCallback((preset) => {
|
|
382
413
|
const now = /* @__PURE__ */ new Date();
|
|
383
414
|
let start = null;
|
|
@@ -558,13 +589,24 @@ function ExecutionFilters({ workflows = [], onRefresh }) {
|
|
|
558
589
|
value: filter.errorType,
|
|
559
590
|
onChange: (e) => setErrorTypeFilter(e.target.value),
|
|
560
591
|
className: "px-3 py-2 bg-bg-surface border border-border-default rounded-lg text-text-primary focus:outline-none focus:ring-2 focus:ring-action-primary-bg scheme-normal dark:scheme-dark",
|
|
561
|
-
children: [
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
592
|
+
children: [
|
|
593
|
+
/* @__PURE__ */ jsx("option", {
|
|
594
|
+
value: "all",
|
|
595
|
+
children: tr("fluidgrids.executions.executionFilters.allErrors", "All error types")
|
|
596
|
+
}),
|
|
597
|
+
errorOptions.map(({ value, label }) => /* @__PURE__ */ jsx("option", {
|
|
598
|
+
value,
|
|
599
|
+
children: label
|
|
600
|
+
}, value)),
|
|
601
|
+
/* @__PURE__ */ jsx(LinkedErrorTypeOption, {
|
|
602
|
+
errorType: filter.errorType,
|
|
603
|
+
offered: errorOptions
|
|
604
|
+
})
|
|
605
|
+
]
|
|
606
|
+
}),
|
|
607
|
+
/* @__PURE__ */ jsx(FailedNodeTypeChip, {
|
|
608
|
+
nodeType: filter.failedNodeType,
|
|
609
|
+
onClear: () => setFailedNodeTypeFilter("")
|
|
568
610
|
}),
|
|
569
611
|
/* @__PURE__ */ jsx("input", {
|
|
570
612
|
type: "text",
|
|
@@ -3577,10 +3619,21 @@ var ExecutionsListPage_exports = /* @__PURE__ */ __exportAll({ ExecutionsListPag
|
|
|
3577
3619
|
function ExecutionsListPage() {
|
|
3578
3620
|
const tr = useTr();
|
|
3579
3621
|
const navigate = useNavigate();
|
|
3580
|
-
const { viewMode, setViewMode, setSelectedExecution, selection, clearSelection, setStatusFilter, setWorkflowFilter, setWorkflowIdFilter, filter, autoRefresh, autoRefreshInterval } = useExecutionsStore();
|
|
3622
|
+
const { viewMode, setViewMode, setSelectedExecution, selection, clearSelection, setStatusFilter, setWorkflowFilter, setWorkflowIdFilter, updateFilter, filter, autoRefresh, autoRefreshInterval } = useExecutionsStore();
|
|
3581
3623
|
const [searchParams] = useSearchParams();
|
|
3582
3624
|
const workflowKeyParam = searchParams.get("workflowKey") ?? "";
|
|
3583
3625
|
const lastWorkflowKeyParam = useRef(null);
|
|
3626
|
+
const linkKey = runListLinkKey(searchParams);
|
|
3627
|
+
const [appliedLinkKey, setAppliedLinkKey] = useState(null);
|
|
3628
|
+
if (appliedLinkKey !== linkKey) {
|
|
3629
|
+
setAppliedLinkKey(linkKey);
|
|
3630
|
+
const linked = runListFilterFromSearch(searchParams);
|
|
3631
|
+
if (linked) updateFilter({
|
|
3632
|
+
...DEFAULT_EXECUTIONS_FILTER,
|
|
3633
|
+
...linked,
|
|
3634
|
+
workflowKey: workflowKeyParam
|
|
3635
|
+
});
|
|
3636
|
+
}
|
|
3584
3637
|
if (lastWorkflowKeyParam.current !== workflowKeyParam) {
|
|
3585
3638
|
lastWorkflowKeyParam.current = workflowKeyParam;
|
|
3586
3639
|
if (useExecutionsStore.getState().filter.workflowKey !== workflowKeyParam) setWorkflowFilter(workflowKeyParam);
|
|
@@ -1,12 +1,106 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { Cn as SetRunFailureTriageEnabledDocument, Fi as throwIfResultError, X as DismissRunFailureClusterDocument, bi as getFluidGridsClient, dn as RunFailureClustersDocument, fn as RunFailureTriageSettingsDocument, ft as FgTriageFailedRunsDocument } from "./node-endpoint-configs-BgZARXHI.js";
|
|
2
3
|
import { r as useTr } from "./TranslationBridge-CX0OMnyn.js";
|
|
3
|
-
import {
|
|
4
|
-
import { cD as RunFailureClusterStatus } from "./graphql-types-CulUbQWN.js";
|
|
4
|
+
import { Qu as ErrorType, cD as RunFailureClusterStatus } from "./graphql-types-CulUbQWN.js";
|
|
5
5
|
import { useCallback, useEffect, useState } from "react";
|
|
6
6
|
import { Icon } from "@iconify/react";
|
|
7
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
8
|
import { Button } from "@burdenoff/fe-libs/ui";
|
|
9
9
|
|
|
10
|
+
// src/modules/executions/utils/run-list-links.ts
|
|
11
|
+
/**
|
|
12
|
+
* Links into the Runs list that carry its filters in the query string
|
|
13
|
+
* (BOFF-9974), and the reading of them on the list.
|
|
14
|
+
*
|
|
15
|
+
* Insights' error panel links each failing node, error type, workflow and day
|
|
16
|
+
* to "the failed runs behind it". The two halves live together so a link and
|
|
17
|
+
* the filter it opens cannot drift apart.
|
|
18
|
+
*
|
|
19
|
+
* ../runs?status=FAILED&failedNodeType=internal%3Ahttp&from=…&to=…
|
|
20
|
+
*
|
|
21
|
+
* `from` / `to` are ISO instants (the list's custom date range); `workflowKey`
|
|
22
|
+
* is read by the list on its own, as it always was.
|
|
23
|
+
*/
|
|
24
|
+
/** The filters a link may set; `workflowKey` stays with the list's own sync. */
|
|
25
|
+
const RUN_LIST_LINK_PARAMS = [
|
|
26
|
+
"status",
|
|
27
|
+
"errorType",
|
|
28
|
+
"failedNodeType",
|
|
29
|
+
"from",
|
|
30
|
+
"to"
|
|
31
|
+
];
|
|
32
|
+
const RUN_STATUSES = [
|
|
33
|
+
"PENDING",
|
|
34
|
+
"RUNNING",
|
|
35
|
+
"COMPLETED",
|
|
36
|
+
"FAILED",
|
|
37
|
+
"CANCELLED",
|
|
38
|
+
"WAITING",
|
|
39
|
+
"TERMINATED"
|
|
40
|
+
];
|
|
41
|
+
function isRunStatus(value) {
|
|
42
|
+
return RUN_STATUSES.some((status) => status === value);
|
|
43
|
+
}
|
|
44
|
+
/** A classification the service knows (its ErrorType enum). */
|
|
45
|
+
function isErrorType(value) {
|
|
46
|
+
return Object.values(ErrorType).some((type) => type === value);
|
|
47
|
+
}
|
|
48
|
+
function validDate(value) {
|
|
49
|
+
return value instanceof Date && Number.isFinite(value.getTime());
|
|
50
|
+
}
|
|
51
|
+
/** The Runs list with `link`'s filters, relative to an SDK page route. */
|
|
52
|
+
function runListPath(link) {
|
|
53
|
+
const params = new URLSearchParams();
|
|
54
|
+
if (link.workflowKey) params.set("workflowKey", link.workflowKey);
|
|
55
|
+
if (link.status) params.set("status", link.status);
|
|
56
|
+
if (link.errorType) params.set("errorType", link.errorType);
|
|
57
|
+
if (link.failedNodeType) params.set("failedNodeType", link.failedNodeType);
|
|
58
|
+
if (validDate(link.from)) params.set("from", link.from.toISOString());
|
|
59
|
+
if (validDate(link.to)) params.set("to", link.to.toISOString());
|
|
60
|
+
const query = params.toString();
|
|
61
|
+
return query ? `../runs?${query}` : "../runs";
|
|
62
|
+
}
|
|
63
|
+
function parseDate(value) {
|
|
64
|
+
if (!value) return null;
|
|
65
|
+
const date = new Date(value);
|
|
66
|
+
return Number.isFinite(date.getTime()) ? date : null;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* The list filters a link's query string sets, or null when it carries none.
|
|
70
|
+
* Unknown values are ignored rather than trusted (the URL is user input); a
|
|
71
|
+
* reversed range is dropped, like the custom range inputs do.
|
|
72
|
+
*/
|
|
73
|
+
function runListFilterFromSearch(params) {
|
|
74
|
+
const filter = {};
|
|
75
|
+
const status = params.get("status")?.trim().toUpperCase() ?? "";
|
|
76
|
+
if (isRunStatus(status)) filter.status = status;
|
|
77
|
+
const errorType = params.get("errorType")?.trim().toUpperCase() ?? "";
|
|
78
|
+
if (isErrorType(errorType)) filter.errorType = errorType;
|
|
79
|
+
const failedNodeType = params.get("failedNodeType")?.trim() ?? "";
|
|
80
|
+
if (failedNodeType) filter.failedNodeType = failedNodeType;
|
|
81
|
+
const from = parseDate(params.get("from"));
|
|
82
|
+
const to = parseDate(params.get("to"));
|
|
83
|
+
if ((from || to) && !(from && to && from.getTime() > to.getTime())) filter.dateRange = {
|
|
84
|
+
start: from,
|
|
85
|
+
end: to,
|
|
86
|
+
preset: "custom"
|
|
87
|
+
};
|
|
88
|
+
return Object.keys(filter).length > 0 ? filter : null;
|
|
89
|
+
}
|
|
90
|
+
/** A stable key of the link parameters in `params`, to apply each link once. */
|
|
91
|
+
function runListLinkKey(params) {
|
|
92
|
+
return RUN_LIST_LINK_PARAMS.map((name) => params.get(name) ?? "").join("|");
|
|
93
|
+
}
|
|
94
|
+
/** The UTC day [00:00, 24:00) of an ISO calendar date such as "2026-11-10". */
|
|
95
|
+
function utcDay(date) {
|
|
96
|
+
const from = /* @__PURE__ */ new Date(`${date}T00:00:00.000Z`);
|
|
97
|
+
if (!Number.isFinite(from.getTime())) return null;
|
|
98
|
+
return {
|
|
99
|
+
from,
|
|
100
|
+
to: /* @__PURE__ */ new Date(from.getTime() + 864e5 - 1)
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
|
|
10
104
|
// src/modules/observability/hooks/useFailureTriage.ts
|
|
11
105
|
/**
|
|
12
106
|
* Failure triage (BOFF-3698): the opt-in, the caller's failure clusters and a
|
|
@@ -307,4 +401,4 @@ function FailureTriagePanel({ canManage, canRetry, onOpenRun, onRetry }) {
|
|
|
307
401
|
});
|
|
308
402
|
}
|
|
309
403
|
|
|
310
|
-
export { fetchRunFailureClusters as a, dismissRunFailureCluster as i, FailureTriagePanel as n, OPEN_STATUSES as r, BUCKET_LABELS as t };
|
|
404
|
+
export { fetchRunFailureClusters as a, runListPath as c, dismissRunFailureCluster as i, utcDay as l, FailureTriagePanel as n, runListFilterFromSearch as o, OPEN_STATUSES as r, runListLinkKey as s, BUCKET_LABELS as t };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
|
|
3
|
-
import { Ai as
|
|
3
|
+
import { Ai as emitOperationErrorEvent, Ci as resetFluidGridsClient, Ei as createFluidGridsTokenRefreshLink, Et as NodeManifestDocument, F as CreateWorkflowVersionDocument, Fi as throwIfResultError, Hi as resetFluidGridsExecutionState, Hn as TriggerWorkflowDocument, Ii as createLiveTokenReader, Mi as describeOperationError, O as CreateWorkflowDefinitionDocument, Ti as waitForFluidGridsClient, Ui as setFluidGridsConfig, Vi as resetFluidGridsConfig, Wi as validateTrustedOrigin, bi as getFluidGridsClient, br as WorkflowDefinitionDocument, it as ExecutionDetailDocument, ji as emitRunCompletedOnce, ki as emitFluidGridsEvent, nt as EventRegistrationsDocument, pn as RunFromNodeDocument, rt as ExecuteStepDocument, t as fetchAllNodeEndpointConfigs, tr as UpdateWorkflowDefinitionDocument, wi as setFluidGridsClient, xi as getFluidGridsClientSafe, yi as createFluidGridsClient, zi as getFluidGridsConfig, zr as WorkflowRunDocument } from "./node-endpoint-configs-BgZARXHI.js";
|
|
4
4
|
import { A as nodeAccent, C as nodeAdaptersOf, D as NodeCard, E as resolveOutputHandles, H as useFlowStore, I as partitionStickyNotes, L as resolveStickyColor, N as DEFAULT_STICKY_COLOR, O as NodeCardBody, P as STICKY_COLORS, R as stickySurfaceStyle, T as resolveInputHandles, V as STICKY_NOTE_TYPE, W as isNodeTrigger, _ as LogicNodeCard, b as alignPlainOutputEdges, i as WAIT_FOR_SIGNAL_NODE_TYPE, j as NodeTypeIcon, k as NodeCardHeader, l as interfaceFields, m as readSignalName, n as synchronizeOperationUpdate, p as readCodeWorkflowState, r as CODE_WORKFLOW_NODE_TYPE, t as resolveOperationName, u as interfaceHandlers, v as InputHandles, w as outputHandlesSpacerHeight, x as hasNodeManifest, y as OutputHandles } from "./node-operation-selection-61d6U9qo.js";
|
|
5
5
|
import { n as FluidGridsTranslationProvider, r as useTr, t as ENGLISH_FALLBACK_TRANSLATOR } from "./TranslationBridge-CX0OMnyn.js";
|
|
6
6
|
import { createContext, memo, useCallback, useContext, useEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { d as useRestoreWorkflowVersion, h as useWorkflowDefinitions } from "./useWorkflows-
|
|
3
|
-
import { i as versionsOfWorkflow, t as VersionDiffDialog } from "./VersionDiffDialog-
|
|
2
|
+
import { d as useRestoreWorkflowVersion, h as useWorkflowDefinitions } from "./useWorkflows-CQbVEHc0.js";
|
|
3
|
+
import { i as versionsOfWorkflow, t as VersionDiffDialog } from "./VersionDiffDialog-BejQlKec.js";
|
|
4
4
|
import { r as useTr } from "./TranslationBridge-CX0OMnyn.js";
|
|
5
|
-
import {
|
|
5
|
+
import { zi as getFluidGridsConfig } from "./node-endpoint-configs-BgZARXHI.js";
|
|
6
6
|
import { n as useFluidGridsPageControls } from "./pageControlsBridge-0pX9s-3k.js";
|
|
7
7
|
import { n as historyControls } from "./pageControlSpecs-DZJ9K37m.js";
|
|
8
8
|
import { t as FluidGridsDocsLink } from "./FluidGridsDocsLink-iRiufGc2.js";
|