@burdenoff/fluidgrids-fe-sdk 2026.1102.3 → 2026.1103.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-XHII23QR.js → ExecutionDetailPage-JRBUIU5J.js} +9 -9
- package/dist/{ExecutionsListPage-GTCSYSC6.js → ExecutionsListPage-RC342VCZ.js} +5 -5
- package/dist/{WorkflowBuilder-ZIXEU7DQ.js → WorkflowBuilder-TCS4JELN.js} +10 -10
- package/dist/{WorkflowsList-NYSQEZWU.js → WorkflowsList-6ES2EDGZ.js} +6 -6
- package/dist/{agentTools-PA62A53S.js → agentTools-4JT66UQB.js} +3 -3
- package/dist/{chunk-JCHE4V55.js → chunk-52OIBKPO.js} +1 -1
- package/dist/{chunk-QAXP5HON.js → chunk-6WPW42TX.js} +1 -1
- package/dist/chunk-742OIXMP.js +18 -0
- package/dist/{chunk-B2DNUVKW.js → chunk-BP6YPKNK.js} +4 -4
- package/dist/{chunk-DLKGWGRN.js → chunk-BVCMAGLJ.js} +1 -1
- package/dist/{chunk-OR7KZZ2D.js → chunk-EKB3EIIC.js} +1 -1
- package/dist/{chunk-UETHT3KG.js → chunk-G2FPOWN5.js} +1 -1
- package/dist/{chunk-A4XNCGWT.js → chunk-H2KIJEYM.js} +1 -1
- package/dist/{chunk-7SY2SL5Y.js → chunk-ILPQAQB5.js} +5 -5
- package/dist/{chunk-ZTJX5ONT.js → chunk-K6HD5GC7.js} +2 -2
- package/dist/{chunk-MY752OLT.js → chunk-LTINUSLK.js} +49 -208
- package/dist/{chunk-XNVYPEBO.js → chunk-LVTOWRAM.js} +2 -2
- package/dist/{chunk-7JLLH4YE.js → chunk-M23H4LSY.js} +3 -3
- package/dist/{chunk-OZCJHPMH.js → chunk-MY4HMUWU.js} +3 -3
- package/dist/{chunk-PBCBDSVA.js → chunk-N6XYVO7N.js} +1 -1
- package/dist/{chunk-3Y4266JL.js → chunk-OBWB73Y7.js} +1 -1
- package/dist/{chunk-EFOJEQDS.js → chunk-QXACKASD.js} +1 -1
- package/dist/{chunk-P6IRD5SA.js → chunk-RFOKJE3A.js} +8 -8
- package/dist/{chunk-YVOHCC7J.js → chunk-SHYDX2LO.js} +4 -4
- package/dist/{chunk-4FDMLKLL.js → chunk-SIVS3XSV.js} +1 -1
- package/dist/{chunk-W74MXVFX.js → chunk-SUIH376K.js} +1 -1
- package/dist/{chunk-CXNJKM4D.js → chunk-UH7JKPUF.js} +1 -1
- package/dist/{chunk-37BKVPO7.js → chunk-UMULDJCK.js} +5 -5
- package/dist/{chunk-BDBSRN2O.js → chunk-UW5GY6LQ.js} +9 -5
- package/dist/{chunk-A7QPQ6MO.js → chunk-VQZEGCRF.js} +1 -1
- package/dist/{chunk-6VODFT2Q.js → chunk-Y7BNGLRI.js} +4 -4
- package/dist/{chunk-TJ2PFY7I.js → chunk-Y7MQ3LYB.js} +1 -1
- package/dist/{chunk-23LYGZ27.js → chunk-YC76QFWZ.js} +353 -7
- package/dist/executions.js +10 -10
- package/dist/history.js +4 -4
- package/dist/index.js +38 -38
- package/dist/{node-detail-view-KET5DNEH.js → node-detail-view-CMQ7DUYM.js} +7 -7
- package/dist/observability.js +4 -4
- package/dist/{quick-config-panel-L6CTZQUG.js → quick-config-panel-NJ72QZPM.js} +4 -4
- package/dist/settings.js +5 -5
- package/dist/templates.js +9 -9
- package/dist/workflow-builder.js +11 -11
- package/dist/workflows-list.js +6 -6
- package/package.json +1 -1
- package/dist/chunk-OUYEMZT6.js +0 -185
|
@@ -3,17 +3,17 @@ import { templatePreview } from './chunk-B6CCE2RW.js';
|
|
|
3
3
|
import { Input } from './chunk-IEVSFCFS.js';
|
|
4
4
|
import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter as DialogFooter$1 } from './chunk-YXMFRQYV.js';
|
|
5
5
|
import { Badge as Badge$1, Button } from './chunk-BQXVT32O.js';
|
|
6
|
-
import { LogsPanel } from './chunk-
|
|
7
|
-
import {
|
|
8
|
-
import { QuotaExhaustedDialog, useWorkflowCodeExport, orderedExportFiles, fileBaseName, downloadWorkflowCodeExport, isLosslessReport, sortFidelityItems, isLossyFidelityItem, lineOfNode } from './chunk-
|
|
9
|
-
import { emptyTestCaseDraft, EntityTagPicker, useWorkflowProposal, WorkflowProposalCard, useWorkflowTests, pinnedOutputsFromCanvas, enabledCaseIds, isTestRunOpen, MAX_TEST_CASES, draftFromTestCase, testRunSummaryText, testStatusLabel, TEST_STATUS_TONE_CLASS, testStatusTone, MAX_CASE_NAME, nextSortOrder, draftToInput } from './chunk-
|
|
6
|
+
import { LogsPanel } from './chunk-SUIH376K.js';
|
|
7
|
+
import { computeAttachPosition, firstInputHandleId } from './chunk-742OIXMP.js';
|
|
8
|
+
import { QuotaExhaustedDialog, useWorkflowCodeExport, orderedExportFiles, fileBaseName, downloadWorkflowCodeExport, isLosslessReport, sortFidelityItems, isLossyFidelityItem, lineOfNode } from './chunk-SIVS3XSV.js';
|
|
9
|
+
import { emptyTestCaseDraft, EntityTagPicker, useWorkflowProposal, WorkflowProposalCard, useWorkflowTests, pinnedOutputsFromCanvas, enabledCaseIds, isTestRunOpen, MAX_TEST_CASES, draftFromTestCase, testRunSummaryText, testStatusLabel, TEST_STATUS_TONE_CLASS, testStatusTone, MAX_CASE_NAME, nextSortOrder, draftToInput } from './chunk-OBWB73Y7.js';
|
|
10
10
|
import { buildNodeDisplayMap } from './chunk-PC3CICOW.js';
|
|
11
11
|
import { AiCreditBalanceSlot } from './chunk-Y53CVZVV.js';
|
|
12
|
-
import { countLifecycle, VersionLifecycleBar, VersionDiffDialog } from './chunk-
|
|
13
|
-
import { useRestoreWorkflowVersion, useWorkflowVersions, useActivateWorkflow, useDeleteWorkflow, useDeactivateWorkflow } from './chunk-
|
|
12
|
+
import { countLifecycle, VersionLifecycleBar, VersionDiffDialog } from './chunk-N6XYVO7N.js';
|
|
13
|
+
import { useRestoreWorkflowVersion, useWorkflowVersions, useActivateWorkflow, useDeleteWorkflow, useDeactivateWorkflow } from './chunk-QXACKASD.js';
|
|
14
14
|
import { useRequestedProposal } from './chunk-GLYINMOR.js';
|
|
15
15
|
import { FluidGridsDocsLink } from './chunk-4VJ3MDOV.js';
|
|
16
|
-
import { leaseCallQueue, RUNS_QUOTA_NAME, useFlowStore, BILLING_PLANS_PATH, emitUpgradeClicked, FluidGridsContext, throwIfResultError, emitWorkflowCreated, emitTemplateUsed, describeOperationError, ensureNodeConfigsLoaded, NODE_CONFIGS, useEditLeaseStore, useEditLeaseLocked, registerWorkflowNodeTypes, emitNodeInstalled, useNodeExecution, usePaletteGates, onNodeTypesUpdate, NODE_TYPES, getNodeMetadata, useIsValidConnection, refetchStoreNodes, AVAILABLE_NODES, EDIT_SESSION_ID, useInsertNode, NODE_TYPE_DRAG_DATA_FORMAT, NODE_OPERATION_DRAG_DATA_FORMAT, useSaveStatusStore, useDurableFunctionNodesEnabled, CODE_WORKFLOW_NODE_TYPE, bannerOf, useSaveWorkflow, STICKY_NOTE_TYPE, filterPaletteNodes, useFluidGridsAnalytics, sessionBeforeReload, forgetSessionForReload, releasesOnClose, isLocked, workflowFingerprint, buildStickyNode, NODES_METADATA, NodeTypeIcon, shouldReleaseForIdle, tickAction, rememberSessionForReload, buildOperationSeed, useDurableParityEnabled, useConnections, ConnectionFormDialog, useWorkflowTestsEnabled, useFluidGridsFlag, FLUIDGRIDS_FLAGS, saveIndicatorOf, inAppLeaveTarget, isNodeConfigsInitialized, phaseAfterAcquire, rememberOwnStatusChange, getNodeDetail, isImageIcon, NODES, synchronizeOperationUpdate, NodePropertyPanel, loadDefinitionJson, canAutosave, isNodeTypeHiddenFromPalette, isTriggerOperation, canRenderOperationPanel, resolveOperationName, ConnectionSelector,
|
|
16
|
+
import { leaseCallQueue, RUNS_QUOTA_NAME, useFlowStore, BILLING_PLANS_PATH, emitUpgradeClicked, FluidGridsContext, throwIfResultError, emitWorkflowCreated, emitTemplateUsed, describeOperationError, ensureNodeConfigsLoaded, NODE_CONFIGS, useEditLeaseStore, useEditLeaseLocked, registerWorkflowNodeTypes, emitNodeInstalled, useNodeExecution, usePaletteGates, onNodeTypesUpdate, NODE_TYPES, getNodeMetadata, useIsValidConnection, refetchStoreNodes, AVAILABLE_NODES, EDIT_SESSION_ID, useInsertNode, NODE_TYPE_DRAG_DATA_FORMAT, NODE_OPERATION_DRAG_DATA_FORMAT, useSaveStatusStore, useManualSave, useDurableFunctionNodesEnabled, CODE_WORKFLOW_NODE_TYPE, bannerOf, editStateFor, useSaveWorkflow, STICKY_NOTE_TYPE, filterPaletteNodes, useFluidGridsAnalytics, useGuardedNavigate, sessionBeforeReload, forgetSessionForReload, releasesOnClose, touchesSavedFields, isLocked, watchLeavingLosesChanges, workflowFingerprint, savedEverythingBeforeLeaving, buildStickyNode, NODES_METADATA, NodeTypeIcon, shouldReleaseForIdle, tickAction, rememberSessionForReload, leavingLosesChanges, buildOperationSeed, useDurableParityEnabled, useConnections, ConnectionFormDialog, useWorkflowTestsEnabled, useFluidGridsFlag, FLUIDGRIDS_FLAGS, useFlowValidator, saveIndicatorOf, departingSave, inAppLeaveTarget, isNodeConfigsInitialized, phaseAfterAcquire, rememberOwnStatusChange, useRunGuard, getNodeDetail, isImageIcon, NODES, synchronizeOperationUpdate, NodePropertyPanel, loadDefinitionJson, canAutosave, isNodeTypeHiddenFromPalette, isTriggerOperation, canRenderOperationPanel, resolveOperationName, ConnectionSelector, AUTOSAVE_RETRY_DELAYS_MS, AUTOSAVE_DEBOUNCE_MS, editingLeaseLocked, autosaveAllowedFor, isFlowComplete, rememberRevision, phaseAfterTakeOver } from './chunk-YC76QFWZ.js';
|
|
17
17
|
import { SdkPermissionButton, FLUIDGRIDS_PERMISSIONS, useFluidGridsPermission } from './chunk-ZUVFD5KV.js';
|
|
18
18
|
import { cn } from './chunk-JL7CASN5.js';
|
|
19
19
|
import { BuilderReadOnlyProvider, useBuilderReadOnly } from './chunk-OCJTTHTS.js';
|
|
@@ -2196,42 +2196,6 @@ function enrichDraftNodes(nodes, seed) {
|
|
|
2196
2196
|
function canvasHasWork(nodes) {
|
|
2197
2197
|
return nodes.length > 1;
|
|
2198
2198
|
}
|
|
2199
|
-
function useManualSave() {
|
|
2200
|
-
const tr = useTr();
|
|
2201
|
-
const { saveToBackend } = useSaveWorkflow();
|
|
2202
|
-
return useCallback(async () => {
|
|
2203
|
-
const { nodes, edges } = useFlowStore.getState().workflow;
|
|
2204
|
-
if (!isFlowComplete(nodes, edges)) {
|
|
2205
|
-
toast.error(
|
|
2206
|
-
tr(
|
|
2207
|
-
"fluidgrids.builder.saveFlowButton.invalidToastTitle",
|
|
2208
|
-
"Flow is invalid"
|
|
2209
|
-
),
|
|
2210
|
-
{
|
|
2211
|
-
description: tr(
|
|
2212
|
-
"fluidgrids.builder.saveFlowButton.invalidToastDescription",
|
|
2213
|
-
"Please check if the flow is complete and has no lone nodes"
|
|
2214
|
-
)
|
|
2215
|
-
}
|
|
2216
|
-
);
|
|
2217
|
-
return false;
|
|
2218
|
-
}
|
|
2219
|
-
return saveToBackend();
|
|
2220
|
-
}, [saveToBackend, tr]);
|
|
2221
|
-
}
|
|
2222
|
-
function useGuardedNavigate() {
|
|
2223
|
-
const navigate = useNavigate();
|
|
2224
|
-
return useCallback(
|
|
2225
|
-
(to, options) => {
|
|
2226
|
-
if (leavingLosesChanges()) {
|
|
2227
|
-
useSaveStatusStore.getState().actions.requestLeave({ to, options });
|
|
2228
|
-
return;
|
|
2229
|
-
}
|
|
2230
|
-
navigate(to, options);
|
|
2231
|
-
},
|
|
2232
|
-
[navigate]
|
|
2233
|
-
);
|
|
2234
|
-
}
|
|
2235
2199
|
function useNodeList(nodes) {
|
|
2236
2200
|
return useMemo(() => {
|
|
2237
2201
|
return nodes.slice().sort((a, b) => {
|
|
@@ -3450,6 +3414,14 @@ function getStoreNodeAvailability(node, isInstalled, options = {}) {
|
|
|
3450
3414
|
const isDraggable = available && userSelectableOperationCount(nodeType) <= 1;
|
|
3451
3415
|
return { nodeType, isPrebuilt, isDraggable, isHidden: false };
|
|
3452
3416
|
}
|
|
3417
|
+
function getStoreNodeIcon(listingIcon, nodeType) {
|
|
3418
|
+
if (listingIcon) return listingIcon;
|
|
3419
|
+
if (!nodeType) return null;
|
|
3420
|
+
const registered = AVAILABLE_NODES.find(
|
|
3421
|
+
(availableNode) => availableNode.type === nodeType
|
|
3422
|
+
);
|
|
3423
|
+
return registered?.icon || null;
|
|
3424
|
+
}
|
|
3453
3425
|
function isStoreNodeHiddenFromPalette(node, durableFunctionsEnabled = false) {
|
|
3454
3426
|
return isNodeTypeHiddenFromPalette(
|
|
3455
3427
|
getStoreNodeType(node, false),
|
|
@@ -3474,6 +3446,7 @@ function StoreNodeListItem({
|
|
|
3474
3446
|
onClick
|
|
3475
3447
|
}) {
|
|
3476
3448
|
const tr = useTr();
|
|
3449
|
+
const displayIcon = getStoreNodeIcon(icon, nodeType);
|
|
3477
3450
|
const handleDragStart = useCallback(
|
|
3478
3451
|
(e) => {
|
|
3479
3452
|
if (!isDraggable || !nodeType) return;
|
|
@@ -3492,7 +3465,14 @@ function StoreNodeListItem({
|
|
|
3492
3465
|
className: "w-full flex items-center gap-3 px-2 py-2.5 rounded-md hover:bg-muted/60 transition-colors text-left group",
|
|
3493
3466
|
style: isDraggable ? { cursor: "grab" } : void 0,
|
|
3494
3467
|
children: [
|
|
3495
|
-
/* @__PURE__ */ jsx("div", { className: "relative size-9 shrink-0 rounded-lg bg-muted flex items-center justify-center overflow-hidden", children:
|
|
3468
|
+
/* @__PURE__ */ jsx("div", { className: "relative size-9 shrink-0 rounded-lg bg-muted flex items-center justify-center overflow-hidden", children: displayIcon ? isImageIcon(displayIcon) ? /* @__PURE__ */ jsx(
|
|
3469
|
+
"img",
|
|
3470
|
+
{
|
|
3471
|
+
src: displayIcon,
|
|
3472
|
+
alt: name,
|
|
3473
|
+
className: "w-full h-full object-cover"
|
|
3474
|
+
}
|
|
3475
|
+
) : /* @__PURE__ */ jsx(Icon, { icon: displayIcon, className: "size-5 text-muted-foreground" }) : /* @__PURE__ */ jsx("span", { className: "text-sm font-bold text-muted-foreground", children: name.charAt(0).toUpperCase() }) }),
|
|
3496
3476
|
/* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
3497
3477
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5 flex-wrap", children: [
|
|
3498
3478
|
/* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-foreground group-hover:text-primary transition-colors truncate", children: name }),
|
|
@@ -4599,6 +4579,7 @@ function StoreNodeDetail({ node, onBack }) {
|
|
|
4599
4579
|
const { nodeType, isPrebuilt } = getStoreNodeAvailability(node, isInstalled, {
|
|
4600
4580
|
durableFunctionsEnabled: paletteGates
|
|
4601
4581
|
});
|
|
4582
|
+
const displayIcon = getStoreNodeIcon(node.icon, nodeType);
|
|
4602
4583
|
const installation = installationsMap.get(node.id);
|
|
4603
4584
|
const installedVersion = installation?.installedVersion;
|
|
4604
4585
|
const installationId = installation?.installationId;
|
|
@@ -4823,17 +4804,17 @@ function StoreNodeDetail({ node, onBack }) {
|
|
|
4823
4804
|
) }),
|
|
4824
4805
|
/* @__PURE__ */ jsxs("div", { className: "flex-1 overflow-y-auto px-3 pb-2", children: [
|
|
4825
4806
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center text-center py-4", children: [
|
|
4826
|
-
/* @__PURE__ */ jsx("div", { className: "size-16 rounded-xl bg-muted flex items-center justify-center overflow-hidden mb-3", children:
|
|
4807
|
+
/* @__PURE__ */ jsx("div", { className: "size-16 rounded-xl bg-muted flex items-center justify-center overflow-hidden mb-3", children: displayIcon ? isImageIcon(displayIcon) ? /* @__PURE__ */ jsx(
|
|
4827
4808
|
"img",
|
|
4828
4809
|
{
|
|
4829
|
-
src:
|
|
4810
|
+
src: displayIcon,
|
|
4830
4811
|
alt: node.name,
|
|
4831
4812
|
className: "w-full h-full object-cover"
|
|
4832
4813
|
}
|
|
4833
4814
|
) : /* @__PURE__ */ jsx(
|
|
4834
4815
|
Icon,
|
|
4835
4816
|
{
|
|
4836
|
-
icon:
|
|
4817
|
+
icon: displayIcon,
|
|
4837
4818
|
className: "size-8 text-muted-foreground"
|
|
4838
4819
|
}
|
|
4839
4820
|
) : /* @__PURE__ */ jsx("span", { className: "text-2xl font-bold text-muted-foreground", children: node.name.charAt(0).toUpperCase() }) }),
|
|
@@ -7093,8 +7074,8 @@ var reducer = (state, action) => {
|
|
|
7093
7074
|
if (toastId) {
|
|
7094
7075
|
addToRemoveQueue(toastId);
|
|
7095
7076
|
} else {
|
|
7096
|
-
state.toasts.forEach((
|
|
7097
|
-
addToRemoveQueue(
|
|
7077
|
+
state.toasts.forEach((toast18) => {
|
|
7078
|
+
addToRemoveQueue(toast18.id);
|
|
7098
7079
|
});
|
|
7099
7080
|
}
|
|
7100
7081
|
return {
|
|
@@ -7128,7 +7109,7 @@ function dispatch(action) {
|
|
|
7128
7109
|
listener(memoryState);
|
|
7129
7110
|
});
|
|
7130
7111
|
}
|
|
7131
|
-
function
|
|
7112
|
+
function toast4({ ...props }) {
|
|
7132
7113
|
const id = genId();
|
|
7133
7114
|
const update = (props2) => dispatch({
|
|
7134
7115
|
type: actionTypes.UPDATE_TOAST,
|
|
@@ -7165,7 +7146,7 @@ function useToast() {
|
|
|
7165
7146
|
}, [state]);
|
|
7166
7147
|
return {
|
|
7167
7148
|
...state,
|
|
7168
|
-
toast:
|
|
7149
|
+
toast: toast4,
|
|
7169
7150
|
dismiss: (toastId) => dispatch({ type: actionTypes.DISMISS_TOAST, toastId })
|
|
7170
7151
|
};
|
|
7171
7152
|
}
|
|
@@ -8470,7 +8451,7 @@ function VisualMapperContent({
|
|
|
8470
8451
|
mapping,
|
|
8471
8452
|
onMappingChange
|
|
8472
8453
|
}) {
|
|
8473
|
-
const { toast:
|
|
8454
|
+
const { toast: toast18 } = useToast();
|
|
8474
8455
|
const tr = useTr();
|
|
8475
8456
|
const reactFlowWrapper = useRef(null);
|
|
8476
8457
|
const [selectedSourceNode, setSelectedSourceNode] = useState(null);
|
|
@@ -8490,7 +8471,7 @@ function VisualMapperContent({
|
|
|
8490
8471
|
targetOperation
|
|
8491
8472
|
);
|
|
8492
8473
|
if (generatedNodes.length === 0) {
|
|
8493
|
-
|
|
8474
|
+
toast18({
|
|
8494
8475
|
title: tr(
|
|
8495
8476
|
"fluidgrids.builder.visualMapper.noFieldsFoundTitle",
|
|
8496
8477
|
"No fields found"
|
|
@@ -8516,7 +8497,7 @@ function VisualMapperContent({
|
|
|
8516
8497
|
targetNode,
|
|
8517
8498
|
targetOperation,
|
|
8518
8499
|
setNodes,
|
|
8519
|
-
|
|
8500
|
+
toast18,
|
|
8520
8501
|
tr
|
|
8521
8502
|
]);
|
|
8522
8503
|
useEffect(() => {
|
|
@@ -8623,7 +8604,7 @@ function VisualMapperContent({
|
|
|
8623
8604
|
}
|
|
8624
8605
|
onMappingChange(updatedMapping);
|
|
8625
8606
|
if (isCompatible) {
|
|
8626
|
-
|
|
8607
|
+
toast18({
|
|
8627
8608
|
title: tr(
|
|
8628
8609
|
"fluidgrids.builder.visualMapper.mappingCreatedTitle",
|
|
8629
8610
|
"Mapping created"
|
|
@@ -8631,7 +8612,7 @@ function VisualMapperContent({
|
|
|
8631
8612
|
description: `Mapped ${sourcePath} (${sourceType}) to ${targetPath} (${targetType})`
|
|
8632
8613
|
});
|
|
8633
8614
|
} else {
|
|
8634
|
-
|
|
8615
|
+
toast18({
|
|
8635
8616
|
title: tr(
|
|
8636
8617
|
"fluidgrids.builder.visualMapper.typeMismatchTitle",
|
|
8637
8618
|
"Type mismatch warning"
|
|
@@ -8641,7 +8622,7 @@ function VisualMapperContent({
|
|
|
8641
8622
|
});
|
|
8642
8623
|
}
|
|
8643
8624
|
} else {
|
|
8644
|
-
|
|
8625
|
+
toast18({
|
|
8645
8626
|
title: tr(
|
|
8646
8627
|
"fluidgrids.builder.visualMapper.invalidMappingTitle",
|
|
8647
8628
|
"Invalid mapping"
|
|
@@ -8654,7 +8635,7 @@ function VisualMapperContent({
|
|
|
8654
8635
|
});
|
|
8655
8636
|
}
|
|
8656
8637
|
},
|
|
8657
|
-
[nodes, mapping, onMappingChange,
|
|
8638
|
+
[nodes, mapping, onMappingChange, toast18, tr, setEdges]
|
|
8658
8639
|
);
|
|
8659
8640
|
const onEdgeDelete = useCallback(
|
|
8660
8641
|
(edge) => {
|
|
@@ -8711,7 +8692,7 @@ function VisualMapperContent({
|
|
|
8711
8692
|
const handleSaveMappingDialog = (expression, targetFieldName) => {
|
|
8712
8693
|
const targetPath = targetFieldName || selectedTargetNode?.data?.path;
|
|
8713
8694
|
if (!targetPath) {
|
|
8714
|
-
|
|
8695
|
+
toast18({
|
|
8715
8696
|
title: tr(
|
|
8716
8697
|
"fluidgrids.builder.visualMapper.noTargetFieldTitle",
|
|
8717
8698
|
"No target field specified"
|
|
@@ -8743,7 +8724,7 @@ function VisualMapperContent({
|
|
|
8743
8724
|
}
|
|
8744
8725
|
onMappingChange(updatedMapping);
|
|
8745
8726
|
const mappingType = detectMappingType(expression);
|
|
8746
|
-
|
|
8727
|
+
toast18({
|
|
8747
8728
|
title: `${mappingType.charAt(0).toUpperCase() + mappingType.slice(1)} mapping created`,
|
|
8748
8729
|
description: `${tr("fluidgrids.builder.visualMapper.appliedMappingTo", "Applied mapping to")} ${targetPath}`
|
|
8749
8730
|
});
|
|
@@ -9042,7 +9023,7 @@ function MappingEditor({
|
|
|
9042
9023
|
setEdges,
|
|
9043
9024
|
edgeId
|
|
9044
9025
|
}) {
|
|
9045
|
-
const { toast:
|
|
9026
|
+
const { toast: toast18 } = useToast();
|
|
9046
9027
|
const tr = useTr();
|
|
9047
9028
|
const [mappingJson, setMappingJson] = useState({});
|
|
9048
9029
|
const [jsonDataString, setJsonDataString] = useState(
|
|
@@ -9166,7 +9147,7 @@ function MappingEditor({
|
|
|
9166
9147
|
const handleSaveMapping = () => {
|
|
9167
9148
|
try {
|
|
9168
9149
|
checkJsonValidity();
|
|
9169
|
-
|
|
9150
|
+
toast18({
|
|
9170
9151
|
title: tr(
|
|
9171
9152
|
"fluidgrids.builder.mappingEditor.mappingSavedTitle",
|
|
9172
9153
|
"Mapping saved"
|
|
@@ -9177,7 +9158,7 @@ function MappingEditor({
|
|
|
9177
9158
|
)
|
|
9178
9159
|
});
|
|
9179
9160
|
} catch (error) {
|
|
9180
|
-
|
|
9161
|
+
toast18({
|
|
9181
9162
|
title: tr(
|
|
9182
9163
|
"fluidgrids.builder.mappingEditor.errorSavingTitle",
|
|
9183
9164
|
"Error saving mapping"
|
|
@@ -9196,7 +9177,7 @@ function MappingEditor({
|
|
|
9196
9177
|
const parsedData = checkJsonValidity();
|
|
9197
9178
|
const result = await applyMapping(parsedData, sampleInput);
|
|
9198
9179
|
setPreviewOutput(result);
|
|
9199
|
-
|
|
9180
|
+
toast18({
|
|
9200
9181
|
title: tr(
|
|
9201
9182
|
"fluidgrids.builder.mappingEditor.mappingTestedTitle",
|
|
9202
9183
|
"Mapping tested"
|
|
@@ -9208,7 +9189,7 @@ function MappingEditor({
|
|
|
9208
9189
|
});
|
|
9209
9190
|
} catch (error) {
|
|
9210
9191
|
console.error("Test mapping error:", error);
|
|
9211
|
-
|
|
9192
|
+
toast18({
|
|
9212
9193
|
title: tr(
|
|
9213
9194
|
"fluidgrids.builder.mappingEditor.mappingTestFailedTitle",
|
|
9214
9195
|
"Mapping test failed"
|
|
@@ -15242,146 +15223,6 @@ function TriggerDataDialog({
|
|
|
15242
15223
|
] })
|
|
15243
15224
|
] }) });
|
|
15244
15225
|
}
|
|
15245
|
-
function useRunGuard(startRun) {
|
|
15246
|
-
const { saveToBackend } = useSaveWorkflow();
|
|
15247
|
-
const [confirmOpen, setConfirmOpen] = useState(false);
|
|
15248
|
-
const [preparing, setPreparing] = useState(false);
|
|
15249
|
-
const requestRun = useCallback(async () => {
|
|
15250
|
-
const preparation = runPreparation();
|
|
15251
|
-
if (preparation === "run") {
|
|
15252
|
-
startRun();
|
|
15253
|
-
return;
|
|
15254
|
-
}
|
|
15255
|
-
if (preparation === "save-first") {
|
|
15256
|
-
setPreparing(true);
|
|
15257
|
-
let saved = false;
|
|
15258
|
-
try {
|
|
15259
|
-
saved = await saveToBackend({ silent: true }) && savedEverythingBeforeLeaving();
|
|
15260
|
-
} finally {
|
|
15261
|
-
setPreparing(false);
|
|
15262
|
-
}
|
|
15263
|
-
if (saved) {
|
|
15264
|
-
startRun();
|
|
15265
|
-
return;
|
|
15266
|
-
}
|
|
15267
|
-
}
|
|
15268
|
-
setConfirmOpen(true);
|
|
15269
|
-
}, [saveToBackend, startRun]);
|
|
15270
|
-
const dialog = /* @__PURE__ */ jsx(
|
|
15271
|
-
UnsavedRunDialog,
|
|
15272
|
-
{
|
|
15273
|
-
open: confirmOpen,
|
|
15274
|
-
onOpenChange: setConfirmOpen,
|
|
15275
|
-
onRunSaved: () => {
|
|
15276
|
-
setConfirmOpen(false);
|
|
15277
|
-
startRun();
|
|
15278
|
-
},
|
|
15279
|
-
onSavedAndRunnable: () => {
|
|
15280
|
-
setConfirmOpen(false);
|
|
15281
|
-
startRun();
|
|
15282
|
-
}
|
|
15283
|
-
}
|
|
15284
|
-
);
|
|
15285
|
-
return { requestRun, preparing, dialog };
|
|
15286
|
-
}
|
|
15287
|
-
function UnsavedRunDialog({
|
|
15288
|
-
open,
|
|
15289
|
-
onOpenChange,
|
|
15290
|
-
onRunSaved,
|
|
15291
|
-
onSavedAndRunnable
|
|
15292
|
-
}) {
|
|
15293
|
-
const tr = useTr();
|
|
15294
|
-
const manualSave = useManualSave();
|
|
15295
|
-
const [version, dbId, status, codeBuildId] = useFlowStore(
|
|
15296
|
-
useShallow((s) => [
|
|
15297
|
-
s.workflow.version,
|
|
15298
|
-
s.workflow.dbId,
|
|
15299
|
-
s.workflow.status,
|
|
15300
|
-
s.workflow.codeBuildId
|
|
15301
|
-
])
|
|
15302
|
-
);
|
|
15303
|
-
const [saving, setSaving] = useState(false);
|
|
15304
|
-
const hasSavedVersion = !!dbId;
|
|
15305
|
-
const runsAfterSave = !hasSavedVersion || savesInPlace({ dbId, status, codeBuildId });
|
|
15306
|
-
const save = useCallback(async () => {
|
|
15307
|
-
setSaving(true);
|
|
15308
|
-
try {
|
|
15309
|
-
const saved = await manualSave();
|
|
15310
|
-
if (!saved) return;
|
|
15311
|
-
if (!runsAfterSave) {
|
|
15312
|
-
onOpenChange(false);
|
|
15313
|
-
return;
|
|
15314
|
-
}
|
|
15315
|
-
if (savedEverythingBeforeLeaving()) onSavedAndRunnable();
|
|
15316
|
-
} finally {
|
|
15317
|
-
setSaving(false);
|
|
15318
|
-
}
|
|
15319
|
-
}, [runsAfterSave, manualSave, onOpenChange, onSavedAndRunnable]);
|
|
15320
|
-
return /* @__PURE__ */ jsx(
|
|
15321
|
-
AlertDialog,
|
|
15322
|
-
{
|
|
15323
|
-
open,
|
|
15324
|
-
onOpenChange: (next) => {
|
|
15325
|
-
if (!next && saving) return;
|
|
15326
|
-
onOpenChange(next);
|
|
15327
|
-
},
|
|
15328
|
-
children: /* @__PURE__ */ jsxs(AlertDialogContent, { "data-testid": "fluidgrids-unsaved-run-dialog", children: [
|
|
15329
|
-
/* @__PURE__ */ jsxs(AlertDialogHeader, { children: [
|
|
15330
|
-
/* @__PURE__ */ jsx(AlertDialogTitle, { children: tr(
|
|
15331
|
-
"fluidgrids.builder.runGuard.title",
|
|
15332
|
-
"Run without your unsaved changes?"
|
|
15333
|
-
) }),
|
|
15334
|
-
/* @__PURE__ */ jsxs(AlertDialogDescription, { children: [
|
|
15335
|
-
hasSavedVersion ? tr(
|
|
15336
|
-
"fluidgrids.builder.runGuard.description",
|
|
15337
|
-
"This workflow has changes that are not saved. A run uses the saved version {{version}}, without them.",
|
|
15338
|
-
{ version }
|
|
15339
|
-
) : tr(
|
|
15340
|
-
"fluidgrids.builder.runGuard.descriptionNotSaved",
|
|
15341
|
-
"This workflow has not been saved yet. Save it before you run it."
|
|
15342
|
-
),
|
|
15343
|
-
" ",
|
|
15344
|
-
runsAfterSave ? null : tr(
|
|
15345
|
-
"fluidgrids.builder.runGuard.newVersionHint",
|
|
15346
|
-
"Saving keeps your changes as a new version and opens it; run that version."
|
|
15347
|
-
)
|
|
15348
|
-
] })
|
|
15349
|
-
] }),
|
|
15350
|
-
/* @__PURE__ */ jsxs(AlertDialogFooter, { children: [
|
|
15351
|
-
/* @__PURE__ */ jsx(AlertDialogCancel, { disabled: saving, children: tr("fluidgrids.builder.runGuard.cancelButton", "Cancel") }),
|
|
15352
|
-
hasSavedVersion && /* @__PURE__ */ jsx(
|
|
15353
|
-
Button$2,
|
|
15354
|
-
{
|
|
15355
|
-
"data-agent": "confirm",
|
|
15356
|
-
variant: "outline",
|
|
15357
|
-
onClick: onRunSaved,
|
|
15358
|
-
disabled: saving,
|
|
15359
|
-
children: tr(
|
|
15360
|
-
"fluidgrids.builder.runGuard.runSavedButton",
|
|
15361
|
-
"Run saved version"
|
|
15362
|
-
)
|
|
15363
|
-
}
|
|
15364
|
-
),
|
|
15365
|
-
/* @__PURE__ */ jsx(
|
|
15366
|
-
Button$2,
|
|
15367
|
-
{
|
|
15368
|
-
"data-agent": "confirm",
|
|
15369
|
-
onClick: () => void save(),
|
|
15370
|
-
disabled: saving,
|
|
15371
|
-
children: saving ? tr("fluidgrids.builder.runGuard.savingButton", "Saving\u2026") : runsAfterSave ? tr(
|
|
15372
|
-
"fluidgrids.builder.runGuard.saveAndRunButton",
|
|
15373
|
-
"Save and run"
|
|
15374
|
-
) : tr(
|
|
15375
|
-
"fluidgrids.builder.runGuard.saveAsNewVersionButton",
|
|
15376
|
-
"Save as new version"
|
|
15377
|
-
)
|
|
15378
|
-
}
|
|
15379
|
-
)
|
|
15380
|
-
] })
|
|
15381
|
-
] })
|
|
15382
|
-
}
|
|
15383
|
-
);
|
|
15384
|
-
}
|
|
15385
15226
|
var ExecuteWorkflowButton = ({
|
|
15386
15227
|
className
|
|
15387
15228
|
}) => {
|
|
@@ -21338,12 +21179,12 @@ function EditLeaseBanner() {
|
|
|
21338
21179
|
);
|
|
21339
21180
|
}
|
|
21340
21181
|
var LazyNodeDetailView = lazy(
|
|
21341
|
-
() => import('./node-detail-view-
|
|
21182
|
+
() => import('./node-detail-view-CMQ7DUYM.js').then((m) => ({
|
|
21342
21183
|
default: m.NodeDetailView
|
|
21343
21184
|
}))
|
|
21344
21185
|
);
|
|
21345
21186
|
var LazyQuickConfigPanel = lazy(
|
|
21346
|
-
() => import('./quick-config-panel-
|
|
21187
|
+
() => import('./quick-config-panel-NJ72QZPM.js').then((m) => ({
|
|
21347
21188
|
default: m.QuickConfigPanel
|
|
21348
21189
|
}))
|
|
21349
21190
|
);
|
|
@@ -21405,7 +21246,7 @@ var FlowBuilder = ({ readOnly = false }) => {
|
|
|
21405
21246
|
);
|
|
21406
21247
|
useEffect(() => {
|
|
21407
21248
|
let cancelled = false;
|
|
21408
|
-
void import('./agentTools-
|
|
21249
|
+
void import('./agentTools-4JT66UQB.js').then(({ createBuilderAgentTools }) => {
|
|
21409
21250
|
if (cancelled) return;
|
|
21410
21251
|
setAgentTools(
|
|
21411
21252
|
createBuilderAgentTools({
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { versionsOfWorkflow, VersionDiffDialog } from './chunk-
|
|
1
|
+
import { versionsOfWorkflow, VersionDiffDialog } from './chunk-N6XYVO7N.js';
|
|
2
2
|
import { historyControls } from './chunk-FNZZ5JJL.js';
|
|
3
|
-
import { useWorkflowDefinitions, useRestoreWorkflowVersion } from './chunk-
|
|
3
|
+
import { useWorkflowDefinitions, useRestoreWorkflowVersion } from './chunk-QXACKASD.js';
|
|
4
4
|
import { useFluidGridsPageControls } from './chunk-PJAWNFJV.js';
|
|
5
5
|
import { FluidGridsDocsLink } from './chunk-4VJ3MDOV.js';
|
|
6
6
|
import { getFluidGridsConfig } from './chunk-6AMNEX2Y.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { FailureTriagePanel } from './chunk-
|
|
2
|
-
import { useDataSinks, useDataSinkData, useInsightsData, useRunReplayActions } from './chunk-
|
|
1
|
+
import { FailureTriagePanel } from './chunk-H2KIJEYM.js';
|
|
2
|
+
import { useDataSinks, useDataSinkData, useInsightsData, useRunReplayActions } from './chunk-UH7JKPUF.js';
|
|
3
3
|
import { proposalCanvasPath } from './chunk-GLYINMOR.js';
|
|
4
|
-
import { useContinuousOptimisationEnabled, throwIfResultError } from './chunk-
|
|
4
|
+
import { useContinuousOptimisationEnabled, throwIfResultError } from './chunk-YC76QFWZ.js';
|
|
5
5
|
import { useFluidGridsPermission, FLUIDGRIDS_PERMISSIONS, SdkPermissionButton } from './chunk-ZUVFD5KV.js';
|
|
6
6
|
import { SetContinuousOptimisationEnabledDocument, FgRunOptimisationScanDocument, ProposeOptimisationDocument, WorkflowProposalDocument, DismissOptimisationSuggestionDocument, SnoozeOptimisationSuggestionDocument, OptimisationSuggestionsDocument, ContinuousOptimisationSettingsDocument } from './chunk-JTQFBZTV.js';
|
|
7
7
|
import { useTr } from './chunk-UULVIT25.js';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Card, FluidGridsMark } from './chunk-
|
|
1
|
+
import { Card, FluidGridsMark } from './chunk-LTINUSLK.js';
|
|
2
2
|
import { Input } from './chunk-IEVSFCFS.js';
|
|
3
3
|
import { Button } from './chunk-BQXVT32O.js';
|
|
4
|
-
import { useWorkflowDefinition } from './chunk-
|
|
5
|
-
import { FluidGridsProvider, useFlowStore } from './chunk-
|
|
4
|
+
import { useWorkflowDefinition } from './chunk-QXACKASD.js';
|
|
5
|
+
import { FluidGridsProvider, useFlowStore } from './chunk-YC76QFWZ.js';
|
|
6
6
|
import { cn } from './chunk-JL7CASN5.js';
|
|
7
7
|
import { useTr } from './chunk-UULVIT25.js';
|
|
8
8
|
import { useState, useRef, useEffect, useCallback } from 'react';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { mergeStickyNotes, describeOperationError, throwIfResultError } from './chunk-
|
|
1
|
+
import { mergeStickyNotes, describeOperationError, throwIfResultError } from './chunk-YC76QFWZ.js';
|
|
2
2
|
import { WorkflowDefinitionDocument, WorkflowVersionDiffDocument } from './chunk-JTQFBZTV.js';
|
|
3
3
|
import { useTr } from './chunk-UULVIT25.js';
|
|
4
4
|
import { getFluidGridsClient } from './chunk-NTWG3CJX.js';
|
|
@@ -2,7 +2,7 @@ import { operatorSpec, normaliseAssertRules, describeAssertRuleProblem } from '.
|
|
|
2
2
|
import { useEntityTags, useTagEntity, useUntagEntity } from './chunk-PC3CICOW.js';
|
|
3
3
|
import { notifyFluidGridsAiCreditsUpdated } from './chunk-Y53CVZVV.js';
|
|
4
4
|
import { ErrorType } from './chunk-AOLY5INN.js';
|
|
5
|
-
import { throwIfResultError, isForbiddenError } from './chunk-
|
|
5
|
+
import { throwIfResultError, isForbiddenError } from './chunk-YC76QFWZ.js';
|
|
6
6
|
import { getFluidGridsConfig } from './chunk-6AMNEX2Y.js';
|
|
7
7
|
import { WorkflowProposalDocument, ProposeRunFixDocument, ProposeWorkflowChangeDocument, ApplyWorkflowProposalDocument, RejectWorkflowProposalDocument, CancelWorkflowProposalDocument, WorkflowTestCasesDocument, WorkflowTestRunsDocument, WorkflowTestRunDocument, CreateWorkflowTestCaseDocument, UpdateWorkflowTestCaseDocument, DeleteWorkflowTestCaseDocument, RunWorkflowTestsDocument, CreateWorkflowTestCaseFromRunDocument } from './chunk-JTQFBZTV.js';
|
|
8
8
|
import { useTr } from './chunk-UULVIT25.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useFluidGridsAnalytics, throwIfResultError, emitWorkflowCreated, emitRunStarted, runTriggerFromMode, openRunQuotaUpgradePrompt, emitWorkflowPublished } from './chunk-
|
|
1
|
+
import { useFluidGridsAnalytics, throwIfResultError, emitWorkflowCreated, emitRunStarted, runTriggerFromMode, openRunQuotaUpgradePrompt, emitWorkflowPublished } from './chunk-YC76QFWZ.js';
|
|
2
2
|
import { getFluidGridsConfig } from './chunk-6AMNEX2Y.js';
|
|
3
3
|
import { WorkflowDefinitionsDocument, WorkflowDefinitionDocument, WorkflowVersionsDocument, CreateWorkflowDefinitionDocument, ImportWorkflowDocument, UpdateWorkflowDefinitionDocument, CreateWorkflowVersionDocument, DeleteWorkflowDefinitionDocument, DuplicateWorkflowDocument, RestoreWorkflowVersionDocument, TriggerWorkflowDocument, WorkflowRunsDocument, WorkflowRunDocument, DashboardSummaryDocument, ActivateWorkflowDefinitionDocument, DeactivateWorkflowDefinitionDocument } from './chunk-JTQFBZTV.js';
|
|
4
4
|
import { useTr } from './chunk-UULVIT25.js';
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { useDurableRunFields, useRunHistory, useDeterminismStatus, useRunStackTrace, RunHistoryView, SignalRunDialog, terminateDurableRun } from './chunk-
|
|
2
|
-
import { useDurableParityRunFields, useRunMetadata, useRunPending, ExecutionStatusBadge, NodeTimeline, RunLogViewer, setRunVersioningOverride } from './chunk-
|
|
3
|
-
import { useExecution, useExecutionActions, useAutoRefresh, runChainLinks, shortRunId, callbackTone, parseMetadataDefinition, overrideRequestOf } from './chunk-
|
|
4
|
-
import { fetchRunFailureClusters, OPEN_STATUSES, dismissRunFailureCluster, BUCKET_LABELS } from './chunk-
|
|
5
|
-
import { useRunPolicyDecisions, RunPolicyDecisions } from './chunk-
|
|
6
|
-
import { EntityTagPicker, canSaveRunAsTestCase, useWorkflowProposal, WorkflowProposalCard, MAX_CASE_NAME, saveRunAsTestCase } from './chunk-
|
|
1
|
+
import { useDurableRunFields, useRunHistory, useDeterminismStatus, useRunStackTrace, RunHistoryView, SignalRunDialog, terminateDurableRun } from './chunk-G2FPOWN5.js';
|
|
2
|
+
import { useDurableParityRunFields, useRunMetadata, useRunPending, ExecutionStatusBadge, NodeTimeline, RunLogViewer, setRunVersioningOverride } from './chunk-K6HD5GC7.js';
|
|
3
|
+
import { useExecution, useExecutionActions, useAutoRefresh, runChainLinks, shortRunId, callbackTone, parseMetadataDefinition, overrideRequestOf } from './chunk-6WPW42TX.js';
|
|
4
|
+
import { fetchRunFailureClusters, OPEN_STATUSES, dismissRunFailureCluster, BUCKET_LABELS } from './chunk-H2KIJEYM.js';
|
|
5
|
+
import { useRunPolicyDecisions, RunPolicyDecisions } from './chunk-BVCMAGLJ.js';
|
|
6
|
+
import { EntityTagPicker, canSaveRunAsTestCase, useWorkflowProposal, WorkflowProposalCard, MAX_CASE_NAME, saveRunAsTestCase } from './chunk-OBWB73Y7.js';
|
|
7
7
|
import { buildNodeDisplayMap, formatRunVersion } from './chunk-PC3CICOW.js';
|
|
8
8
|
import { AiCreditBalanceSlot } from './chunk-Y53CVZVV.js';
|
|
9
|
-
import { useWorkflowVersions } from './chunk-
|
|
10
|
-
import { throwIfResultError, useDurableFunctionNodesEnabled, useDurableParityEnabled, runSignalTargets, canSignalRun, useWorkflowTestsEnabled, describeOperationError } from './chunk-
|
|
9
|
+
import { useWorkflowVersions } from './chunk-QXACKASD.js';
|
|
10
|
+
import { throwIfResultError, useDurableFunctionNodesEnabled, useDurableParityEnabled, runSignalTargets, canSignalRun, useWorkflowTestsEnabled, describeOperationError } from './chunk-YC76QFWZ.js';
|
|
11
11
|
import { useFluidGridsPermission, FLUIDGRIDS_PERMISSIONS, SdkPermissionButton } from './chunk-ZUVFD5KV.js';
|
|
12
12
|
import { getFluidGridsConfig } from './chunk-6AMNEX2Y.js';
|
|
13
13
|
import { RunLogsDocument, RunLogAppendedDocument, ExplainRunDocument } from './chunk-JTQFBZTV.js';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { useImportWorkflowTemplate, FlowBuilderPage, useWorkflowTemplates, TEMPLATE_STORE_CATEGORIES, TemplateCard, useTemplateSubmissions, usePublishToStore } from './chunk-
|
|
2
|
-
import { QuotaExhaustedDialog } from './chunk-
|
|
1
|
+
import { useImportWorkflowTemplate, FlowBuilderPage, useWorkflowTemplates, TEMPLATE_STORE_CATEGORIES, TemplateCard, useTemplateSubmissions, usePublishToStore } from './chunk-LTINUSLK.js';
|
|
2
|
+
import { QuotaExhaustedDialog } from './chunk-SIVS3XSV.js';
|
|
3
3
|
import { templatesControls } from './chunk-FNZZ5JJL.js';
|
|
4
|
-
import { useWorkflowDefinitions, useDuplicateWorkflow, useLazyWorkflowDefinition } from './chunk-
|
|
4
|
+
import { useWorkflowDefinitions, useDuplicateWorkflow, useLazyWorkflowDefinition } from './chunk-QXACKASD.js';
|
|
5
5
|
import { useFluidGridsPageControls } from './chunk-PJAWNFJV.js';
|
|
6
6
|
import { FluidGridsDocsLink } from './chunk-4VJ3MDOV.js';
|
|
7
|
-
import { BILLING_PLANS_PATH, useFluidGridsAnalytics, emitTemplateUsed, isQuotaExhaustedFailure } from './chunk-
|
|
7
|
+
import { BILLING_PLANS_PATH, useFluidGridsAnalytics, emitTemplateUsed, isQuotaExhaustedFailure } from './chunk-YC76QFWZ.js';
|
|
8
8
|
import { SdkPermissionButton, FLUIDGRIDS_PERMISSIONS } from './chunk-ZUVFD5KV.js';
|
|
9
9
|
import { useTr } from './chunk-UULVIT25.js';
|
|
10
10
|
import { useState, useEffect, useCallback, useMemo } from 'react';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { describeOperationError, useFluidGridsAnalytics, emitWorkflowLimitHit, emitUpgradeClicked, WORKFLOWS_QUOTA_NAME, throwIfResultError } from './chunk-
|
|
1
|
+
import { describeOperationError, useFluidGridsAnalytics, emitWorkflowLimitHit, emitUpgradeClicked, WORKFLOWS_QUOTA_NAME, throwIfResultError } from './chunk-YC76QFWZ.js';
|
|
2
2
|
import { ExportWorkflowCodeDocument } from './chunk-JTQFBZTV.js';
|
|
3
3
|
import { useTr } from './chunk-UULVIT25.js';
|
|
4
4
|
import { getFluidGridsClient } from './chunk-NTWG3CJX.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { LOG_STREAM_DESTINATIONS, CREATE_LOG_STREAM_DESTINATION, UPDATE_LOG_STREAM_DESTINATION, DELETE_LOG_STREAM_DESTINATION, TEST_LOG_STREAM_DESTINATION, REPLAY_WORKFLOW_RUN, RETRY_WORKFLOW_RUNS, OBSERVABILITY_DASHBOARD_SUMMARY, OBSERVABILITY_FAILED_RUNS, OBSERVABILITY_DATA_SINKS, OBSERVABILITY_DATA_SINK_DATA } from './chunk-5ERAJC2I.js';
|
|
2
|
-
import { throwIfResultError, describeOperationError, useFluidGridsAnalytics, emitRunStarted, openRunQuotaUpgradePrompt, useFluidGridsFlag, FLUIDGRIDS_FLAGS } from './chunk-
|
|
2
|
+
import { throwIfResultError, describeOperationError, useFluidGridsAnalytics, emitRunStarted, openRunQuotaUpgradePrompt, useFluidGridsFlag, FLUIDGRIDS_FLAGS } from './chunk-YC76QFWZ.js';
|
|
3
3
|
import { useTr } from './chunk-UULVIT25.js';
|
|
4
4
|
import { getFluidGridsClient } from './chunk-NTWG3CJX.js';
|
|
5
5
|
import { useCallback, useState, useMemo, useEffect } from 'react';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { isGuidedTourIntent, pickGuidedTour, withoutGuidedTourIntent, isCreateIntent, CreateWorkflowRefusalDialog, decideMissingWorkflow } from './chunk-
|
|
1
|
+
import { isGuidedTourIntent, pickGuidedTour, withoutGuidedTourIntent, isCreateIntent, CreateWorkflowRefusalDialog, decideMissingWorkflow } from './chunk-52OIBKPO.js';
|
|
2
2
|
import { registerLiveCanvasHandler } from './chunk-PIKYQE7P.js';
|
|
3
|
-
import { useWorkflowReloadStore, releaseLeaseKeptForReload, useInstalledNodes, buildNodeCheck, FlowBuilderPage, buildRequiredNodeTypes } from './chunk-
|
|
4
|
-
import { canvasFromDefinition } from './chunk-
|
|
5
|
-
import { useLazyWorkflowDefinition, useCreateWorkflow } from './chunk-
|
|
6
|
-
import { useFlowStore, refetchStoreNodes, BILLING_PLANS_PATH, codeBuildIdOf, mergeStickyNotes, rememberRevision, blankWorkflowCreateInput, classifyCreateRefusal, useSaveStatusStore, workflowFingerprint, registerWorkflowNodeTypes, throwIfResultError } from './chunk-
|
|
3
|
+
import { useWorkflowReloadStore, releaseLeaseKeptForReload, useInstalledNodes, buildNodeCheck, FlowBuilderPage, buildRequiredNodeTypes } from './chunk-LTINUSLK.js';
|
|
4
|
+
import { canvasFromDefinition } from './chunk-N6XYVO7N.js';
|
|
5
|
+
import { useLazyWorkflowDefinition, useCreateWorkflow } from './chunk-QXACKASD.js';
|
|
6
|
+
import { useFlowStore, refetchStoreNodes, BILLING_PLANS_PATH, codeBuildIdOf, mergeStickyNotes, rememberRevision, blankWorkflowCreateInput, classifyCreateRefusal, useSaveStatusStore, workflowFingerprint, registerWorkflowNodeTypes, throwIfResultError } from './chunk-YC76QFWZ.js';
|
|
7
7
|
import { getFluidGridsConfig } from './chunk-6AMNEX2Y.js';
|
|
8
8
|
import { WorkflowDefinitionDocument } from './chunk-JTQFBZTV.js';
|
|
9
9
|
import { useTr } from './chunk-UULVIT25.js';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { CodeEditorField, normalizeCodeLanguage } from './chunk-AASHQI77.js';
|
|
2
|
-
import { asRecord, ConditionTreeBuilder, SwitchRulesEditor, casesFromRules, isStringOptionList, optionText, coerceNumber, paramsFromOperation, resolveLoadOptionsSpec, optionListValues, parseMappingValue, optionListText } from './chunk-
|
|
2
|
+
import { asRecord, ConditionTreeBuilder, SwitchRulesEditor, casesFromRules, isStringOptionList, optionText, coerceNumber, paramsFromOperation, resolveLoadOptionsSpec, optionListValues, parseMappingValue, optionListText } from './chunk-Y7MQ3LYB.js';
|
|
3
3
|
import { Popover, PopoverTrigger, PopoverContent } from './chunk-GTEBQQ7J.js';
|
|
4
|
-
import { isAgentNodeType, AgentDefinitionSelectField } from './chunk-
|
|
4
|
+
import { isAgentNodeType, AgentDefinitionSelectField } from './chunk-VQZEGCRF.js';
|
|
5
5
|
import { readAssertRulesSetting, rowsFromRules, normaliseAssertRules, ruleFromRow, describeAssertRuleProblem, operatorSpec, ASSERT_OPERATORS, emptyAssertRuleRow } from './chunk-JDLQ6QIB.js';
|
|
6
|
-
import { useFlowStore, isParamVisible, ConnectionSelector, structuredParameterType, FluidGridsContext, ExpressionEditor, formatParameterValue, parseParameterValue, useFluidGridsAnalytics, throwIfResultError, openRunQuotaUpgradePrompt, describeOperationError } from './chunk-
|
|
6
|
+
import { useFlowStore, isParamVisible, ConnectionSelector, structuredParameterType, useRunGuard, FluidGridsContext, ExpressionEditor, formatParameterValue, parseParameterValue, useFluidGridsAnalytics, throwIfResultError, openRunQuotaUpgradePrompt, describeOperationError } from './chunk-YC76QFWZ.js';
|
|
7
7
|
import { useBuilderReadOnly } from './chunk-OCJTTHTS.js';
|
|
8
8
|
import { useRunFromNodeEligibilityQuery, PreviewScheduleDocument, WebhookTestListenerDocument, StopWebhookTestListenerDocument, ListenForWebhookTestEventDocument } from './chunk-JTQFBZTV.js';
|
|
9
9
|
import { useTr } from './chunk-UULVIT25.js';
|
|
@@ -3822,7 +3822,10 @@ function NodeExecutionActions({
|
|
|
3822
3822
|
setPendingAction(null);
|
|
3823
3823
|
}
|
|
3824
3824
|
};
|
|
3825
|
-
const
|
|
3825
|
+
const stepGuard = useRunGuard(() => {
|
|
3826
|
+
void runAction("execute", () => onExecuteStep(targetNodeId));
|
|
3827
|
+
});
|
|
3828
|
+
const executePending = pendingAction === "execute" || isExecuting || stepGuard.preparing;
|
|
3826
3829
|
const continuePending = pendingAction === "continue";
|
|
3827
3830
|
const continuationLabel = eligibility.action === "retry" ? tr(
|
|
3828
3831
|
"fluidgrids.builder.nodeExecutionActions.retryFromHere",
|
|
@@ -3860,7 +3863,7 @@ function NodeExecutionActions({
|
|
|
3860
3863
|
"data-agent": "confirm",
|
|
3861
3864
|
type: "button",
|
|
3862
3865
|
onClick: () => {
|
|
3863
|
-
void
|
|
3866
|
+
void stepGuard.requestRun();
|
|
3864
3867
|
},
|
|
3865
3868
|
disabled: executePending || continuePending,
|
|
3866
3869
|
title: tr(
|
|
@@ -3913,6 +3916,7 @@ function NodeExecutionActions({
|
|
|
3913
3916
|
}
|
|
3914
3917
|
)
|
|
3915
3918
|
] }),
|
|
3919
|
+
stepGuard.dialog,
|
|
3916
3920
|
!eligibility.eligible && /* @__PURE__ */ jsx(
|
|
3917
3921
|
"p",
|
|
3918
3922
|
{
|