@burdenoff/fluidgrids-fe-sdk 2026.1110.2 → 2026.1110.4
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-UXQFBLF3.js → ExecutionDetailPage-2OY2NC3Z.js} +12 -13
- package/dist/{ExecutionsListPage-A4GCUNFR.js → ExecutionsListPage-GTR4XPQN.js} +8 -9
- package/dist/{WorkflowBuilder-ZLVMV2UA.js → WorkflowBuilder-7LPCDDJJ.js} +15 -16
- package/dist/{WorkflowsList-XPNGNR4A.js → WorkflowsList-JJ7UOHTC.js} +6 -6
- package/dist/{agentTools-V26FOMTS.js → agentTools-WHQ7UDDS.js} +3 -3
- package/dist/{chunk-OJHBCOBA.js → chunk-5NZANNKX.js} +40 -1
- package/dist/{chunk-5ZAOXCIQ.js → chunk-5WM655EY.js} +151 -7
- package/dist/{chunk-K22NDWSD.js → chunk-6HXJEIDT.js} +2 -2
- package/dist/{chunk-DIIGFBYT.js → chunk-6NSPCR5C.js} +1 -1
- package/dist/{chunk-ZQTANHKA.js → chunk-7MHCCYDJ.js} +2 -2
- package/dist/{chunk-DDINUPO3.js → chunk-CXBF63PL.js} +1 -1
- package/dist/{chunk-3F4DIVKT.js → chunk-DCMHDOZO.js} +1 -1
- package/dist/chunk-DELQGUVF.js +172 -0
- package/dist/{chunk-XLU63IUB.js → chunk-F7C57RJE.js} +6 -6
- package/dist/{chunk-L5MZ74DA.js → chunk-GA3DS2ZJ.js} +1 -1
- package/dist/{chunk-G7BT24PD.js → chunk-KLR4BZ75.js} +2 -2
- package/dist/{chunk-QGRVYPQC.js → chunk-KQMZ226I.js} +2 -2
- package/dist/{chunk-2DBAQR6F.js → chunk-LOU6RJIB.js} +2 -2
- package/dist/{chunk-Z6D6YL7C.js → chunk-MQ24K2L4.js} +1 -1
- package/dist/{chunk-OVZA4IM7.js → chunk-OIMQHAGU.js} +3 -3
- package/dist/{chunk-2H4XAES7.js → chunk-POCNK7FY.js} +2 -2
- package/dist/{chunk-OZNFRJKC.js → chunk-PXN3S2YU.js} +5 -5
- package/dist/{chunk-WGUHISC2.js → chunk-QOFEQEQL.js} +174 -23
- package/dist/chunk-QUYK5PAZ.js +338 -0
- package/dist/{chunk-5V7PMLQN.js → chunk-QYHRRSEC.js} +1118 -24
- package/dist/{chunk-ZZBZPBO5.js → chunk-S36ZLWDC.js} +2 -2
- package/dist/{chunk-7UFE2CHD.js → chunk-SKMWUKT5.js} +29 -103
- package/dist/{chunk-CBX2CXGH.js → chunk-U5P7E3PA.js} +6 -6
- package/dist/{chunk-A6Q4FWB6.js → chunk-UDS2FA24.js} +1 -1
- package/dist/{chunk-PICOXEUO.js → chunk-UDTAUZ7B.js} +4 -4
- package/dist/{chunk-PI4AW4T2.js → chunk-V6KLU67V.js} +20 -19
- package/dist/{chunk-5TGPH3CX.js → chunk-VRPNGY6W.js} +4 -4
- package/dist/{chunk-D4L5BN64.js → chunk-VXVLQ3LX.js} +94 -2
- package/dist/{chunk-X7XVRJK2.js → chunk-XSTTM74F.js} +1 -1
- package/dist/{chunk-I3DBTNWQ.js → chunk-XYLWH24V.js} +5 -5
- package/dist/executions.js +13 -14
- package/dist/history.js +5 -5
- package/dist/index.d.ts +35 -2
- package/dist/index.js +45 -46
- package/dist/{node-detail-view-2AFXRNX6.js → node-detail-view-JJ2JRFID.js} +8 -9
- package/dist/nodes.js +2 -2
- package/dist/observability.js +5 -5
- package/dist/quick-config-panel-BT2RHMXF.js +411 -0
- package/dist/settings.js +7 -8
- package/dist/templates.js +15 -16
- package/dist/{workflow-builder-DQ2VFyg8.d.ts → workflow-builder-DgZQtyWL.d.ts} +12 -0
- package/dist/workflow-builder.d.ts +1 -1
- package/dist/workflow-builder.js +16 -17
- package/dist/workflows-list.js +6 -6
- package/package.json +1 -1
- package/dist/chunk-3JGAI5YC.js +0 -1437
- package/dist/chunk-HORSE7WX.js +0 -54
- package/dist/chunk-WZ3EJVS6.js +0 -93
- package/dist/quick-config-panel-U4AELSCT.js +0 -363
|
@@ -1,30 +1,29 @@
|
|
|
1
|
-
export { ExecutionDetailPage } from './chunk-
|
|
2
|
-
import './chunk-
|
|
3
|
-
import './chunk-
|
|
4
|
-
import './chunk-
|
|
5
|
-
import './chunk-
|
|
1
|
+
export { ExecutionDetailPage } from './chunk-QOFEQEQL.js';
|
|
2
|
+
import './chunk-KLR4BZ75.js';
|
|
3
|
+
import './chunk-PXN3S2YU.js';
|
|
4
|
+
import './chunk-LOU6RJIB.js';
|
|
5
|
+
import './chunk-GA3DS2ZJ.js';
|
|
6
6
|
import './chunk-NZAYYUQ4.js';
|
|
7
|
-
import './chunk-
|
|
7
|
+
import './chunk-5NZANNKX.js';
|
|
8
8
|
import './chunk-5ERAJC2I.js';
|
|
9
|
-
import './chunk-
|
|
9
|
+
import './chunk-POCNK7FY.js';
|
|
10
10
|
import './chunk-JDLQ6QIB.js';
|
|
11
|
-
import './chunk-
|
|
11
|
+
import './chunk-6NSPCR5C.js';
|
|
12
12
|
import './chunk-Y53CVZVV.js';
|
|
13
13
|
import './chunk-FNZZ5JJL.js';
|
|
14
|
-
import './chunk-
|
|
14
|
+
import './chunk-6HXJEIDT.js';
|
|
15
15
|
import './chunk-PJAWNFJV.js';
|
|
16
|
-
import './chunk-
|
|
17
|
-
import './chunk-WZ3EJVS6.js';
|
|
16
|
+
import './chunk-VXVLQ3LX.js';
|
|
18
17
|
import './chunk-6CPQVLHT.js';
|
|
19
18
|
import './chunk-ERT444RG.js';
|
|
20
|
-
import './chunk-
|
|
19
|
+
import './chunk-CXBF63PL.js';
|
|
21
20
|
import './chunk-SDZEAIIE.js';
|
|
22
21
|
import './chunk-K2X63CR2.js';
|
|
23
22
|
import './chunk-Y7FKJJMF.js';
|
|
24
23
|
import './chunk-TYI2XOSI.js';
|
|
25
24
|
import './chunk-G77IGC3Y.js';
|
|
26
25
|
import './chunk-JL7CASN5.js';
|
|
27
|
-
import './chunk-
|
|
26
|
+
import './chunk-UDS2FA24.js';
|
|
28
27
|
import './chunk-UULVIT25.js';
|
|
29
28
|
import './chunk-PDODDDHY.js';
|
|
30
29
|
import './chunk-JKLZ6YZ3.js';
|
|
@@ -1,24 +1,23 @@
|
|
|
1
|
-
export { ExecutionsListPage } from './chunk-
|
|
2
|
-
import './chunk-
|
|
3
|
-
import './chunk-
|
|
1
|
+
export { ExecutionsListPage } from './chunk-F7C57RJE.js';
|
|
2
|
+
import './chunk-PXN3S2YU.js';
|
|
3
|
+
import './chunk-LOU6RJIB.js';
|
|
4
4
|
import './chunk-5ERAJC2I.js';
|
|
5
|
-
import './chunk-
|
|
5
|
+
import './chunk-6NSPCR5C.js';
|
|
6
6
|
import './chunk-FNZZ5JJL.js';
|
|
7
|
-
import './chunk-
|
|
7
|
+
import './chunk-6HXJEIDT.js';
|
|
8
8
|
import './chunk-PJAWNFJV.js';
|
|
9
|
-
import './chunk-
|
|
10
|
-
import './chunk-WZ3EJVS6.js';
|
|
9
|
+
import './chunk-VXVLQ3LX.js';
|
|
11
10
|
import './chunk-4VJ3MDOV.js';
|
|
12
11
|
import './chunk-6CPQVLHT.js';
|
|
13
12
|
import './chunk-ERT444RG.js';
|
|
14
|
-
import './chunk-
|
|
13
|
+
import './chunk-CXBF63PL.js';
|
|
15
14
|
import './chunk-SDZEAIIE.js';
|
|
16
15
|
import './chunk-K2X63CR2.js';
|
|
17
16
|
import './chunk-Y7FKJJMF.js';
|
|
18
17
|
import './chunk-TYI2XOSI.js';
|
|
19
18
|
import './chunk-G77IGC3Y.js';
|
|
20
19
|
import './chunk-JL7CASN5.js';
|
|
21
|
-
import './chunk-
|
|
20
|
+
import './chunk-UDS2FA24.js';
|
|
22
21
|
import './chunk-UULVIT25.js';
|
|
23
22
|
import './chunk-PDODDDHY.js';
|
|
24
23
|
import './chunk-JKLZ6YZ3.js';
|
|
@@ -1,43 +1,42 @@
|
|
|
1
|
-
export { WorkflowBuilder } from './chunk-
|
|
1
|
+
export { WorkflowBuilder } from './chunk-U5P7E3PA.js';
|
|
2
2
|
import './chunk-NRI7AUBH.js';
|
|
3
3
|
import './chunk-PIKYQE7P.js';
|
|
4
|
-
import './chunk-
|
|
4
|
+
import './chunk-SKMWUKT5.js';
|
|
5
5
|
import './chunk-JNSHR2J2.js';
|
|
6
6
|
import './chunk-GEMNVFPK.js';
|
|
7
7
|
import './chunk-B6CCE2RW.js';
|
|
8
8
|
import './chunk-IEVSFCFS.js';
|
|
9
9
|
import './chunk-YXMFRQYV.js';
|
|
10
10
|
import './chunk-TFCIZFDM.js';
|
|
11
|
-
import './chunk-
|
|
12
|
-
import './chunk-
|
|
13
|
-
import './chunk-
|
|
14
|
-
import './chunk-
|
|
11
|
+
import './chunk-QUYK5PAZ.js';
|
|
12
|
+
import './chunk-DELQGUVF.js';
|
|
13
|
+
import './chunk-QYHRRSEC.js';
|
|
14
|
+
import './chunk-V6KLU67V.js';
|
|
15
15
|
import './chunk-KZCNJAMK.js';
|
|
16
|
-
import './chunk-
|
|
17
|
-
import './chunk-
|
|
16
|
+
import './chunk-KQMZ226I.js';
|
|
17
|
+
import './chunk-POCNK7FY.js';
|
|
18
18
|
import './chunk-JDLQ6QIB.js';
|
|
19
|
-
import './chunk-
|
|
19
|
+
import './chunk-6NSPCR5C.js';
|
|
20
20
|
import './chunk-Y53CVZVV.js';
|
|
21
|
-
import './chunk-
|
|
21
|
+
import './chunk-XSTTM74F.js';
|
|
22
22
|
import './chunk-CKF2FBUP.js';
|
|
23
|
-
import './chunk-
|
|
23
|
+
import './chunk-6HXJEIDT.js';
|
|
24
24
|
import './chunk-XRGAH6IQ.js';
|
|
25
25
|
import './chunk-QJAZXCFQ.js';
|
|
26
26
|
import './chunk-GLYINMOR.js';
|
|
27
|
-
import './chunk-
|
|
28
|
-
import './chunk-
|
|
29
|
-
import './chunk-WZ3EJVS6.js';
|
|
27
|
+
import './chunk-S36ZLWDC.js';
|
|
28
|
+
import './chunk-VXVLQ3LX.js';
|
|
30
29
|
import './chunk-4VJ3MDOV.js';
|
|
31
30
|
import './chunk-6CPQVLHT.js';
|
|
32
31
|
import './chunk-ERT444RG.js';
|
|
33
|
-
import './chunk-
|
|
32
|
+
import './chunk-CXBF63PL.js';
|
|
34
33
|
import './chunk-SDZEAIIE.js';
|
|
35
34
|
import './chunk-K2X63CR2.js';
|
|
36
35
|
import './chunk-Y7FKJJMF.js';
|
|
37
36
|
import './chunk-TYI2XOSI.js';
|
|
38
37
|
import './chunk-G77IGC3Y.js';
|
|
39
38
|
import './chunk-JL7CASN5.js';
|
|
40
|
-
import './chunk-
|
|
39
|
+
import './chunk-UDS2FA24.js';
|
|
41
40
|
import './chunk-UULVIT25.js';
|
|
42
41
|
import './chunk-PDODDDHY.js';
|
|
43
42
|
import './chunk-JKLZ6YZ3.js';
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
export { WorkflowsList } from './chunk-
|
|
1
|
+
export { WorkflowsList } from './chunk-XYLWH24V.js';
|
|
2
2
|
import './chunk-NRI7AUBH.js';
|
|
3
|
-
import './chunk-
|
|
3
|
+
import './chunk-LOU6RJIB.js';
|
|
4
4
|
import './chunk-5ERAJC2I.js';
|
|
5
|
-
import './chunk-
|
|
5
|
+
import './chunk-KQMZ226I.js';
|
|
6
6
|
import './chunk-FNZZ5JJL.js';
|
|
7
|
-
import './chunk-
|
|
7
|
+
import './chunk-6HXJEIDT.js';
|
|
8
8
|
import './chunk-PJAWNFJV.js';
|
|
9
9
|
import './chunk-4VJ3MDOV.js';
|
|
10
10
|
import './chunk-6CPQVLHT.js';
|
|
11
11
|
import './chunk-ERT444RG.js';
|
|
12
|
-
import './chunk-
|
|
12
|
+
import './chunk-CXBF63PL.js';
|
|
13
13
|
import './chunk-SDZEAIIE.js';
|
|
14
14
|
import './chunk-K2X63CR2.js';
|
|
15
15
|
import './chunk-Y7FKJJMF.js';
|
|
16
16
|
import './chunk-TYI2XOSI.js';
|
|
17
17
|
import './chunk-G77IGC3Y.js';
|
|
18
18
|
import './chunk-JL7CASN5.js';
|
|
19
|
-
import './chunk-
|
|
19
|
+
import './chunk-UDS2FA24.js';
|
|
20
20
|
import './chunk-UULVIT25.js';
|
|
21
21
|
import './chunk-PDODDDHY.js';
|
|
22
22
|
import './chunk-JKLZ6YZ3.js';
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { computeAttachPosition } from './chunk-JNSHR2J2.js';
|
|
2
|
-
import { nodeTitle, selectedOperationOf, paramsFromOperation, fixedParameterState } from './chunk-
|
|
3
|
-
import { NODE_CONFIGS, createConfiguredNode, isNodeConfigsInitialized, useSaveStatusStore, autosaveAllowedFor, isFlowComplete, isNodeTypeHiddenFromPalette } from './chunk-
|
|
2
|
+
import { nodeTitle, selectedOperationOf, paramsFromOperation, fixedParameterState } from './chunk-V6KLU67V.js';
|
|
3
|
+
import { NODE_CONFIGS, createConfiguredNode, isNodeConfigsInitialized, useSaveStatusStore, autosaveAllowedFor, isFlowComplete, isNodeTypeHiddenFromPalette } from './chunk-CXBF63PL.js';
|
|
4
4
|
import './chunk-SDZEAIIE.js';
|
|
5
5
|
import { resolveOutputHandles, resolveInputHandles, useFlowStore } from './chunk-K2X63CR2.js';
|
|
6
6
|
import './chunk-Y7FKJJMF.js';
|
|
7
7
|
import './chunk-TYI2XOSI.js';
|
|
8
8
|
import './chunk-G77IGC3Y.js';
|
|
9
|
-
import './chunk-
|
|
9
|
+
import './chunk-UDS2FA24.js';
|
|
10
10
|
import './chunk-UULVIT25.js';
|
|
11
11
|
import './chunk-PDODDDHY.js';
|
|
12
12
|
import './chunk-JKLZ6YZ3.js';
|
|
@@ -1361,4 +1361,43 @@ async function decodePayloads(server, payloads, fetchImpl = fetch) {
|
|
|
1361
1361
|
}
|
|
1362
1362
|
}
|
|
1363
1363
|
|
|
1364
|
-
|
|
1364
|
+
// src/modules/settings/utils/run-budget.ts
|
|
1365
|
+
var BUDGET_DIMENSIONS = [
|
|
1366
|
+
"maxSteps",
|
|
1367
|
+
"maxTokens",
|
|
1368
|
+
"maxCostMicroUsd",
|
|
1369
|
+
"maxWallTimeSec"
|
|
1370
|
+
];
|
|
1371
|
+
var MICRO_USD_PER_USD = 1e6;
|
|
1372
|
+
function withBudgetLimit(budget, dimension, value, mode) {
|
|
1373
|
+
const limit = parseBudgetValue(dimension, value);
|
|
1374
|
+
const next = { ...budget };
|
|
1375
|
+
if (limit === void 0) delete next[dimension];
|
|
1376
|
+
else next[dimension] = { limit, mode };
|
|
1377
|
+
return BUDGET_DIMENSIONS.some((d) => next[d]) ? next : void 0;
|
|
1378
|
+
}
|
|
1379
|
+
function withBudgetMode(budget, dimension, mode) {
|
|
1380
|
+
const current = budget?.[dimension];
|
|
1381
|
+
if (!current) return budget;
|
|
1382
|
+
return { ...budget, [dimension]: { ...current, mode } };
|
|
1383
|
+
}
|
|
1384
|
+
function parseBudgetValue(dimension, value) {
|
|
1385
|
+
if (value.trim() === "") return void 0;
|
|
1386
|
+
const parsed = Number(value);
|
|
1387
|
+
if (!Number.isFinite(parsed) || parsed <= 0) return void 0;
|
|
1388
|
+
const scaled = dimension === "maxCostMicroUsd" ? parsed * MICRO_USD_PER_USD : parsed;
|
|
1389
|
+
const whole = Math.round(scaled);
|
|
1390
|
+
return whole >= 1 && Number.isSafeInteger(whole) ? whole : void 0;
|
|
1391
|
+
}
|
|
1392
|
+
function budgetInputValue(dimension, limit) {
|
|
1393
|
+
if (!limit) return "";
|
|
1394
|
+
return dimension === "maxCostMicroUsd" ? String(limit.limit / MICRO_USD_PER_USD) : String(limit.limit);
|
|
1395
|
+
}
|
|
1396
|
+
function formatBudgetUsd(microUsd) {
|
|
1397
|
+
const [whole = "0", digits = ""] = (microUsd / MICRO_USD_PER_USD).toFixed(6).split(".");
|
|
1398
|
+
let end = digits.length;
|
|
1399
|
+
while (end > 2 && digits[end - 1] === "0") end--;
|
|
1400
|
+
return `${whole}.${digits.slice(0, end)}`;
|
|
1401
|
+
}
|
|
1402
|
+
|
|
1403
|
+
export { ActionPoliciesTab, BUDGET_DIMENSIONS, CodecServerError, RunPolicyDecisions, budgetInputValue, checkCodecServerUrl, containsEncodedPayload, decodePayloads, encodedPayloadBytes, formatBudgetUsd, isEncodedPayload, useRunPolicyDecisions, withBudgetLimit, withBudgetMode };
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { ActionPoliciesTab, checkCodecServerUrl } from './chunk-
|
|
2
|
-
import { LogStreamingTab } from './chunk-
|
|
3
|
-
import { AgentsTab, useConnections } from './chunk-
|
|
4
|
-
import { useResource, fetchPauseRules, FieldError, fetchSearchAttributes, StatusPill, NativeSelect, fetchArchiveSettings, fetchCodecServerSettings, deletePauseRule, createPauseRule, deleteSearchAttribute, createSearchAttribute, saveArchiveSettings, clearArchiveSettings, saveCodecServerSettings } from './chunk-
|
|
1
|
+
import { ActionPoliciesTab, BUDGET_DIMENSIONS, withBudgetLimit, budgetInputValue, withBudgetMode, checkCodecServerUrl } from './chunk-5NZANNKX.js';
|
|
2
|
+
import { LogStreamingTab } from './chunk-MQ24K2L4.js';
|
|
3
|
+
import { AgentsTab, useConnections } from './chunk-S36ZLWDC.js';
|
|
4
|
+
import { useResource, fetchPauseRules, FieldError, fetchSearchAttributes, StatusPill, NativeSelect, fetchArchiveSettings, fetchCodecServerSettings, deletePauseRule, createPauseRule, deleteSearchAttribute, createSearchAttribute, saveArchiveSettings, clearArchiveSettings, saveCodecServerSettings } from './chunk-VXVLQ3LX.js';
|
|
5
5
|
import { FluidGridsDocsLink } from './chunk-4VJ3MDOV.js';
|
|
6
6
|
import { useFluidGridsPermission, FLUIDGRIDS_PERMISSIONS } from './chunk-ERT444RG.js';
|
|
7
|
-
import { useFluidGridsFlag, FLUIDGRIDS_FLAGS, usePhaseCFlags, useSaveStatusStore, findSaveConflict, useDurableParityEnabled } from './chunk-
|
|
7
|
+
import { useFluidGridsFlag, FLUIDGRIDS_FLAGS, usePhaseCFlags, useSaveStatusStore, findSaveConflict, useDurableParityEnabled } from './chunk-CXBF63PL.js';
|
|
8
8
|
import { useFlowStore } from './chunk-K2X63CR2.js';
|
|
9
9
|
import { getGlobalStoreClient } from './chunk-TYI2XOSI.js';
|
|
10
|
-
import { useWorkflowDefinitionQuery, useUpdateWorkflowDefinitionMutation, useWorkflowDefinitionsQuery, ManagedAiWorkspacePolicyDocument, UpdateManagedAiWorkspacePolicyDocument, DurableHistoryCapsDocument, UpdateDurableHistoryCapsDocument } from './chunk-
|
|
10
|
+
import { useWorkflowDefinitionQuery, useUpdateWorkflowDefinitionMutation, useWorkflowDefinitionsQuery, ManagedAiWorkspacePolicyDocument, UpdateManagedAiWorkspacePolicyDocument, DurableHistoryCapsDocument, UpdateDurableHistoryCapsDocument } from './chunk-UDS2FA24.js';
|
|
11
11
|
import { useTr } from './chunk-UULVIT25.js';
|
|
12
12
|
import { getFluidGridsClient } from './chunk-PDODDDHY.js';
|
|
13
13
|
import { throwIfResultError, describeOperationError } from './chunk-JKLZ6YZ3.js';
|
|
@@ -513,6 +513,124 @@ function SettingRow({
|
|
|
513
513
|
/* @__PURE__ */ jsx("div", { className: "shrink-0", children })
|
|
514
514
|
] });
|
|
515
515
|
}
|
|
516
|
+
var ROWS = {
|
|
517
|
+
maxSteps: {
|
|
518
|
+
labelKey: "fluidgrids.settings.execution.budget.stepsLabel",
|
|
519
|
+
label: "Max model calls per run",
|
|
520
|
+
descriptionKey: "fluidgrids.settings.execution.budget.stepsDescription",
|
|
521
|
+
description: "Every AI Agent turn and every call an AI node, tool or sub-node makes counts, including those of sub-workflows.",
|
|
522
|
+
unitKey: "fluidgrids.settings.execution.budget.stepsUnit",
|
|
523
|
+
unit: "calls",
|
|
524
|
+
step: "1"
|
|
525
|
+
},
|
|
526
|
+
maxTokens: {
|
|
527
|
+
labelKey: "fluidgrids.settings.execution.budget.tokensLabel",
|
|
528
|
+
label: "Max tokens per run",
|
|
529
|
+
descriptionKey: "fluidgrids.settings.execution.budget.tokensDescription",
|
|
530
|
+
description: "Input plus output tokens of the run's model calls, including those of sub-workflows.",
|
|
531
|
+
unitKey: "fluidgrids.settings.execution.budget.tokensUnit",
|
|
532
|
+
unit: "tokens",
|
|
533
|
+
step: "1"
|
|
534
|
+
},
|
|
535
|
+
maxCostMicroUsd: {
|
|
536
|
+
labelKey: "fluidgrids.settings.execution.budget.costLabel",
|
|
537
|
+
label: "Max AI cost per run",
|
|
538
|
+
descriptionKey: "fluidgrids.settings.execution.budget.costDescription",
|
|
539
|
+
description: "The estimated cost of the run's model calls, including those of sub-workflows. A call is priced after it returns, so the check can trail by one call.",
|
|
540
|
+
unitKey: "fluidgrids.settings.execution.budget.costUnit",
|
|
541
|
+
unit: "USD",
|
|
542
|
+
step: "0.01"
|
|
543
|
+
},
|
|
544
|
+
maxWallTimeSec: {
|
|
545
|
+
labelKey: "fluidgrids.settings.execution.budget.wallTimeLabel",
|
|
546
|
+
label: "Max AI running time per run",
|
|
547
|
+
descriptionKey: "fluidgrids.settings.execution.budget.wallTimeDescription",
|
|
548
|
+
description: "Checked before each model call. Time the run spends paused (an approval, a long Wait) does not count.",
|
|
549
|
+
unitKey: "fluidgrids.settings.execution.budget.wallTimeUnit",
|
|
550
|
+
unit: "seconds",
|
|
551
|
+
step: "1"
|
|
552
|
+
}
|
|
553
|
+
};
|
|
554
|
+
function RunBudgetSettings({
|
|
555
|
+
budget,
|
|
556
|
+
disabled,
|
|
557
|
+
onChange
|
|
558
|
+
}) {
|
|
559
|
+
const tr = useTr();
|
|
560
|
+
return /* @__PURE__ */ jsx(Fragment, { children: BUDGET_DIMENSIONS.map((dimension) => {
|
|
561
|
+
const row = ROWS[dimension];
|
|
562
|
+
const limit = budget?.[dimension];
|
|
563
|
+
const mode = limit?.mode ?? "HARD";
|
|
564
|
+
const label = tr(row.labelKey, row.label);
|
|
565
|
+
return /* @__PURE__ */ jsx(
|
|
566
|
+
SettingRow,
|
|
567
|
+
{
|
|
568
|
+
label,
|
|
569
|
+
description: tr(row.descriptionKey, row.description),
|
|
570
|
+
children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
571
|
+
/* @__PURE__ */ jsx(
|
|
572
|
+
Input,
|
|
573
|
+
{
|
|
574
|
+
type: "number",
|
|
575
|
+
min: 0,
|
|
576
|
+
step: row.step,
|
|
577
|
+
value: budgetInputValue(dimension, limit),
|
|
578
|
+
placeholder: tr(
|
|
579
|
+
"fluidgrids.settings.execution.budget.noLimit",
|
|
580
|
+
"No limit"
|
|
581
|
+
),
|
|
582
|
+
"aria-label": label,
|
|
583
|
+
onChange: (e) => onChange(
|
|
584
|
+
withBudgetLimit(budget, dimension, e.target.value, mode)
|
|
585
|
+
),
|
|
586
|
+
disabled,
|
|
587
|
+
className: "w-[110px] text-right"
|
|
588
|
+
}
|
|
589
|
+
),
|
|
590
|
+
/* @__PURE__ */ jsx("span", { className: "w-[52px] text-xs text-text-secondary", children: tr(row.unitKey, row.unit) }),
|
|
591
|
+
/* @__PURE__ */ jsxs(
|
|
592
|
+
Select,
|
|
593
|
+
{
|
|
594
|
+
value: mode,
|
|
595
|
+
onValueChange: (next) => onChange(
|
|
596
|
+
withBudgetMode(
|
|
597
|
+
budget,
|
|
598
|
+
dimension,
|
|
599
|
+
next === "SOFT" ? "SOFT" : "HARD"
|
|
600
|
+
)
|
|
601
|
+
),
|
|
602
|
+
disabled: disabled || !limit,
|
|
603
|
+
children: [
|
|
604
|
+
/* @__PURE__ */ jsx(
|
|
605
|
+
SelectTrigger,
|
|
606
|
+
{
|
|
607
|
+
"aria-label": tr(
|
|
608
|
+
"fluidgrids.settings.execution.budget.modeLabel",
|
|
609
|
+
"When reached"
|
|
610
|
+
),
|
|
611
|
+
className: "w-[150px] bg-background-secondary border-border-secondary",
|
|
612
|
+
children: /* @__PURE__ */ jsx(SelectValue, {})
|
|
613
|
+
}
|
|
614
|
+
),
|
|
615
|
+
/* @__PURE__ */ jsxs(SelectContent, { children: [
|
|
616
|
+
/* @__PURE__ */ jsx(SelectItem, { value: "HARD", children: tr(
|
|
617
|
+
"fluidgrids.settings.execution.budget.modeHard",
|
|
618
|
+
"Stop the run"
|
|
619
|
+
) }),
|
|
620
|
+
/* @__PURE__ */ jsx(SelectItem, { value: "SOFT", children: tr(
|
|
621
|
+
"fluidgrids.settings.execution.budget.modeSoft",
|
|
622
|
+
"Warn only"
|
|
623
|
+
) })
|
|
624
|
+
] })
|
|
625
|
+
]
|
|
626
|
+
}
|
|
627
|
+
)
|
|
628
|
+
] })
|
|
629
|
+
},
|
|
630
|
+
dimension
|
|
631
|
+
);
|
|
632
|
+
}) });
|
|
633
|
+
}
|
|
516
634
|
var FIELDS = `
|
|
517
635
|
saveSuccessfulRuns
|
|
518
636
|
saveFailedRuns
|
|
@@ -3095,12 +3213,20 @@ var DATA_PRIVACY_KEYS = [
|
|
|
3095
3213
|
"doNotStoreRunData",
|
|
3096
3214
|
"redactFields"
|
|
3097
3215
|
];
|
|
3216
|
+
var BUDGET_KEYS = [
|
|
3217
|
+
"maxSteps",
|
|
3218
|
+
"maxWallTimeSec",
|
|
3219
|
+
"maxTokens",
|
|
3220
|
+
"maxCostMicroUsd"
|
|
3221
|
+
];
|
|
3098
3222
|
function mergeWorkflowExecutionSettings(existing, next) {
|
|
3099
3223
|
const merged = { ...existing, ...next };
|
|
3100
3224
|
for (const [key, editable] of [
|
|
3101
3225
|
["dataSaving", DATA_SAVING_KEYS],
|
|
3102
3226
|
["retention", RETENTION_KEYS],
|
|
3103
|
-
["dataPrivacy", DATA_PRIVACY_KEYS]
|
|
3227
|
+
["dataPrivacy", DATA_PRIVACY_KEYS],
|
|
3228
|
+
// BOFF-9943: a limit the form cleared means "no limit", so it must not come back either.
|
|
3229
|
+
["budget", BUDGET_KEYS]
|
|
3104
3230
|
]) {
|
|
3105
3231
|
const nested = mergeNested(existing[key], next[key], editable);
|
|
3106
3232
|
if (nested) merged[key] = nested;
|
|
@@ -3489,6 +3615,24 @@ function ExecutionTab({ workflowKey }) {
|
|
|
3489
3615
|
)
|
|
3490
3616
|
}
|
|
3491
3617
|
),
|
|
3618
|
+
/* @__PURE__ */ jsxs("div", { className: "pt-5 pb-1", children: [
|
|
3619
|
+
/* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold text-text-primary", children: tr(
|
|
3620
|
+
"fluidgrids.settings.execution.budget.heading",
|
|
3621
|
+
"AI budget per run"
|
|
3622
|
+
) }),
|
|
3623
|
+
/* @__PURE__ */ jsx("p", { className: "text-xs text-text-secondary mt-0.5", children: tr(
|
|
3624
|
+
"fluidgrids.settings.execution.budget.intro",
|
|
3625
|
+
"Leave a limit empty for no limit. A run started through the API can lower these limits for itself, never raise them."
|
|
3626
|
+
) })
|
|
3627
|
+
] }),
|
|
3628
|
+
/* @__PURE__ */ jsx(
|
|
3629
|
+
RunBudgetSettings,
|
|
3630
|
+
{
|
|
3631
|
+
budget: form.budget,
|
|
3632
|
+
disabled: locked,
|
|
3633
|
+
onChange: (budget) => setForm((f) => ({ ...f, budget }))
|
|
3634
|
+
}
|
|
3635
|
+
),
|
|
3492
3636
|
/* @__PURE__ */ jsx(
|
|
3493
3637
|
SettingRow,
|
|
3494
3638
|
{
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { useFluidGridsAnalytics, emitWorkflowCreated, emitRunStarted, runTriggerFromMode, openRunQuotaUpgradePrompt, emitWorkflowPublished } from './chunk-
|
|
2
|
-
import { WorkflowDefinitionsDocument, WorkflowDefinitionDocument, WorkflowVersionsDocument, CreateWorkflowDefinitionDocument, ImportWorkflowDocument, PreviewN8nImportDocument, UpdateWorkflowDefinitionDocument, CreateWorkflowVersionDocument, DeleteWorkflowDefinitionDocument, DuplicateWorkflowDocument, RestoreWorkflowVersionDocument, TriggerWorkflowDocument, WorkflowRunsDocument, WorkflowRunDocument, DashboardSummaryDocument, ActivateWorkflowDefinitionDocument, DeactivateWorkflowDefinitionDocument } from './chunk-
|
|
1
|
+
import { useFluidGridsAnalytics, emitWorkflowCreated, emitRunStarted, runTriggerFromMode, openRunQuotaUpgradePrompt, emitWorkflowPublished } from './chunk-CXBF63PL.js';
|
|
2
|
+
import { WorkflowDefinitionsDocument, WorkflowDefinitionDocument, WorkflowVersionsDocument, CreateWorkflowDefinitionDocument, ImportWorkflowDocument, PreviewN8nImportDocument, UpdateWorkflowDefinitionDocument, CreateWorkflowVersionDocument, DeleteWorkflowDefinitionDocument, DuplicateWorkflowDocument, RestoreWorkflowVersionDocument, TriggerWorkflowDocument, WorkflowRunsDocument, WorkflowRunDocument, DashboardSummaryDocument, ActivateWorkflowDefinitionDocument, DeactivateWorkflowDefinitionDocument } from './chunk-UDS2FA24.js';
|
|
3
3
|
import { useTr } from './chunk-UULVIT25.js';
|
|
4
4
|
import { getFluidGridsClient } from './chunk-PDODDDHY.js';
|
|
5
5
|
import { throwIfResultError, emitFluidGridsEvent, emitOperationErrorEvent } from './chunk-JKLZ6YZ3.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FluidgridsEntityTagsDocument, AvailableFluidgridsTagsDocument, SearchFluidgridsTagsDocument, TagFluidgridsEntityDocument, UntagFluidgridsEntityDocument, ReplaceFluidgridsEntityTagsDocument, CreateFluidgridsTagDocument, DataTablesTagsDocument } from './chunk-
|
|
1
|
+
import { FluidgridsEntityTagsDocument, AvailableFluidgridsTagsDocument, SearchFluidgridsTagsDocument, TagFluidgridsEntityDocument, UntagFluidgridsEntityDocument, ReplaceFluidgridsEntityTagsDocument, CreateFluidgridsTagDocument, DataTablesTagsDocument } from './chunk-UDS2FA24.js';
|
|
2
2
|
import { getFluidGridsClient } from './chunk-PDODDDHY.js';
|
|
3
3
|
import { useState, useCallback, useEffect } from 'react';
|
|
4
4
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { versionsOfWorkflow, VersionDiffDialog } from './chunk-
|
|
1
|
+
import { versionsOfWorkflow, VersionDiffDialog } from './chunk-XSTTM74F.js';
|
|
2
2
|
import { historyControls } from './chunk-FNZZ5JJL.js';
|
|
3
|
-
import { useWorkflowDefinitions, useRestoreWorkflowVersion } from './chunk-
|
|
3
|
+
import { useWorkflowDefinitions, useRestoreWorkflowVersion } from './chunk-6HXJEIDT.js';
|
|
4
4
|
import { useFluidGridsPageControls } from './chunk-PJAWNFJV.js';
|
|
5
5
|
import { FluidGridsDocsLink } from './chunk-4VJ3MDOV.js';
|
|
6
6
|
import { useTr } from './chunk-UULVIT25.js';
|
|
@@ -2,7 +2,7 @@ import { useBuilderReadOnly } from './chunk-SDZEAIIE.js';
|
|
|
2
2
|
import { STICKY_NOTE_TYPE, useFlowStore, resolveStickyColor, STICKY_COLORS, stickySurfaceStyle, resolveOperationName, synchronizeOperationUpdate, isNodeTrigger, resolveOutputHandles, resolveInputHandles, outputHandlesSpacerHeight, WAIT_FOR_SIGNAL_NODE_TYPE, CODE_WORKFLOW_NODE_TYPE, readSignalName, LogicNodeCard, NodeCard, NodeCardHeader, NodeCardBody, InputHandles, OutputHandles, NodeTypeIcon, nodeAccent, readCodeWorkflowState, interfaceFields, interfaceHandlers, partitionStickyNotes, DEFAULT_STICKY_COLOR } from './chunk-K2X63CR2.js';
|
|
3
3
|
import { getGlobalStoreClient, createGlobalStoreClient, setGlobalStoreClient, resetGlobalStoreClient } from './chunk-TYI2XOSI.js';
|
|
4
4
|
import { GetMyNodeInstallationsDocument } from './chunk-G77IGC3Y.js';
|
|
5
|
-
import { fetchAllNodeEndpointConfigs, NodeManifestDocument, ExecuteStepDocument, TriggerWorkflowDocument, RunFromNodeDocument, ExecutionDetailDocument, WorkflowRunDocument, UpdateWorkflowDefinitionDocument, CreateWorkflowDefinitionDocument, CreateWorkflowVersionDocument, WorkflowDefinitionDocument } from './chunk-
|
|
5
|
+
import { fetchAllNodeEndpointConfigs, NodeManifestDocument, ExecuteStepDocument, TriggerWorkflowDocument, RunFromNodeDocument, ExecutionDetailDocument, WorkflowRunDocument, UpdateWorkflowDefinitionDocument, CreateWorkflowDefinitionDocument, CreateWorkflowVersionDocument, WorkflowDefinitionDocument } from './chunk-UDS2FA24.js';
|
|
6
6
|
import { useTr, ENGLISH_FALLBACK_TRANSLATOR, FluidGridsTranslationProvider } from './chunk-UULVIT25.js';
|
|
7
7
|
import { waitForFluidGridsClient, getFluidGridsClient, getFluidGridsClientSafe, createFluidGridsClient, setFluidGridsClient, resetFluidGridsClient } from './chunk-PDODDDHY.js';
|
|
8
8
|
import { throwIfResultError, describeOperationError, emitFluidGridsEvent, emitOperationErrorEvent, emitRunCompletedOnce } from './chunk-JKLZ6YZ3.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PublishCustomNodeAction } from './chunk-XRGAH6IQ.js';
|
|
2
|
-
import { NodeEndpointConfigsDocument, NodeEndpointConfigDocument, NodeManifestDocument, fetchAllNodeEndpointConfigs } from './chunk-
|
|
2
|
+
import { NodeEndpointConfigsDocument, NodeEndpointConfigDocument, NodeManifestDocument, fetchAllNodeEndpointConfigs } from './chunk-UDS2FA24.js';
|
|
3
3
|
import { useTr } from './chunk-UULVIT25.js';
|
|
4
4
|
import { getFluidGridsClient } from './chunk-PDODDDHY.js';
|
|
5
5
|
import { useMemo, useState, useCallback, useEffect } from 'react';
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { TabButton, ReadOnlyFieldset, NodeSettingsPanel, NodeParamsForm, SchedulePanel, SCHEDULE_NODE_TYPE } from './chunk-QYHRRSEC.js';
|
|
2
|
+
import { nodeTitle, FieldTree } from './chunk-V6KLU67V.js';
|
|
3
|
+
import { useFluidGridsPermission, FLUIDGRIDS_PERMISSIONS } from './chunk-ERT444RG.js';
|
|
4
|
+
import { usePhaseCFlags } from './chunk-CXBF63PL.js';
|
|
5
|
+
import { useFlowStore } from './chunk-K2X63CR2.js';
|
|
6
|
+
import { useTr } from './chunk-UULVIT25.js';
|
|
7
|
+
import { Icon } from '@iconify/react';
|
|
8
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
9
|
+
import { cn } from '@burdenoff/fe-libs/utils';
|
|
10
|
+
import { useState } from 'react';
|
|
11
|
+
|
|
12
|
+
function NodeInputFields({
|
|
13
|
+
config,
|
|
14
|
+
testIdPrefix
|
|
15
|
+
}) {
|
|
16
|
+
const tr = useTr();
|
|
17
|
+
const { nodes, sourceIds, selectedSource, setSelectedSource, inputFields } = config;
|
|
18
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
19
|
+
/* @__PURE__ */ jsxs("div", { className: "flex shrink-0 items-center gap-2 border-b border-border px-3 py-2", children: [
|
|
20
|
+
/* @__PURE__ */ jsx(
|
|
21
|
+
Icon,
|
|
22
|
+
{
|
|
23
|
+
icon: "mdi:tray-arrow-down",
|
|
24
|
+
className: "size-3.5 text-muted-foreground"
|
|
25
|
+
}
|
|
26
|
+
),
|
|
27
|
+
/* @__PURE__ */ jsx("span", { className: "text-[11px] font-semibold uppercase tracking-[0.12em] text-muted-foreground", children: tr("fluidgrids.builder.quickConfigPanel.inputHeading", "Input") }),
|
|
28
|
+
sourceIds.length > 0 && /* @__PURE__ */ jsx(
|
|
29
|
+
"select",
|
|
30
|
+
{
|
|
31
|
+
className: "ml-auto max-w-[55%] truncate rounded-md border border-border-default bg-bg-surface px-1.5 py-0.5 text-[11px] text-text-primary scheme-normal dark:scheme-dark outline-none focus:border-action-primary-border [&_option]:bg-bg-surface [&_option]:text-text-primary",
|
|
32
|
+
value: selectedSource ?? "",
|
|
33
|
+
onChange: (e) => setSelectedSource(e.target.value),
|
|
34
|
+
"aria-label": tr(
|
|
35
|
+
"fluidgrids.builder.quickConfigPanel.inputHeading",
|
|
36
|
+
"Input"
|
|
37
|
+
),
|
|
38
|
+
"data-testid": `${testIdPrefix}-source-selector`,
|
|
39
|
+
children: sourceIds.map((sid) => {
|
|
40
|
+
const sn = nodes.find((n) => n.id === sid);
|
|
41
|
+
return /* @__PURE__ */ jsx("option", { value: sid, children: nodeTitle(sn) }, sid);
|
|
42
|
+
})
|
|
43
|
+
}
|
|
44
|
+
)
|
|
45
|
+
] }),
|
|
46
|
+
/* @__PURE__ */ jsx("div", { className: "min-h-0 flex-1 overflow-auto px-2 py-2", children: inputFields.length > 0 ? /* @__PURE__ */ jsx(FieldTree, { fields: inputFields, draggable: true }) : /* @__PURE__ */ jsx("p", { className: "px-2 py-4 text-center text-xs text-muted-foreground", children: sourceIds.length === 0 ? tr(
|
|
47
|
+
"fluidgrids.builder.quickConfigPanel.noUpstreamNode",
|
|
48
|
+
"Connect an upstream node to map its fields."
|
|
49
|
+
) : tr(
|
|
50
|
+
"fluidgrids.builder.quickConfigPanel.noOutputFields",
|
|
51
|
+
"The selected source has no declared output fields."
|
|
52
|
+
) }) }),
|
|
53
|
+
/* @__PURE__ */ jsx("p", { className: "shrink-0 border-t border-border px-3 py-1.5 text-[10px] leading-snug text-muted-foreground", children: tr(
|
|
54
|
+
"fluidgrids.builder.quickConfigPanel.dragFieldHint",
|
|
55
|
+
"Drag a field onto a parameter to map it."
|
|
56
|
+
) })
|
|
57
|
+
] });
|
|
58
|
+
}
|
|
59
|
+
function NodeEditorTabs({
|
|
60
|
+
active,
|
|
61
|
+
onChange,
|
|
62
|
+
hasSchedule,
|
|
63
|
+
testIdPrefix,
|
|
64
|
+
className
|
|
65
|
+
}) {
|
|
66
|
+
const tr = useTr();
|
|
67
|
+
return /* @__PURE__ */ jsxs(
|
|
68
|
+
"div",
|
|
69
|
+
{
|
|
70
|
+
className: cn(
|
|
71
|
+
"flex shrink-0 items-center gap-4 border-b border-border px-3",
|
|
72
|
+
className
|
|
73
|
+
),
|
|
74
|
+
children: [
|
|
75
|
+
/* @__PURE__ */ jsx(
|
|
76
|
+
TabButton,
|
|
77
|
+
{
|
|
78
|
+
active: active === "parameters",
|
|
79
|
+
onClick: () => onChange("parameters"),
|
|
80
|
+
testId: `${testIdPrefix}-tab-parameters`,
|
|
81
|
+
children: tr("fluidgrids.builder.nodeDetailView.tabParameters", "Parameters")
|
|
82
|
+
}
|
|
83
|
+
),
|
|
84
|
+
hasSchedule && /* @__PURE__ */ jsx(
|
|
85
|
+
TabButton,
|
|
86
|
+
{
|
|
87
|
+
active: active === "schedule",
|
|
88
|
+
onClick: () => onChange("schedule"),
|
|
89
|
+
testId: `${testIdPrefix}-tab-schedule`,
|
|
90
|
+
children: tr("fluidgrids.builder.nodeDetailView.tabSchedule", "Schedule")
|
|
91
|
+
}
|
|
92
|
+
),
|
|
93
|
+
/* @__PURE__ */ jsx(
|
|
94
|
+
TabButton,
|
|
95
|
+
{
|
|
96
|
+
active: active === "settings",
|
|
97
|
+
onClick: () => onChange("settings"),
|
|
98
|
+
testId: `${testIdPrefix}-tab-settings`,
|
|
99
|
+
children: tr("fluidgrids.builder.nodeDetailView.tabSettings", "Settings")
|
|
100
|
+
}
|
|
101
|
+
)
|
|
102
|
+
]
|
|
103
|
+
}
|
|
104
|
+
);
|
|
105
|
+
}
|
|
106
|
+
function activeNodeEditorTab(tab, hasSchedule) {
|
|
107
|
+
return tab === "schedule" && !hasSchedule ? "parameters" : tab;
|
|
108
|
+
}
|
|
109
|
+
function nodeHasScheduleTab(nodeType, schedulePolicies) {
|
|
110
|
+
return schedulePolicies && nodeType === SCHEDULE_NODE_TYPE;
|
|
111
|
+
}
|
|
112
|
+
function useNodeEditorTab(nodeType) {
|
|
113
|
+
const { schedulePolicies } = usePhaseCFlags();
|
|
114
|
+
const hasSchedule = nodeHasScheduleTab(nodeType, schedulePolicies);
|
|
115
|
+
const [tab, setTab] = useState("parameters");
|
|
116
|
+
return { tab: activeNodeEditorTab(tab, hasSchedule), setTab, hasSchedule };
|
|
117
|
+
}
|
|
118
|
+
function NodeEditorTabBody({
|
|
119
|
+
tab,
|
|
120
|
+
config,
|
|
121
|
+
nodeId,
|
|
122
|
+
testIdPrefix
|
|
123
|
+
}) {
|
|
124
|
+
if (tab === "schedule") {
|
|
125
|
+
return /* @__PURE__ */ jsx(
|
|
126
|
+
NodeEditorSchedule,
|
|
127
|
+
{
|
|
128
|
+
config,
|
|
129
|
+
nodeId,
|
|
130
|
+
testIdPrefix
|
|
131
|
+
}
|
|
132
|
+
);
|
|
133
|
+
}
|
|
134
|
+
if (tab === "settings") {
|
|
135
|
+
return /* @__PURE__ */ jsx("div", { className: "p-3", "data-testid": `${testIdPrefix}-settings`, children: /* @__PURE__ */ jsx(ReadOnlyFieldset, { children: /* @__PURE__ */ jsx(NodeSettingsPanel, { config }) }) });
|
|
136
|
+
}
|
|
137
|
+
return /* @__PURE__ */ jsx("div", { className: "space-y-4 p-3", "data-testid": `${testIdPrefix}-params`, children: /* @__PURE__ */ jsx(ReadOnlyFieldset, { className: "space-y-4", children: /* @__PURE__ */ jsx(
|
|
138
|
+
NodeParamsForm,
|
|
139
|
+
{
|
|
140
|
+
config,
|
|
141
|
+
nodeType: config.node?.type,
|
|
142
|
+
testIdPrefix
|
|
143
|
+
}
|
|
144
|
+
) }) });
|
|
145
|
+
}
|
|
146
|
+
function NodeEditorSchedule({
|
|
147
|
+
config,
|
|
148
|
+
nodeId,
|
|
149
|
+
testIdPrefix
|
|
150
|
+
}) {
|
|
151
|
+
const workflowKey = useFlowStore((s) => s.workflow.workflowKey);
|
|
152
|
+
const workflowDbId = useFlowStore((s) => s.workflow.dbId);
|
|
153
|
+
const { allowed: canExecute } = useFluidGridsPermission(
|
|
154
|
+
FLUIDGRIDS_PERMISSIONS.WORKFLOW_RUN_EXECUTE
|
|
155
|
+
);
|
|
156
|
+
const { allowed: canUpdate } = useFluidGridsPermission(
|
|
157
|
+
FLUIDGRIDS_PERMISSIONS.WORKFLOW_UPDATE
|
|
158
|
+
);
|
|
159
|
+
return /* @__PURE__ */ jsx("div", { "data-testid": `${testIdPrefix}-schedule`, children: /* @__PURE__ */ jsx(
|
|
160
|
+
SchedulePanel,
|
|
161
|
+
{
|
|
162
|
+
state: config.argsState,
|
|
163
|
+
writeField: config.writeFixed,
|
|
164
|
+
workflowKey: workflowDbId && workflowKey ? workflowKey : null,
|
|
165
|
+
triggerNodeId: nodeId,
|
|
166
|
+
canExecute,
|
|
167
|
+
canUpdate
|
|
168
|
+
}
|
|
169
|
+
) });
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
export { NodeEditorTabBody, NodeEditorTabs, NodeInputFields, useNodeEditorTab };
|