@burdenoff/fluidgrids-fe-sdk 2026.1110.2 → 2026.1110.3
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-7JT2YODS.js} +3 -4
- package/dist/{ExecutionsListPage-A4GCUNFR.js → ExecutionsListPage-JWQWJL2K.js} +3 -4
- package/dist/{WorkflowBuilder-ZLVMV2UA.js → WorkflowBuilder-D6LOQS4H.js} +8 -9
- package/dist/{agentTools-V26FOMTS.js → agentTools-73W5DJDQ.js} +1 -1
- package/dist/{chunk-PI4AW4T2.js → chunk-24VHW3ZF.js} +18 -17
- package/dist/{chunk-OVZA4IM7.js → chunk-2ZS2HN4T.js} +1 -1
- package/dist/{chunk-D4L5BN64.js → chunk-42PMXPHK.js} +93 -1
- package/dist/{chunk-WGUHISC2.js → chunk-6SEPRHQZ.js} +2 -2
- package/dist/{chunk-ZZBZPBO5.js → chunk-7XJKLVRJ.js} +1 -1
- package/dist/chunk-DZRVA4DL.js +172 -0
- package/dist/{chunk-OZNFRJKC.js → chunk-F4PAT5DP.js} +1 -1
- package/dist/{chunk-7UFE2CHD.js → chunk-H2B2J2PY.js} +23 -97
- package/dist/{chunk-CBX2CXGH.js → chunk-L2WJTIFQ.js} +2 -2
- package/dist/{chunk-5ZAOXCIQ.js → chunk-LCHXXVSV.js} +2 -2
- package/dist/{chunk-5TGPH3CX.js → chunk-M7USD2VH.js} +1 -1
- package/dist/chunk-QUYK5PAZ.js +338 -0
- package/dist/{chunk-XLU63IUB.js → chunk-WYNLB54U.js} +2 -2
- package/dist/{chunk-5V7PMLQN.js → chunk-XIB26SW6.js} +1116 -22
- package/dist/executions.js +4 -5
- package/dist/index.js +22 -23
- package/dist/{node-detail-view-2AFXRNX6.js → node-detail-view-5NBIDBIK.js} +5 -6
- package/dist/quick-config-panel-ETLKCV7H.js +411 -0
- package/dist/settings.js +3 -4
- package/dist/templates.js +8 -9
- package/dist/workflow-builder.js +9 -10
- 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,6 +1,6 @@
|
|
|
1
|
-
export { ExecutionDetailPage } from './chunk-
|
|
1
|
+
export { ExecutionDetailPage } from './chunk-6SEPRHQZ.js';
|
|
2
2
|
import './chunk-G7BT24PD.js';
|
|
3
|
-
import './chunk-
|
|
3
|
+
import './chunk-F4PAT5DP.js';
|
|
4
4
|
import './chunk-2DBAQR6F.js';
|
|
5
5
|
import './chunk-L5MZ74DA.js';
|
|
6
6
|
import './chunk-NZAYYUQ4.js';
|
|
@@ -13,8 +13,7 @@ import './chunk-Y53CVZVV.js';
|
|
|
13
13
|
import './chunk-FNZZ5JJL.js';
|
|
14
14
|
import './chunk-K22NDWSD.js';
|
|
15
15
|
import './chunk-PJAWNFJV.js';
|
|
16
|
-
import './chunk-
|
|
17
|
-
import './chunk-WZ3EJVS6.js';
|
|
16
|
+
import './chunk-42PMXPHK.js';
|
|
18
17
|
import './chunk-6CPQVLHT.js';
|
|
19
18
|
import './chunk-ERT444RG.js';
|
|
20
19
|
import './chunk-DDINUPO3.js';
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
export { ExecutionsListPage } from './chunk-
|
|
2
|
-
import './chunk-
|
|
1
|
+
export { ExecutionsListPage } from './chunk-WYNLB54U.js';
|
|
2
|
+
import './chunk-F4PAT5DP.js';
|
|
3
3
|
import './chunk-2DBAQR6F.js';
|
|
4
4
|
import './chunk-5ERAJC2I.js';
|
|
5
5
|
import './chunk-DIIGFBYT.js';
|
|
6
6
|
import './chunk-FNZZ5JJL.js';
|
|
7
7
|
import './chunk-K22NDWSD.js';
|
|
8
8
|
import './chunk-PJAWNFJV.js';
|
|
9
|
-
import './chunk-
|
|
10
|
-
import './chunk-WZ3EJVS6.js';
|
|
9
|
+
import './chunk-42PMXPHK.js';
|
|
11
10
|
import './chunk-4VJ3MDOV.js';
|
|
12
11
|
import './chunk-6CPQVLHT.js';
|
|
13
12
|
import './chunk-ERT444RG.js';
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
export { WorkflowBuilder } from './chunk-
|
|
1
|
+
export { WorkflowBuilder } from './chunk-L2WJTIFQ.js';
|
|
2
2
|
import './chunk-NRI7AUBH.js';
|
|
3
3
|
import './chunk-PIKYQE7P.js';
|
|
4
|
-
import './chunk-
|
|
4
|
+
import './chunk-H2B2J2PY.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-DZRVA4DL.js';
|
|
13
|
+
import './chunk-XIB26SW6.js';
|
|
14
|
+
import './chunk-24VHW3ZF.js';
|
|
15
15
|
import './chunk-KZCNJAMK.js';
|
|
16
16
|
import './chunk-QGRVYPQC.js';
|
|
17
17
|
import './chunk-2H4XAES7.js';
|
|
@@ -24,9 +24,8 @@ import './chunk-K22NDWSD.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-7XJKLVRJ.js';
|
|
28
|
+
import './chunk-42PMXPHK.js';
|
|
30
29
|
import './chunk-4VJ3MDOV.js';
|
|
31
30
|
import './chunk-6CPQVLHT.js';
|
|
32
31
|
import './chunk-ERT444RG.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { computeAttachPosition } from './chunk-JNSHR2J2.js';
|
|
2
|
-
import { nodeTitle, selectedOperationOf, paramsFromOperation, fixedParameterState } from './chunk-
|
|
2
|
+
import { nodeTitle, selectedOperationOf, paramsFromOperation, fixedParameterState } from './chunk-24VHW3ZF.js';
|
|
3
3
|
import { NODE_CONFIGS, createConfiguredNode, isNodeConfigsInitialized, useSaveStatusStore, autosaveAllowedFor, isFlowComplete, isNodeTypeHiddenFromPalette } from './chunk-DDINUPO3.js';
|
|
4
4
|
import './chunk-SDZEAIIE.js';
|
|
5
5
|
import { resolveOutputHandles, resolveInputHandles, useFlowStore } from './chunk-K2X63CR2.js';
|
|
@@ -9,23 +9,6 @@ import { Icon } from '@iconify/react';
|
|
|
9
9
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
10
10
|
import { cn } from '@burdenoff/fe-libs/utils';
|
|
11
11
|
|
|
12
|
-
// src/builder/lib/mapping-input.ts
|
|
13
|
-
function latestNodeLog(logs, nodeId, runId) {
|
|
14
|
-
return nodeId && runId ? logs.filter((log) => log.nodeId === nodeId && log.runId === runId).at(-1) : void 0;
|
|
15
|
-
}
|
|
16
|
-
function resolveMappingInput({
|
|
17
|
-
source,
|
|
18
|
-
operation,
|
|
19
|
-
runId,
|
|
20
|
-
logs
|
|
21
|
-
}) {
|
|
22
|
-
const sourceLog = latestNodeLog(logs, source?.id, runId);
|
|
23
|
-
const data = sourceLog?.output ?? void 0;
|
|
24
|
-
return {
|
|
25
|
-
data,
|
|
26
|
-
fields: data !== void 0 ? fieldsFromValue(data) : source ? declaredOutputFields(source.type, operation) : []
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
12
|
var FIELD_PATH_MIME = "application/x-fg-field-path";
|
|
30
13
|
var TYPE_ICON = {
|
|
31
14
|
string: "mdi:format-text",
|
|
@@ -117,6 +100,24 @@ function FieldTree({
|
|
|
117
100
|
)) });
|
|
118
101
|
}
|
|
119
102
|
|
|
103
|
+
// src/builder/lib/mapping-input.ts
|
|
104
|
+
function latestNodeLog(logs, nodeId, runId) {
|
|
105
|
+
return nodeId && runId ? logs.filter((log) => log.nodeId === nodeId && log.runId === runId).at(-1) : void 0;
|
|
106
|
+
}
|
|
107
|
+
function resolveMappingInput({
|
|
108
|
+
source,
|
|
109
|
+
operation,
|
|
110
|
+
runId,
|
|
111
|
+
logs
|
|
112
|
+
}) {
|
|
113
|
+
const sourceLog = latestNodeLog(logs, source?.id, runId);
|
|
114
|
+
const data = sourceLog?.output ?? void 0;
|
|
115
|
+
return {
|
|
116
|
+
data,
|
|
117
|
+
fields: data !== void 0 ? fieldsFromValue(data) : source ? declaredOutputFields(source.type, operation) : []
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
|
|
120
121
|
// src/modules/ui-blocks/parse.ts
|
|
121
122
|
function isRecord(value) {
|
|
122
123
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useNodeSelectedEvent, Card, FluidGridsMark } from './chunk-
|
|
1
|
+
import { useNodeSelectedEvent, Card, FluidGridsMark } from './chunk-H2B2J2PY.js';
|
|
2
2
|
import { Input } from './chunk-IEVSFCFS.js';
|
|
3
3
|
import { useWorkflowDefinition } from './chunk-K22NDWSD.js';
|
|
4
4
|
import { Button } from './chunk-QJAZXCFQ.js';
|
|
@@ -5,6 +5,98 @@ import { useState, useRef, useCallback, useEffect } from 'react';
|
|
|
5
5
|
import { Label, Textarea } from '@burdenoff/fe-libs/ui';
|
|
6
6
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
7
7
|
|
|
8
|
+
// src/modules/agent-definitions/utils/agent-form.ts
|
|
9
|
+
var DEFAULT_GRANT_DAYS = 30;
|
|
10
|
+
var MAX_GRANT_DAYS = 365;
|
|
11
|
+
var MAX_TOOL_RULES = 100;
|
|
12
|
+
var MAX_CONNECTIONS = 100;
|
|
13
|
+
var AgentFormError = class extends Error {
|
|
14
|
+
constructor(message) {
|
|
15
|
+
super(message);
|
|
16
|
+
this.name = "AgentFormError";
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
function emptyAgentForm() {
|
|
20
|
+
return {
|
|
21
|
+
name: "",
|
|
22
|
+
description: "",
|
|
23
|
+
tools: [{ nodeType: "", operations: "" }],
|
|
24
|
+
connectionScope: [],
|
|
25
|
+
requireToolApproval: false,
|
|
26
|
+
status: "ACTIVE"
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
function agentToForm(agent) {
|
|
30
|
+
return {
|
|
31
|
+
name: agent.name,
|
|
32
|
+
description: agent.description ?? "",
|
|
33
|
+
tools: agent.toolAllowlist.length > 0 ? agent.toolAllowlist.map((rule) => ({
|
|
34
|
+
nodeType: rule.nodeType,
|
|
35
|
+
operations: rule.operations.join(", ")
|
|
36
|
+
})) : [{ nodeType: "", operations: "" }],
|
|
37
|
+
connectionScope: [...agent.connectionScope],
|
|
38
|
+
requireToolApproval: agent.requireToolApproval,
|
|
39
|
+
status: agent.status
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
function splitOperations(value) {
|
|
43
|
+
return [
|
|
44
|
+
...new Set(
|
|
45
|
+
value.split(",").map((operation) => operation.trim()).filter(Boolean)
|
|
46
|
+
)
|
|
47
|
+
];
|
|
48
|
+
}
|
|
49
|
+
function formToInput(form) {
|
|
50
|
+
const name = form.name.trim();
|
|
51
|
+
if (name.length === 0 || name.length > 200) {
|
|
52
|
+
throw new AgentFormError("Give the agent a name of 1 to 200 characters.");
|
|
53
|
+
}
|
|
54
|
+
const description = form.description.trim();
|
|
55
|
+
if (description.length > 2e3) {
|
|
56
|
+
throw new AgentFormError(
|
|
57
|
+
"The description must be at most 2000 characters."
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
const rules = form.tools.map((row) => ({
|
|
61
|
+
nodeType: row.nodeType.trim(),
|
|
62
|
+
operations: splitOperations(row.operations)
|
|
63
|
+
})).filter((rule) => rule.nodeType.length > 0 || rule.operations.length > 0);
|
|
64
|
+
if (rules.some((rule) => rule.nodeType.length === 0)) {
|
|
65
|
+
throw new AgentFormError("Every tool rule needs a node type.");
|
|
66
|
+
}
|
|
67
|
+
if (rules.length > MAX_TOOL_RULES) {
|
|
68
|
+
throw new AgentFormError(`At most ${MAX_TOOL_RULES} tool rules.`);
|
|
69
|
+
}
|
|
70
|
+
const connectionScope = [...new Set(form.connectionScope.filter(Boolean))];
|
|
71
|
+
if (connectionScope.length > MAX_CONNECTIONS) {
|
|
72
|
+
throw new AgentFormError(`At most ${MAX_CONNECTIONS} connections.`);
|
|
73
|
+
}
|
|
74
|
+
return {
|
|
75
|
+
name,
|
|
76
|
+
description: description || null,
|
|
77
|
+
toolAllowlist: rules,
|
|
78
|
+
connectionScope,
|
|
79
|
+
requireToolApproval: form.requireToolApproval,
|
|
80
|
+
status: form.status
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
function grantDays(value) {
|
|
84
|
+
const days = Number(value);
|
|
85
|
+
if (!Number.isInteger(days) || days < 1 || days > MAX_GRANT_DAYS) {
|
|
86
|
+
throw new AgentFormError(
|
|
87
|
+
`A grant lasts between 1 and ${MAX_GRANT_DAYS} days.`
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
return days;
|
|
91
|
+
}
|
|
92
|
+
function describeRule(rule) {
|
|
93
|
+
return rule.operations.length > 0 ? `${rule.nodeType}: ${rule.operations.join(", ")}` : `${rule.nodeType}: any operation`;
|
|
94
|
+
}
|
|
95
|
+
function isAgentNodeType(nodeType) {
|
|
96
|
+
if (!nodeType) return false;
|
|
97
|
+
return nodeType === "store/ai-agent" || nodeType.includes("store/ai-agent");
|
|
98
|
+
}
|
|
99
|
+
|
|
8
100
|
// src/graphql/typed-calls.ts
|
|
9
101
|
async function readTyped(query, variables) {
|
|
10
102
|
const result = await getFluidGridsClient().query({
|
|
@@ -395,4 +487,4 @@ function StatusPill({
|
|
|
395
487
|
);
|
|
396
488
|
}
|
|
397
489
|
|
|
398
|
-
export { FieldError, JsonBlock, JsonField, NativeSelect, RUN_CONTROL_DIALOG_STYLE, StatusPill, backfillSchedule, cancelBatchOperation, clearArchiveSettings, completeActivityById, createPauseRule, createSearchAttribute, createSignalToken, deletePauseRule, deleteSearchAttribute, describeSchedule, failActivityById, fetchArchiveSettings, fetchBatchOperation, fetchBatchOperations, fetchCodeBundleSdk, fetchCodecServerSettings, fetchPauseRules, fetchRunControlFields, fetchRunHistoryArchive, fetchRunUpdate, fetchSearchAttributes, fetchSignalTokens, jsonArg, newRunControlId, parseJsonInput, parseJsonObjectInput, pauseActivities, pauseSchedule, queryRun, readTyped, resetActivities, resetRun, resetRunToLastCleanTask, revokeSignalToken, saveArchiveSettings, saveCodecServerSettings, sendRunUpdate, startBatchExport, startBatchOperation, startBatchTerminate, triggerSchedule, unpauseActivities, unpauseSchedule, updateActivityOptions, upsertRunSearchAttributes, useResource, writeTyped };
|
|
490
|
+
export { AgentFormError, DEFAULT_GRANT_DAYS, FieldError, JsonBlock, JsonField, MAX_GRANT_DAYS, NativeSelect, RUN_CONTROL_DIALOG_STYLE, StatusPill, agentToForm, backfillSchedule, cancelBatchOperation, clearArchiveSettings, completeActivityById, createPauseRule, createSearchAttribute, createSignalToken, deletePauseRule, deleteSearchAttribute, describeRule, describeSchedule, emptyAgentForm, failActivityById, fetchArchiveSettings, fetchBatchOperation, fetchBatchOperations, fetchCodeBundleSdk, fetchCodecServerSettings, fetchPauseRules, fetchRunControlFields, fetchRunHistoryArchive, fetchRunUpdate, fetchSearchAttributes, fetchSignalTokens, formToInput, grantDays, isAgentNodeType, jsonArg, newRunControlId, parseJsonInput, parseJsonObjectInput, pauseActivities, pauseSchedule, queryRun, readTyped, resetActivities, resetRun, resetRunToLastCleanTask, revokeSignalToken, saveArchiveSettings, saveCodecServerSettings, sendRunUpdate, startBatchExport, startBatchOperation, startBatchTerminate, triggerSchedule, unpauseActivities, unpauseSchedule, updateActivityOptions, upsertRunSearchAttributes, useResource, writeTyped };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useDurableRunFields, useRunHistory, useDeterminismStatus, useRunStackTrace, RunHistoryView, SignalRunDialog, terminateDurableRun } from './chunk-G7BT24PD.js';
|
|
2
|
-
import { useDurableParityRunFields, hasAgentNodeState, agentNodeTraces, orderNodesByExecution, useRunPending, useRunMetadata, ExecutionStatusBadge, NodeTimeline, RunLogViewer, NodeStatusBadge, setRunVersioningOverride } from './chunk-
|
|
2
|
+
import { useDurableParityRunFields, hasAgentNodeState, agentNodeTraces, orderNodesByExecution, useRunPending, useRunMetadata, ExecutionStatusBadge, NodeTimeline, RunLogViewer, NodeStatusBadge, setRunVersioningOverride } from './chunk-F4PAT5DP.js';
|
|
3
3
|
import { useExecution, useExecutionActions, useAutoRefresh, runChainLinks, shortRunId, callbackTone, parseMetadataDefinition, overrideRequestOf } from './chunk-2DBAQR6F.js';
|
|
4
4
|
import { fetchRunFailureClusters, OPEN_STATUSES, dismissRunFailureCluster, BUCKET_LABELS } from './chunk-L5MZ74DA.js';
|
|
5
5
|
import { aiCost, formatTokens, modelLabel } from './chunk-NZAYYUQ4.js';
|
|
@@ -8,7 +8,7 @@ import { EntityTagPicker, canSaveRunAsTestCase, useWorkflowProposal, WorkflowPro
|
|
|
8
8
|
import { buildNodeDisplayMap, formatRunVersion, nodeDisplayTitle } from './chunk-DIIGFBYT.js';
|
|
9
9
|
import { AiCreditBalanceSlot } from './chunk-Y53CVZVV.js';
|
|
10
10
|
import { useWorkflowVersions } from './chunk-K22NDWSD.js';
|
|
11
|
-
import { readTyped, writeTyped, useResource, fetchCodecServerSettings, fetchRunControlFields, fetchPauseRules, RUN_CONTROL_DIALOG_STYLE, fetchRunHistoryArchive, parseJsonInput, NativeSelect, JsonField, FieldError, StatusPill, JsonBlock, fetchSignalTokens, parseJsonObjectInput, queryRun, revokeSignalToken, upsertRunSearchAttributes, newRunControlId, fetchRunUpdate, createSignalToken, pauseActivities, unpauseActivities, resetActivities, updateActivityOptions, completeActivityById, failActivityById, sendRunUpdate, resetRunToLastCleanTask, resetRun } from './chunk-
|
|
11
|
+
import { readTyped, writeTyped, useResource, fetchCodecServerSettings, fetchRunControlFields, fetchPauseRules, RUN_CONTROL_DIALOG_STYLE, fetchRunHistoryArchive, parseJsonInput, NativeSelect, JsonField, FieldError, StatusPill, JsonBlock, fetchSignalTokens, parseJsonObjectInput, queryRun, revokeSignalToken, upsertRunSearchAttributes, newRunControlId, fetchRunUpdate, createSignalToken, pauseActivities, unpauseActivities, resetActivities, updateActivityOptions, completeActivityById, failActivityById, sendRunUpdate, resetRunToLastCleanTask, resetRun } from './chunk-42PMXPHK.js';
|
|
12
12
|
import { useFluidGridsPermission, FLUIDGRIDS_PERMISSIONS, SdkPermissionButton } from './chunk-ERT444RG.js';
|
|
13
13
|
import { useDurableFunctionNodesEnabled, useDurableParityEnabled, usePhaseCFlags, runSignalTargets, canSignalRun, formatElapsedMs, runDurationMs, useWorkflowTestsEnabled, durableInterfaceOf } from './chunk-DDINUPO3.js';
|
|
14
14
|
import { TaskQueuesDocument, TaskQueueStatsDocument, CreateTaskQueueDocument, UpdateTaskQueueDocument, DeleteTaskQueueDocument, WorkflowWorkersDocument, WorkerTokensDocument, CreateWorkerTokenDocument, RotateWorkerTokenDocument, DeleteWorkerTokenDocument, SetWorkerTokenConnectionAllowlistDocument, RunLogsDocument, RunLogAppendedDocument, ExplainRunDocument, RunAiUsageDocument } from './chunk-A6Q4FWB6.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { emptyAgentForm, agentToForm, describeRule, formToInput, AgentFormError, DEFAULT_GRANT_DAYS, MAX_GRANT_DAYS, grantDays } from './chunk-
|
|
1
|
+
import { emptyAgentForm, agentToForm, describeRule, formToInput, AgentFormError, DEFAULT_GRANT_DAYS, MAX_GRANT_DAYS, grantDays } from './chunk-42PMXPHK.js';
|
|
2
2
|
import { SdkPermissionGate, FLUIDGRIDS_PERMISSIONS } from './chunk-ERT444RG.js';
|
|
3
3
|
import { replaceAdapterConnections, connectionsForAdapter, matchesAdapterProvider, newConnectionProviderKey, isOptionalAdapter } from './chunk-DDINUPO3.js';
|
|
4
4
|
import { useTr } from './chunk-UULVIT25.js';
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { TabButton, ReadOnlyFieldset, NodeSettingsPanel, NodeParamsForm, SchedulePanel, SCHEDULE_NODE_TYPE } from './chunk-XIB26SW6.js';
|
|
2
|
+
import { nodeTitle, FieldTree } from './chunk-24VHW3ZF.js';
|
|
3
|
+
import { useFluidGridsPermission, FLUIDGRIDS_PERMISSIONS } from './chunk-ERT444RG.js';
|
|
4
|
+
import { usePhaseCFlags } from './chunk-DDINUPO3.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 };
|
|
@@ -2,7 +2,7 @@ import { validateDateRange, statusCountFilter, STATUS_COUNT_GROUP_BY, statusCoun
|
|
|
2
2
|
import { useAvailableTags, formatRunVersion, nodeDisplayTitle } from './chunk-DIIGFBYT.js';
|
|
3
3
|
import { executionsControls } from './chunk-FNZZ5JJL.js';
|
|
4
4
|
import { useFluidGridsPageControls } from './chunk-PJAWNFJV.js';
|
|
5
|
-
import { isAgentNodeType } from './chunk-
|
|
5
|
+
import { isAgentNodeType } from './chunk-42PMXPHK.js';
|
|
6
6
|
import { useDurableParityEnabled, formatElapsedMs, runDurationMs, nodeStateDurationMs } from './chunk-DDINUPO3.js';
|
|
7
7
|
import { SetWorkflowRunVersioningOverrideDocument, WorkflowRunsCountDocument, DurableParityRunFieldsDocument, WorkflowRunPendingDocument, WorkflowRunMetadataDocument } from './chunk-A6Q4FWB6.js';
|
|
8
8
|
import { useTr } from './chunk-UULVIT25.js';
|
|
@@ -4,10 +4,10 @@ import { templatePreview } from './chunk-B6CCE2RW.js';
|
|
|
4
4
|
import { Input } from './chunk-IEVSFCFS.js';
|
|
5
5
|
import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter as DialogFooter$1 } from './chunk-YXMFRQYV.js';
|
|
6
6
|
import { Badge as Badge$1 } from './chunk-TFCIZFDM.js';
|
|
7
|
-
import { LogsPanel
|
|
8
|
-
import { NodeInputFields } from './chunk-
|
|
9
|
-
import { useGlobalStoreClient,
|
|
10
|
-
import { useNodeConfig, nodeSubtitle, nodeTitle } from './chunk-
|
|
7
|
+
import { LogsPanel } from './chunk-QUYK5PAZ.js';
|
|
8
|
+
import { useNodeEditorTab, NodeEditorTabs, NodeInputFields, NodeEditorTabBody } from './chunk-DZRVA4DL.js';
|
|
9
|
+
import { useGlobalStoreClient, NodeExecutionActions } from './chunk-XIB26SW6.js';
|
|
10
|
+
import { useNodeConfig, nodeSubtitle, nodeTitle } from './chunk-24VHW3ZF.js';
|
|
11
11
|
import { CreateWorkflowRefusalDialog, WorkflowShareDialog, useWorkflowCodeExport, orderedExportFiles, fileBaseName, downloadWorkflowCodeExport, isLosslessReport, sortFidelityItems, isLossyFidelityItem, lineOfNode } from './chunk-QGRVYPQC.js';
|
|
12
12
|
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-2H4XAES7.js';
|
|
13
13
|
import { buildNodeDisplayMap } from './chunk-DIIGFBYT.js';
|
|
@@ -17,10 +17,10 @@ import { useRestoreWorkflowVersion, useWorkflowVersions, useActivateWorkflow, us
|
|
|
17
17
|
import { PublishCustomNodeAction } from './chunk-XRGAH6IQ.js';
|
|
18
18
|
import { Button } from './chunk-QJAZXCFQ.js';
|
|
19
19
|
import { useRequestedProposal } from './chunk-GLYINMOR.js';
|
|
20
|
-
import { useConnections, ConnectionFormDialog } from './chunk-
|
|
20
|
+
import { useConnections, ConnectionFormDialog } from './chunk-7XJKLVRJ.js';
|
|
21
21
|
import { FluidGridsDocsLink } from './chunk-4VJ3MDOV.js';
|
|
22
22
|
import { SdkPermissionButton, FLUIDGRIDS_PERMISSIONS, useFluidGridsPermission, SdkPermissionGate } from './chunk-ERT444RG.js';
|
|
23
|
-
import { leaseCallQueue, RUNS_QUOTA_NAME, BILLING_PLANS_PATH, emitUpgradeClicked, FluidGridsContext, emitWorkflowCreated, emitTemplateUsed, ensureNodeConfigsLoaded, NODE_CONFIGS, useEditLeaseStore, useEditLeaseLocked, registerWorkflowNodeTypes, emitNodeInstalled, useNodeExecution, usePaletteGates, onNodeTypesUpdate, NODE_TYPES, getNodeMetadata, refetchStoreNodes, AVAILABLE_NODES, EDIT_SESSION_ID, useInsertNode, useSaveStatusStore, useManualSave, useDurableFunctionNodesEnabled, bannerOf, editStateFor, useSaveWorkflow, filterPaletteNodes, useFluidGridsAnalytics, useGuardedNavigate, sessionBeforeReload, forgetSessionForReload, releasesOnClose, touchesSavedFields, isLocked, watchLeavingLosesChanges, workflowFingerprint, savedEverythingBeforeLeaving, refusalOfQuota, buildStickyNode, NODES_METADATA, shouldReleaseForIdle, tickAction, rememberSessionForReload, leavingLosesChanges, buildOperationSeed, useDurableParityEnabled, useWorkflowTestsEnabled, useFluidGridsFlag, FLUIDGRIDS_FLAGS, useFlowValidator, saveIndicatorOf, departingSave, inAppLeaveTarget, isNodeConfigsInitialized, phaseAfterAcquire, rememberOwnStatusChange, useRunGuard, saveFailureActionOf, getNodeDetail, loadDefinitionJson, canAutosave, isNodeTypeHiddenFromPalette,
|
|
23
|
+
import { leaseCallQueue, RUNS_QUOTA_NAME, BILLING_PLANS_PATH, emitUpgradeClicked, FluidGridsContext, emitWorkflowCreated, emitTemplateUsed, ensureNodeConfigsLoaded, NODE_CONFIGS, useEditLeaseStore, useEditLeaseLocked, registerWorkflowNodeTypes, emitNodeInstalled, useNodeExecution, usePaletteGates, onNodeTypesUpdate, NODE_TYPES, getNodeMetadata, refetchStoreNodes, AVAILABLE_NODES, EDIT_SESSION_ID, useInsertNode, useSaveStatusStore, useManualSave, useDurableFunctionNodesEnabled, bannerOf, editStateFor, useSaveWorkflow, filterPaletteNodes, useFluidGridsAnalytics, useGuardedNavigate, sessionBeforeReload, forgetSessionForReload, releasesOnClose, touchesSavedFields, isLocked, watchLeavingLosesChanges, workflowFingerprint, savedEverythingBeforeLeaving, refusalOfQuota, buildStickyNode, NODES_METADATA, shouldReleaseForIdle, tickAction, rememberSessionForReload, leavingLosesChanges, buildOperationSeed, useDurableParityEnabled, useWorkflowTestsEnabled, useFluidGridsFlag, FLUIDGRIDS_FLAGS, useFlowValidator, saveIndicatorOf, departingSave, inAppLeaveTarget, isNodeConfigsInitialized, phaseAfterAcquire, rememberOwnStatusChange, useRunGuard, saveFailureActionOf, getNodeDetail, loadDefinitionJson, canAutosave, isNodeTypeHiddenFromPalette, AUTOSAVE_RETRY_DELAYS_MS, AUTOSAVE_DEBOUNCE_MS, editingLeaseLocked, autosaveAllowedFor, isFlowComplete, rememberRevision, phaseAfterTakeOver } from './chunk-DDINUPO3.js';
|
|
24
24
|
import { BuilderReadOnlyProvider, useBuilderReadOnly } from './chunk-SDZEAIIE.js';
|
|
25
25
|
import { useFlowStore, useIsValidConnection, NODE_TYPE_DRAG_DATA_FORMAT, NODE_OPERATION_DRAG_DATA_FORMAT, CODE_WORKFLOW_NODE_TYPE, STICKY_NOTE_TYPE, NodeTypeIcon, isImageIcon, isTriggerOperation, nodeAccent } from './chunk-K2X63CR2.js';
|
|
26
26
|
import { getGlobalStoreClient } from './chunk-TYI2XOSI.js';
|
|
@@ -2312,15 +2312,12 @@ function SidebarNodeEditorInner({
|
|
|
2312
2312
|
const setSelectedNode = useFlowStore(
|
|
2313
2313
|
(s) => s.actions.sidebar.panels.nodeProperties.setSelectedNode
|
|
2314
2314
|
);
|
|
2315
|
-
const {
|
|
2316
|
-
const isSchedule = schedulePolicies && node?.type === SCHEDULE_NODE_TYPE;
|
|
2317
|
-
const [tab, setTab] = useState("parameters");
|
|
2315
|
+
const { tab, setTab, hasSchedule } = useNodeEditorTab(node?.type);
|
|
2318
2316
|
const [showInput, setShowInput] = useState(false);
|
|
2319
2317
|
useEffect(() => {
|
|
2320
2318
|
if (!nodes.some((n) => n.id === nodeId)) setSelectedNode(null);
|
|
2321
2319
|
}, [nodes, nodeId, setSelectedNode]);
|
|
2322
2320
|
if (!node) return null;
|
|
2323
|
-
const activeTab = tab === "schedule" && !isSchedule ? "parameters" : tab;
|
|
2324
2321
|
return /* @__PURE__ */ jsxs(
|
|
2325
2322
|
"div",
|
|
2326
2323
|
{
|
|
@@ -2338,11 +2335,12 @@ function SidebarNodeEditorInner({
|
|
|
2338
2335
|
}
|
|
2339
2336
|
),
|
|
2340
2337
|
/* @__PURE__ */ jsx(
|
|
2341
|
-
|
|
2338
|
+
NodeEditorTabs,
|
|
2342
2339
|
{
|
|
2343
|
-
active:
|
|
2340
|
+
active: tab,
|
|
2344
2341
|
onChange: setTab,
|
|
2345
|
-
|
|
2342
|
+
hasSchedule,
|
|
2343
|
+
testIdPrefix: "sp"
|
|
2346
2344
|
}
|
|
2347
2345
|
),
|
|
2348
2346
|
/* @__PURE__ */ jsxs("div", { className: "min-h-0 flex-1 overflow-auto", children: [
|
|
@@ -2354,7 +2352,15 @@ function SidebarNodeEditorInner({
|
|
|
2354
2352
|
children: /* @__PURE__ */ jsx(NodeInputFields, { config, testIdPrefix: "sp" })
|
|
2355
2353
|
}
|
|
2356
2354
|
),
|
|
2357
|
-
/* @__PURE__ */ jsx(
|
|
2355
|
+
/* @__PURE__ */ jsx(
|
|
2356
|
+
NodeEditorTabBody,
|
|
2357
|
+
{
|
|
2358
|
+
tab,
|
|
2359
|
+
config,
|
|
2360
|
+
nodeId,
|
|
2361
|
+
testIdPrefix: "sp"
|
|
2362
|
+
}
|
|
2363
|
+
)
|
|
2358
2364
|
] }),
|
|
2359
2365
|
/* @__PURE__ */ jsx(EditorRunActions, { nodeId })
|
|
2360
2366
|
]
|
|
@@ -2442,86 +2448,6 @@ function EditorHeader({
|
|
|
2442
2448
|
}
|
|
2443
2449
|
);
|
|
2444
2450
|
}
|
|
2445
|
-
function EditorTabs({
|
|
2446
|
-
active,
|
|
2447
|
-
onChange,
|
|
2448
|
-
isSchedule
|
|
2449
|
-
}) {
|
|
2450
|
-
const tr = useTr();
|
|
2451
|
-
return /* @__PURE__ */ jsxs("div", { className: "flex shrink-0 items-center gap-4 border-b border-border px-3", children: [
|
|
2452
|
-
/* @__PURE__ */ jsx(
|
|
2453
|
-
TabButton,
|
|
2454
|
-
{
|
|
2455
|
-
active: active === "parameters",
|
|
2456
|
-
onClick: () => onChange("parameters"),
|
|
2457
|
-
testId: "sp-tab-parameters",
|
|
2458
|
-
children: tr("fluidgrids.builder.nodeDetailView.tabParameters", "Parameters")
|
|
2459
|
-
}
|
|
2460
|
-
),
|
|
2461
|
-
isSchedule && /* @__PURE__ */ jsx(
|
|
2462
|
-
TabButton,
|
|
2463
|
-
{
|
|
2464
|
-
active: active === "schedule",
|
|
2465
|
-
onClick: () => onChange("schedule"),
|
|
2466
|
-
testId: "sp-tab-schedule",
|
|
2467
|
-
children: tr("fluidgrids.builder.nodeDetailView.tabSchedule", "Schedule")
|
|
2468
|
-
}
|
|
2469
|
-
),
|
|
2470
|
-
/* @__PURE__ */ jsx(
|
|
2471
|
-
TabButton,
|
|
2472
|
-
{
|
|
2473
|
-
active: active === "settings",
|
|
2474
|
-
onClick: () => onChange("settings"),
|
|
2475
|
-
testId: "sp-tab-settings",
|
|
2476
|
-
children: tr("fluidgrids.builder.nodeDetailView.tabSettings", "Settings")
|
|
2477
|
-
}
|
|
2478
|
-
)
|
|
2479
|
-
] });
|
|
2480
|
-
}
|
|
2481
|
-
function EditorBody({
|
|
2482
|
-
tab,
|
|
2483
|
-
config,
|
|
2484
|
-
nodeId
|
|
2485
|
-
}) {
|
|
2486
|
-
if (tab === "schedule") {
|
|
2487
|
-
return /* @__PURE__ */ jsx(EditorSchedule, { config, nodeId });
|
|
2488
|
-
}
|
|
2489
|
-
if (tab === "settings") {
|
|
2490
|
-
return /* @__PURE__ */ jsx("div", { className: "p-3", "data-testid": "sp-settings", children: /* @__PURE__ */ jsx(ReadOnlyFieldset, { children: /* @__PURE__ */ jsx(NodeSettingsPanel, { config }) }) });
|
|
2491
|
-
}
|
|
2492
|
-
return /* @__PURE__ */ jsx("div", { className: "space-y-4 p-3", "data-testid": "sp-params", children: /* @__PURE__ */ jsx(ReadOnlyFieldset, { className: "space-y-4", children: /* @__PURE__ */ jsx(
|
|
2493
|
-
NodeParamsForm,
|
|
2494
|
-
{
|
|
2495
|
-
config,
|
|
2496
|
-
nodeType: config.node?.type,
|
|
2497
|
-
testIdPrefix: "sp"
|
|
2498
|
-
}
|
|
2499
|
-
) }) });
|
|
2500
|
-
}
|
|
2501
|
-
function EditorSchedule({
|
|
2502
|
-
config,
|
|
2503
|
-
nodeId
|
|
2504
|
-
}) {
|
|
2505
|
-
const workflowKey = useFlowStore((s) => s.workflow.workflowKey);
|
|
2506
|
-
const workflowDbId = useFlowStore((s) => s.workflow.dbId);
|
|
2507
|
-
const { allowed: canExecute } = useFluidGridsPermission(
|
|
2508
|
-
FLUIDGRIDS_PERMISSIONS.WORKFLOW_RUN_EXECUTE
|
|
2509
|
-
);
|
|
2510
|
-
const { allowed: canUpdate } = useFluidGridsPermission(
|
|
2511
|
-
FLUIDGRIDS_PERMISSIONS.WORKFLOW_UPDATE
|
|
2512
|
-
);
|
|
2513
|
-
return /* @__PURE__ */ jsx("div", { "data-testid": "sp-schedule", children: /* @__PURE__ */ jsx(
|
|
2514
|
-
SchedulePanel,
|
|
2515
|
-
{
|
|
2516
|
-
state: config.argsState,
|
|
2517
|
-
writeField: config.writeFixed,
|
|
2518
|
-
workflowKey: workflowDbId && workflowKey ? workflowKey : null,
|
|
2519
|
-
triggerNodeId: nodeId,
|
|
2520
|
-
canExecute,
|
|
2521
|
-
canUpdate
|
|
2522
|
-
}
|
|
2523
|
-
) });
|
|
2524
|
-
}
|
|
2525
2451
|
function EditorRunActions({ nodeId }) {
|
|
2526
2452
|
const nodes = useFlowStore((s) => s.workflow.nodes);
|
|
2527
2453
|
const edges = useFlowStore((s) => s.workflow.edges);
|
|
@@ -20526,12 +20452,12 @@ function EditLeaseBanner() {
|
|
|
20526
20452
|
);
|
|
20527
20453
|
}
|
|
20528
20454
|
var LazyNodeDetailView = lazy(
|
|
20529
|
-
() => import('./node-detail-view-
|
|
20455
|
+
() => import('./node-detail-view-5NBIDBIK.js').then((m) => ({
|
|
20530
20456
|
default: m.NodeDetailView
|
|
20531
20457
|
}))
|
|
20532
20458
|
);
|
|
20533
20459
|
var LazyQuickConfigPanel = lazy(
|
|
20534
|
-
() => import('./quick-config-panel-
|
|
20460
|
+
() => import('./quick-config-panel-ETLKCV7H.js').then((m) => ({
|
|
20535
20461
|
default: m.QuickConfigPanel
|
|
20536
20462
|
}))
|
|
20537
20463
|
);
|
|
@@ -20593,7 +20519,7 @@ var FlowBuilder = ({ readOnly = false }) => {
|
|
|
20593
20519
|
);
|
|
20594
20520
|
useEffect(() => {
|
|
20595
20521
|
let cancelled = false;
|
|
20596
|
-
void import('./agentTools-
|
|
20522
|
+
void import('./agentTools-73W5DJDQ.js').then(({ createBuilderAgentTools }) => {
|
|
20597
20523
|
if (cancelled) return;
|
|
20598
20524
|
setAgentTools(
|
|
20599
20525
|
createBuilderAgentTools({
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { isGuidedTourIntent, pickGuidedTour, withoutGuidedTourIntent, isCreateIntent, decideMissingWorkflow } from './chunk-NRI7AUBH.js';
|
|
2
2
|
import { registerLiveCanvasHandler } from './chunk-PIKYQE7P.js';
|
|
3
|
-
import { useWorkflowReloadStore, releaseLeaseKeptForReload, useInstalledNodes, buildNodeCheck, FlowBuilderPage, buildRequiredNodeTypes } from './chunk-
|
|
4
|
-
import { paramsFromOperation } from './chunk-
|
|
3
|
+
import { useWorkflowReloadStore, releaseLeaseKeptForReload, useInstalledNodes, buildNodeCheck, FlowBuilderPage, buildRequiredNodeTypes } from './chunk-H2B2J2PY.js';
|
|
4
|
+
import { paramsFromOperation } from './chunk-24VHW3ZF.js';
|
|
5
5
|
import { CreateWorkflowRefusalDialog } from './chunk-QGRVYPQC.js';
|
|
6
6
|
import { canvasFromDefinition } from './chunk-CKF2FBUP.js';
|
|
7
7
|
import { useLazyWorkflowDefinition, useCreateWorkflow } from './chunk-K22NDWSD.js';
|