@burdenoff/fluidgrids-fe-sdk 2026.1104.2 → 2026.1105.1
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/README.md +38 -0
- package/dist/ExecutionDetailPage-YBAMVPMB.js +26 -0
- package/dist/{WorkflowsList-YFD2RKKQ.js → ExecutionsListPage-NQIQXMTY.js} +10 -9
- package/dist/{WorkflowBuilder-4I44FWII.js → WorkflowBuilder-CRR5WP4V.js} +15 -14
- package/dist/{ExecutionsListPage-EZ65FXER.js → WorkflowsList-EV725VG5.js} +10 -9
- package/dist/{agentTools-SZZN6TP3.js → agentTools-PN4W7QZH.js} +7 -6
- package/dist/{chunk-4YCMMBSK.js → chunk-2QOAJF7V.js} +2 -2
- package/dist/{chunk-NTWG3CJX.js → chunk-3IXU7WUC.js} +32 -21
- package/dist/{chunk-KHXRYQYP.js → chunk-4QB6S7YW.js} +3 -2
- package/dist/{chunk-NJRCAE6K.js → chunk-6EZJ5J3B.js} +5 -5
- package/dist/{chunk-BIB7IH26.js → chunk-6P7DOBVN.js} +4 -4
- package/dist/{chunk-5D4XS3WJ.js → chunk-AG3VC7Y2.js} +17 -3
- package/dist/{chunk-NGXJHYV5.js → chunk-AMXJLVZN.js} +2 -2
- package/dist/{chunk-PXIFUMLA.js → chunk-AU7LACOY.js} +16 -11
- package/dist/{chunk-NIY6R42C.js → chunk-AZKVI4YN.js} +5 -4
- package/dist/{chunk-Q72EOY4T.js → chunk-BHAKNT5M.js} +9 -3
- package/dist/{chunk-AAIZ6S6E.js → chunk-C26QAWCT.js} +69 -87
- package/dist/{chunk-SS7Y66P5.js → chunk-CGR3AEZU.js} +2 -2
- package/dist/{chunk-NYBL5WHP.js → chunk-D7G5VWSH.js} +3 -3
- package/dist/{chunk-XCSCD3IU.js → chunk-DANOMJ5I.js} +7 -6
- package/dist/{chunk-F7LQL43U.js → chunk-EC2AN74G.js} +1 -1
- package/dist/{chunk-MF7JLSJX.js → chunk-FCT6POFX.js} +11 -2
- package/dist/{chunk-YYVRBROH.js → chunk-FJSXXO5W.js} +1 -1
- package/dist/{chunk-5UHAB75U.js → chunk-GVIYGJQG.js} +1 -1
- package/dist/{chunk-TBHAZK52.js → chunk-HLAUK5GM.js} +1 -1
- package/dist/{chunk-AFX3EKFN.js → chunk-HOTVUVZG.js} +15 -3
- package/dist/{chunk-DFIX6YWP.js → chunk-I3QPAEL6.js} +39 -20
- package/dist/{chunk-IK7IGG6T.js → chunk-JC4D7RQ6.js} +8 -7
- package/dist/{chunk-GEY7RXRZ.js → chunk-JDQYGH4Q.js} +4 -4
- package/dist/{chunk-4EUEKSEQ.js → chunk-L2N6DDOI.js} +2 -2
- package/dist/{chunk-WTV6SQYK.js → chunk-L44BRLW5.js} +12 -11
- package/dist/{chunk-OMB3WMDQ.js → chunk-MQN6YDX4.js} +10 -9
- package/dist/{chunk-XNU2PLJ2.js → chunk-MSQAULLG.js} +6 -5
- package/dist/{chunk-ZDCJPQ5M.js → chunk-MZFJL4X3.js} +1 -1
- package/dist/{chunk-X6PIU7FE.js → chunk-O2EB7UT2.js} +3 -2
- package/dist/{chunk-ON7LK6QH.js → chunk-R3Z7W4EX.js} +5 -4
- package/dist/chunk-UEG2WC3G.js +502 -0
- package/dist/chunk-US5QSLPV.js +316 -0
- package/dist/{chunk-VDJFTZ2H.js → chunk-VFVN7D3A.js} +2 -1
- package/dist/{chunk-D4WA2M2N.js → chunk-XLI75E3D.js} +3 -2
- package/dist/client-YVZMLEQX.js +3 -0
- package/dist/config-66FUPSG5.js +1 -0
- package/dist/executions.js +15 -14
- package/dist/global-client-N5EIFW6T.js +3 -0
- package/dist/history.js +8 -7
- package/dist/index.d.ts +96 -133
- package/dist/index.js +91 -72
- package/dist/{node-detail-view-GAGSLHAO.js → node-detail-view-3VG7XFIZ.js} +11 -10
- package/dist/nodes.js +4 -2
- package/dist/observability.js +8 -7
- package/dist/{quick-config-panel-44RBX6YR.js → quick-config-panel-GB7SDWHD.js} +8 -7
- package/dist/settings.js +9 -8
- package/dist/templates.js +14 -13
- package/dist/{workflow-builder-BMGVSwpy.d.ts → workflow-builder-7vv9dCdp.d.ts} +413 -2
- package/dist/workflow-builder.d.ts +2 -1
- package/dist/workflow-builder.js +16 -15
- package/dist/workflows-list.js +10 -9
- package/package.json +1 -1
- package/dist/ExecutionDetailPage-ND2VMU45.js +0 -25
- package/dist/chunk-6AMNEX2Y.js +0 -214
- package/dist/client-EYQDMR4O.js +0 -1
- package/dist/config-3DBXLCK3.js +0 -1
- package/dist/global-client-O2HCG5CJ.js +0 -1
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { SdkPermissionGate, FLUIDGRIDS_PERMISSIONS } from './chunk-5375NUIO.js';
|
|
2
2
|
import { useBuilderReadOnly, editorSeverity } from './chunk-OCJTTHTS.js';
|
|
3
|
-
import { getGlobalStoreClient, createGlobalStoreClient, setGlobalStoreClient, resetGlobalStoreClient } from './chunk-
|
|
4
|
-
import { getFluidGridsConfig, validateTrustedOrigin, resetFluidGridsExecutionState, setFluidGridsConfig, resetFluidGridsConfig } from './chunk-6AMNEX2Y.js';
|
|
3
|
+
import { getGlobalStoreClient, createGlobalStoreClient, setGlobalStoreClient, resetGlobalStoreClient } from './chunk-AU7LACOY.js';
|
|
5
4
|
import { GetMyNodeInstallationsDocument } from './chunk-G77IGC3Y.js';
|
|
6
5
|
import { fetchAllNodeEndpointConfigs, NodeManifestDocument, UpdateWorkflowDefinitionDocument, CreateWorkflowDefinitionDocument, CreateWorkflowVersionDocument, ExecuteStepDocument, TriggerWorkflowDocument, RunFromNodeDocument, ExecutionDetailDocument, WorkflowDefinitionDocument, WorkflowRunDocument } from './chunk-AVHBWJRY.js';
|
|
7
6
|
import { useTr, ENGLISH_FALLBACK_TRANSLATOR, FluidGridsTranslationProvider } from './chunk-UULVIT25.js';
|
|
8
|
-
import { waitForFluidGridsClient, getFluidGridsClient, getFluidGridsClientSafe, createFluidGridsClient, setFluidGridsClient, resetFluidGridsClient } from './chunk-
|
|
7
|
+
import { waitForFluidGridsClient, getFluidGridsClient, getFluidGridsClientSafe, createFluidGridsClient, setFluidGridsClient, resetFluidGridsClient } from './chunk-3IXU7WUC.js';
|
|
8
|
+
import { throwIfResultError, emitFluidGridsEvent, emitOperationErrorEvent, describeOperationError, emitRunCompletedOnce } from './chunk-US5QSLPV.js';
|
|
9
|
+
import { getFluidGridsConfig, validateTrustedOrigin, resetFluidGridsExecutionState, resetFluidGridsConfig, setFluidGridsConfig } from './chunk-UEG2WC3G.js';
|
|
9
10
|
import * as React from 'react';
|
|
10
11
|
import { memo, forwardRef, useState, useImperativeHandle, useRef, useEffect, useMemo, createContext, useCallback, useSyncExternalStore, useContext } from 'react';
|
|
11
12
|
import { useOptionalFeatureFlags } from '@burdenoff/fe-libs/shared/feature-flags';
|
|
12
|
-
import { CombinedGraphQLErrors, ServerError } from '@apollo/client/errors';
|
|
13
13
|
import { dispatchUpgradePrompt } from '@burdenoff/fe-libs/shared/components';
|
|
14
14
|
import { nanoid } from 'nanoid/non-secure';
|
|
15
15
|
import { addEdge, applyEdgeChanges, applyNodeChanges, useReactFlow, NodeResizer, getConnectedEdges, useStore, Handle, Position, useUpdateNodeInternals, useNodeId } from '@xyflow/react';
|
|
@@ -275,81 +275,6 @@ function usePaletteGates() {
|
|
|
275
275
|
const context = useOptionalFeatureFlags();
|
|
276
276
|
return useMemo(() => resolvePaletteGates(context), [context]);
|
|
277
277
|
}
|
|
278
|
-
function describeGraphQLError(error) {
|
|
279
|
-
const code = typeof error.extensions?.code === "string" ? error.extensions.code : void 0;
|
|
280
|
-
switch (code) {
|
|
281
|
-
case "QUOTA_EXHAUSTED": {
|
|
282
|
-
const quota = /Quota exhausted for (\S+)/.exec(error.message)?.[1];
|
|
283
|
-
const allowance = quota ? `"${quota}" quota` : "usage quota";
|
|
284
|
-
return `Quota exhausted \u2014 your workspace has used up its ${allowance}. Upgrade your plan or wait for the quota to reset.`;
|
|
285
|
-
}
|
|
286
|
-
case "QUOTA_NOT_PROVISIONED":
|
|
287
|
-
return "This workspace's plan does not include this usage allowance yet. Contact your workspace admin or support to have it provisioned.";
|
|
288
|
-
case "UNAUTHENTICATED":
|
|
289
|
-
return "Your session has expired. Please sign in again.";
|
|
290
|
-
case "FORBIDDEN":
|
|
291
|
-
return error.message || "You don't have permission to perform this action.";
|
|
292
|
-
default:
|
|
293
|
-
return error.message || "Unknown error";
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
function firstGraphQLErrorInBody(bodyText) {
|
|
297
|
-
try {
|
|
298
|
-
const parsed = JSON.parse(bodyText);
|
|
299
|
-
if (typeof parsed !== "object" || parsed === null) return null;
|
|
300
|
-
const errors = parsed.errors;
|
|
301
|
-
if (!Array.isArray(errors) || errors.length === 0) return null;
|
|
302
|
-
const first = errors[0];
|
|
303
|
-
if (typeof first !== "object" || first === null) return null;
|
|
304
|
-
const message = first.message;
|
|
305
|
-
if (typeof message !== "string") return null;
|
|
306
|
-
return first;
|
|
307
|
-
} catch {
|
|
308
|
-
return null;
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
function describeOperationError(error, fallback = "Unknown error") {
|
|
312
|
-
if (CombinedGraphQLErrors.is(error)) {
|
|
313
|
-
const first = error.errors[0];
|
|
314
|
-
return first ? describeGraphQLError(first) : error.message || fallback;
|
|
315
|
-
}
|
|
316
|
-
if (ServerError.is(error)) {
|
|
317
|
-
const first = firstGraphQLErrorInBody(error.bodyText);
|
|
318
|
-
if (first) return describeGraphQLError(first);
|
|
319
|
-
}
|
|
320
|
-
if (error instanceof Error) {
|
|
321
|
-
return error.message || fallback;
|
|
322
|
-
}
|
|
323
|
-
if (typeof error === "string" && error.length > 0) {
|
|
324
|
-
return error;
|
|
325
|
-
}
|
|
326
|
-
return fallback;
|
|
327
|
-
}
|
|
328
|
-
function throwIfResultError(result) {
|
|
329
|
-
if (result.error) {
|
|
330
|
-
throw new Error(describeOperationError(result.error), {
|
|
331
|
-
cause: result.error
|
|
332
|
-
});
|
|
333
|
-
}
|
|
334
|
-
return result;
|
|
335
|
-
}
|
|
336
|
-
function hasForbiddenCode(errors) {
|
|
337
|
-
return (errors ?? []).some((error) => error.extensions?.code === "FORBIDDEN");
|
|
338
|
-
}
|
|
339
|
-
function isForbiddenError(error) {
|
|
340
|
-
if (CombinedGraphQLErrors.is(error)) {
|
|
341
|
-
return hasForbiddenCode(error.errors);
|
|
342
|
-
}
|
|
343
|
-
if (ServerError.is(error)) {
|
|
344
|
-
if (error.statusCode === 403) return true;
|
|
345
|
-
const first = firstGraphQLErrorInBody(error.bodyText);
|
|
346
|
-
return first ? hasForbiddenCode([first]) : false;
|
|
347
|
-
}
|
|
348
|
-
if (error instanceof Error && error.cause !== void 0) {
|
|
349
|
-
return isForbiddenError(error.cause);
|
|
350
|
-
}
|
|
351
|
-
return false;
|
|
352
|
-
}
|
|
353
278
|
|
|
354
279
|
// src/billing/quota.ts
|
|
355
280
|
var RUNS_QUOTA_NAME = "fluidgrids.runs.monthly";
|
|
@@ -6358,6 +6283,9 @@ function FluidGridsProvider({
|
|
|
6358
6283
|
tenantId,
|
|
6359
6284
|
organizationId,
|
|
6360
6285
|
t,
|
|
6286
|
+
theme,
|
|
6287
|
+
auth,
|
|
6288
|
+
onEvent,
|
|
6361
6289
|
workspaceClient: externalWorkspaceClient,
|
|
6362
6290
|
globalClient: externalGlobalClient,
|
|
6363
6291
|
apolloClient: legacyClient,
|
|
@@ -6476,21 +6404,44 @@ function FluidGridsProvider({
|
|
|
6476
6404
|
resetGlobalStoreClient();
|
|
6477
6405
|
};
|
|
6478
6406
|
}, [globalClient]);
|
|
6407
|
+
const appliedTokens = useRef(null);
|
|
6408
|
+
const ownedHostHooks = useRef(/* @__PURE__ */ new Set());
|
|
6409
|
+
useEffect(
|
|
6410
|
+
() => () => {
|
|
6411
|
+
appliedTokens.current = null;
|
|
6412
|
+
ownedHostHooks.current.clear();
|
|
6413
|
+
resetFluidGridsConfig();
|
|
6414
|
+
},
|
|
6415
|
+
[]
|
|
6416
|
+
);
|
|
6479
6417
|
useEffect(() => {
|
|
6480
|
-
|
|
6418
|
+
const patch = {
|
|
6481
6419
|
apiGatewayUrl,
|
|
6482
6420
|
globalApiUrl,
|
|
6483
|
-
authToken,
|
|
6484
|
-
workspaceToken,
|
|
6485
6421
|
workspaceId,
|
|
6486
6422
|
productId: resolvedProductId,
|
|
6487
6423
|
trustedOrigins,
|
|
6488
6424
|
tenantId,
|
|
6489
6425
|
organizationId
|
|
6490
|
-
});
|
|
6491
|
-
return () => {
|
|
6492
|
-
resetFluidGridsConfig();
|
|
6493
6426
|
};
|
|
6427
|
+
const applied = appliedTokens.current;
|
|
6428
|
+
if (!applied || applied.authToken !== authToken || applied.workspaceToken !== workspaceToken) {
|
|
6429
|
+
patch.authToken = authToken;
|
|
6430
|
+
patch.workspaceToken = workspaceToken;
|
|
6431
|
+
appliedTokens.current = { authToken, workspaceToken };
|
|
6432
|
+
}
|
|
6433
|
+
const owned = ownedHostHooks.current;
|
|
6434
|
+
const writes = (key, value) => {
|
|
6435
|
+
if (value !== void 0) {
|
|
6436
|
+
owned.add(key);
|
|
6437
|
+
return true;
|
|
6438
|
+
}
|
|
6439
|
+
return owned.delete(key);
|
|
6440
|
+
};
|
|
6441
|
+
if (writes("theme", theme)) patch.theme = theme;
|
|
6442
|
+
if (writes("auth", auth)) patch.auth = auth;
|
|
6443
|
+
if (writes("onEvent", onEvent)) patch.onEvent = onEvent;
|
|
6444
|
+
setFluidGridsConfig(patch);
|
|
6494
6445
|
}, [
|
|
6495
6446
|
apiGatewayUrl,
|
|
6496
6447
|
globalApiUrl,
|
|
@@ -6500,7 +6451,10 @@ function FluidGridsProvider({
|
|
|
6500
6451
|
resolvedProductId,
|
|
6501
6452
|
trustedOrigins,
|
|
6502
6453
|
tenantId,
|
|
6503
|
-
organizationId
|
|
6454
|
+
organizationId,
|
|
6455
|
+
theme,
|
|
6456
|
+
auth,
|
|
6457
|
+
onEvent
|
|
6504
6458
|
]);
|
|
6505
6459
|
const contextValue = useMemo(() => {
|
|
6506
6460
|
return {
|
|
@@ -7389,6 +7343,11 @@ function useSaveWorkflow() {
|
|
|
7389
7343
|
}
|
|
7390
7344
|
if (savedDbId) {
|
|
7391
7345
|
notifyWorkflowSaved(workflowKey);
|
|
7346
|
+
emitFluidGridsEvent("workflow:saved", {
|
|
7347
|
+
workflowKey,
|
|
7348
|
+
version: savedVersion || void 0,
|
|
7349
|
+
id: savedDbId
|
|
7350
|
+
});
|
|
7392
7351
|
const config = getFluidGridsConfig();
|
|
7393
7352
|
if (config.onWorkflowSaved) {
|
|
7394
7353
|
try {
|
|
@@ -7412,6 +7371,7 @@ function useSaveWorkflow() {
|
|
|
7412
7371
|
} catch (error) {
|
|
7413
7372
|
const message = error instanceof Error ? error.message : "Unknown error";
|
|
7414
7373
|
console.error("Error saving workflow:", message);
|
|
7374
|
+
emitOperationErrorEvent("workflow:save", error);
|
|
7415
7375
|
const cause = error instanceof Error ? error.cause : void 0;
|
|
7416
7376
|
const quotaExhausted2 = isQuotaExhaustedFailure(cause) || isQuotaExhaustedFailure(error);
|
|
7417
7377
|
const conflict = findSaveConflict(error);
|
|
@@ -8240,6 +8200,11 @@ function useNodeExecution() {
|
|
|
8240
8200
|
processNodeStates(runId, run.nodeStates);
|
|
8241
8201
|
}
|
|
8242
8202
|
if (TERMINAL_STATUSES.has(run.status)) {
|
|
8203
|
+
emitRunCompletedOnce({
|
|
8204
|
+
runId,
|
|
8205
|
+
status: run.status,
|
|
8206
|
+
workflowKey: run.workflowKey ?? void 0
|
|
8207
|
+
});
|
|
8243
8208
|
if (analyticsTrigger && run.status === "FAILED") {
|
|
8244
8209
|
emitRunFailed(bus, {
|
|
8245
8210
|
workspaceId,
|
|
@@ -8438,6 +8403,11 @@ function useNodeExecution() {
|
|
|
8438
8403
|
executionId: backendRunId,
|
|
8439
8404
|
trigger: "test"
|
|
8440
8405
|
});
|
|
8406
|
+
emitFluidGridsEvent("run:started", {
|
|
8407
|
+
runId: backendRunId,
|
|
8408
|
+
workflowKey: triggerResult.workflowKey,
|
|
8409
|
+
mode: "TEST"
|
|
8410
|
+
});
|
|
8441
8411
|
pollRunUpdates(backendRunId, "test");
|
|
8442
8412
|
return { success: true, runId: backendRunId };
|
|
8443
8413
|
}
|
|
@@ -8446,6 +8416,7 @@ function useNodeExecution() {
|
|
|
8446
8416
|
return { success: false, error: "No result from trigger" };
|
|
8447
8417
|
} catch (error) {
|
|
8448
8418
|
console.error("[useNodeExecution] Error triggering workflow:", error);
|
|
8419
|
+
emitOperationErrorEvent("run:start", error);
|
|
8449
8420
|
const quotaExhausted = openRunQuotaUpgradePrompt(error, tr, {
|
|
8450
8421
|
bus,
|
|
8451
8422
|
workspaceId,
|
|
@@ -8504,6 +8475,11 @@ function useNodeExecution() {
|
|
|
8504
8475
|
executionId: runId,
|
|
8505
8476
|
trigger: "webhook"
|
|
8506
8477
|
});
|
|
8478
|
+
emitFluidGridsEvent("run:started", {
|
|
8479
|
+
runId,
|
|
8480
|
+
workflowKey: workflow.workflowKey || workflow.id,
|
|
8481
|
+
mode: "TEST"
|
|
8482
|
+
});
|
|
8507
8483
|
pollRunUpdates(runId, "webhook");
|
|
8508
8484
|
},
|
|
8509
8485
|
[
|
|
@@ -8553,6 +8529,11 @@ function useNodeExecution() {
|
|
|
8553
8529
|
executionId: backendRunId,
|
|
8554
8530
|
trigger: "test"
|
|
8555
8531
|
});
|
|
8532
|
+
emitFluidGridsEvent("run:started", {
|
|
8533
|
+
runId: backendRunId,
|
|
8534
|
+
workflowKey: runFromNodeResult.workflowKey,
|
|
8535
|
+
mode: "TEST"
|
|
8536
|
+
});
|
|
8556
8537
|
pollRunUpdates(backendRunId, "test");
|
|
8557
8538
|
return { success: true, runId: backendRunId };
|
|
8558
8539
|
}
|
|
@@ -8561,6 +8542,7 @@ function useNodeExecution() {
|
|
|
8561
8542
|
return { success: false, error: "No result from runFromNode" };
|
|
8562
8543
|
} catch (error) {
|
|
8563
8544
|
console.error("[useNodeExecution] Error running from node:", error);
|
|
8545
|
+
emitOperationErrorEvent("run:start", error);
|
|
8564
8546
|
const quotaExhausted = openRunQuotaUpgradePrompt(error, tr, {
|
|
8565
8547
|
bus,
|
|
8566
8548
|
workspaceId,
|
|
@@ -10137,4 +10119,4 @@ function createNodeWithDefaultData(type, data) {
|
|
|
10137
10119
|
return Object.assign(createNodeData(type, defaultData), data);
|
|
10138
10120
|
}
|
|
10139
10121
|
|
|
10140
|
-
export { AUTOSAVE_DEBOUNCE_MS, AUTOSAVE_RETRY_DELAYS_MS, AVAILABLE_NODES, BILLING_PLANS_PATH, CODE_WORKFLOW_NODE_TYPE, ConnectionFormDialog, ConnectionSelector, DURABLE_FUNCTION_NODE_TYPES, EDIT_SESSION_ID, ExpressionEditor, FLUIDGRIDS_FLAGS, FLUIDGRIDS_FLAG_DEFAULTS, FluidGridsContext, FluidGridsProvider, NODES, NODES_METADATA, NODE_CONFIGS, NODE_OPERATION_DRAG_DATA_FORMAT, NODE_TYPES, NODE_TYPE_DRAG_DATA_FORMAT, NodePropertyPanel, NodeTypeIcon, PHASE_C_FLAGS_OFF, RUNS_QUOTA_NAME, RUN_CONTROL_NODE_TYPES, STICKY_NOTE_TYPE, WORKFLOWS_QUOTA_NAME, WORKFLOW_TEST_NODE_TYPES, autosaveAllowedFor, bannerOf, blankWorkflowCreateInput, buildOperationSeed, buildStickyNode, builderPathOf, canAutosave, canRenderOperationPanel, canSignalRun, changedSourceFiles, childRunIdOf, classifyCreateRefusal, clearCodeWorkflowDefinitionCache, codeBuildIdOf, components_default, createConfiguredNode, createThenOpen, declaredOutputFields, declaredSignals, defaultSourcePath, departingSave,
|
|
10122
|
+
export { AUTOSAVE_DEBOUNCE_MS, AUTOSAVE_RETRY_DELAYS_MS, AVAILABLE_NODES, BILLING_PLANS_PATH, CODE_WORKFLOW_NODE_TYPE, ConnectionFormDialog, ConnectionSelector, DURABLE_FUNCTION_NODE_TYPES, EDIT_SESSION_ID, ExpressionEditor, FLUIDGRIDS_FLAGS, FLUIDGRIDS_FLAG_DEFAULTS, FluidGridsContext, FluidGridsProvider, NODES, NODES_METADATA, NODE_CONFIGS, NODE_OPERATION_DRAG_DATA_FORMAT, NODE_TYPES, NODE_TYPE_DRAG_DATA_FORMAT, NodePropertyPanel, NodeTypeIcon, PHASE_C_FLAGS_OFF, RUNS_QUOTA_NAME, RUN_CONTROL_NODE_TYPES, STICKY_NOTE_TYPE, WORKFLOWS_QUOTA_NAME, WORKFLOW_TEST_NODE_TYPES, autosaveAllowedFor, bannerOf, blankWorkflowCreateInput, buildOperationSeed, buildStickyNode, builderPathOf, canAutosave, canRenderOperationPanel, canSignalRun, changedSourceFiles, childRunIdOf, classifyCreateRefusal, clearCodeWorkflowDefinitionCache, codeBuildIdOf, components_default, createConfiguredNode, createThenOpen, declaredOutputFields, declaredSignals, defaultSourcePath, departingSave, diagnosticsByPath, editStateFor, editingLeaseLocked, emitNodeInstalled, emitRunFailed, emitRunLimitHit, emitRunStarted, emitTemplateUsed, emitUpgradeClicked, emitWorkflowCreated, emitWorkflowLimitHit, emitWorkflowPublished, ensureNodeConfigsLoaded, fieldsFromIO, fieldsFromValue, filterPaletteNodes, findQuotaRefusal, findSaveConflict, forgetSessionForReload, formatParameterValue, getNodeDetail, getNodeMetadata, inAppLeaveTarget, interfaceFields, interfaceHandlers, isDurableFunctionNodeType, isEditableSourcePath, isFlowComplete, isImageIcon, isLocked, isNodeConfigsInitialized, isNodeTypeHiddenFromPalette, isParamVisible, isQuotaExhaustedFailure, isRunControlNodeType, isTriggerOperation, leaseCallQueue, leavingLosesChanges, listCustomBlocks, liveInternalOperations, loadDefinitionJson, mergeStickyNotes, nodeAccent, nodesOf, onNodeTypesUpdate, openRunQuotaUpgradePrompt, parseParameterValue, parseRawSignalPayload, pathToExpression, payloadFromCardValues, phaseAfterAcquire, phaseAfterTakeOver, projectLanguage, readCodeWorkflowState, readDisplayOptions, refetchStoreNodes, registerCustomBlock, registerWorkflowNodeTypes, releasesOnClose, rememberOwnStatusChange, rememberRevision, rememberSessionForReload, resolveInputHandles, resolveNodeOperation, resolveOperationName, resolveOutputHandles, resolvePhaseCFlags, resolveUiSpec, runSignalTargets, runTriggerFromMode, saveIndicatorOf, savedEverythingBeforeLeaving, sessionBeforeReload, shouldReleaseForIdle, signalPayloadCard, sourceLanguageOf, stripSubmitActions, structuredParameterType, subscribeWorkflowSaved, synchronizeOperationUpdate, tickAction, touchesSavedFields, useAgentDefinitionList, useAgentDefinitions, useCodeWorkflowInterface, useConnection, useConnections, useConnectionsByProvider, useContinuousOptimisationEnabled, useCreateConnection, useDurableFunctionNodesEnabled, useDurableParityEnabled, useEditLeaseLocked, useEditLeaseStore, useFlowStore, useFlowValidator, useFluidGridsAnalytics, useFluidGridsContext, useFluidGridsFlag, useGuardedNavigate, useInitiateOAuth, useInsertNode, useIsValidConnection, useManualSave, useNodeExecution, useNodeRegistryRevision, usePaletteGates, usePhaseCFlags, useProviders, useRunGuard, useSaveStatusStore, useSaveWorkflow, useSelfHostedWorkersEnabled, useWorkflowTestsEnabled, watchLeavingLosesChanges, workflowFingerprint };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { throwIfResultError } from './chunk-AAIZ6S6E.js';
|
|
2
1
|
import { RunFailureClustersDocument, DismissRunFailureClusterDocument, RunFailureTriageSettingsDocument, SetRunFailureTriageEnabledDocument, FgTriageFailedRunsDocument } from './chunk-AVHBWJRY.js';
|
|
3
2
|
import { useTr } from './chunk-UULVIT25.js';
|
|
4
|
-
import { getFluidGridsClient } from './chunk-
|
|
3
|
+
import { getFluidGridsClient } from './chunk-3IXU7WUC.js';
|
|
4
|
+
import { throwIfResultError } from './chunk-US5QSLPV.js';
|
|
5
5
|
import { useState, useCallback, useEffect } from 'react';
|
|
6
6
|
import { Icon } from '@iconify/react';
|
|
7
7
|
import { Button } from '@burdenoff/fe-libs/ui';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { versionsOfWorkflow, VersionDiffDialog } from './chunk-
|
|
1
|
+
import { versionsOfWorkflow, VersionDiffDialog } from './chunk-4QB6S7YW.js';
|
|
2
2
|
import { historyControls } from './chunk-FNZZ5JJL.js';
|
|
3
|
-
import { useWorkflowDefinitions, useRestoreWorkflowVersion } from './chunk-
|
|
3
|
+
import { useWorkflowDefinitions, useRestoreWorkflowVersion } from './chunk-HOTVUVZG.js';
|
|
4
4
|
import { useFluidGridsPageControls } from './chunk-PJAWNFJV.js';
|
|
5
5
|
import { FluidGridsDocsLink } from './chunk-4VJ3MDOV.js';
|
|
6
|
-
import { getFluidGridsConfig } from './chunk-6AMNEX2Y.js';
|
|
7
6
|
import { useTr } from './chunk-UULVIT25.js';
|
|
7
|
+
import { getFluidGridsConfig } from './chunk-UEG2WC3G.js';
|
|
8
8
|
import { useState, useMemo, useCallback } from 'react';
|
|
9
9
|
import { useNavigate } from 'react-router';
|
|
10
10
|
import { Icon } from '@iconify/react';
|
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import { CreateWorkflowRefusalDialog, firstWorkflowProgress, GUIDED_TOUR_STATE, builderPathFor } from './chunk-
|
|
2
|
-
import { useExecutions } from './chunk-
|
|
3
|
-
import { useExportWorkflowAs, WorkflowShareDialog, downloadWorkflowExport, importAcceptAttribute, canEditWorkflow, canShareWorkflow, QuotaExhaustedDialog, importFileKind, parseWorkflowImport, CODE_EXPORT_FORMATS, ImportSourceError, assertImportByteSize, MAX_IMPORT_ARCHIVE_BYTES, readProjectArchive, checkTypeScriptImport, MAX_IMPORT_SOURCE_BYTES, typeScriptModuleFile, typeScriptImportSource, workflowNameFromFile, primaryImportModule } from './chunk-
|
|
1
|
+
import { CreateWorkflowRefusalDialog, firstWorkflowProgress, GUIDED_TOUR_STATE, builderPathFor } from './chunk-HLAUK5GM.js';
|
|
2
|
+
import { useExecutions } from './chunk-AG3VC7Y2.js';
|
|
3
|
+
import { useExportWorkflowAs, WorkflowShareDialog, downloadWorkflowExport, importAcceptAttribute, canEditWorkflow, canShareWorkflow, QuotaExhaustedDialog, importFileKind, parseWorkflowImport, CODE_EXPORT_FORMATS, ImportSourceError, assertImportByteSize, MAX_IMPORT_ARCHIVE_BYTES, readProjectArchive, checkTypeScriptImport, MAX_IMPORT_SOURCE_BYTES, typeScriptModuleFile, typeScriptImportSource, workflowNameFromFile, primaryImportModule } from './chunk-O2EB7UT2.js';
|
|
4
4
|
import { workflowsListControls } from './chunk-FNZZ5JJL.js';
|
|
5
|
-
import { useCreateWorkflow, useWorkflowDefinitions, useLazyWorkflowDefinition, useImportWorkflow, usePreviewN8nImport, useDuplicateWorkflow, useDeleteWorkflow } from './chunk-
|
|
5
|
+
import { useCreateWorkflow, useWorkflowDefinitions, useLazyWorkflowDefinition, useImportWorkflow, usePreviewN8nImport, useDuplicateWorkflow, useDeleteWorkflow } from './chunk-HOTVUVZG.js';
|
|
6
6
|
import { useFluidGridsPageControls } from './chunk-PJAWNFJV.js';
|
|
7
7
|
import { FluidGridsDocsLink } from './chunk-4VJ3MDOV.js';
|
|
8
|
-
import { createThenOpen, FluidGridsContext, useFluidGridsFlag, FLUIDGRIDS_FLAGS, BILLING_PLANS_PATH,
|
|
8
|
+
import { createThenOpen, FluidGridsContext, useFluidGridsFlag, FLUIDGRIDS_FLAGS, BILLING_PLANS_PATH, useFlowStore, isQuotaExhaustedFailure } from './chunk-C26QAWCT.js';
|
|
9
9
|
import { useFluidGridsPermission, FLUIDGRIDS_PERMISSIONS, SdkPermissionButton, SdkPermissionGate } from './chunk-5375NUIO.js';
|
|
10
10
|
import { WorkflowFoldersDocument, CreateWorkflowFolderDocument, RenameWorkflowFolderDocument, MoveWorkflowFolderDocument, DeleteWorkflowFolderDocument, WorkflowProjectsDocument, CreateWorkflowProjectDocument, RenameWorkflowProjectDocument, DeleteWorkflowProjectDocument, BulkMoveWorkflowsToFolderDocument, BulkAssignWorkflowsToProjectDocument, BulkDeleteWorkflowsDocument } from './chunk-AVHBWJRY.js';
|
|
11
11
|
import { useTr } from './chunk-UULVIT25.js';
|
|
12
|
-
import { getFluidGridsClient } from './chunk-
|
|
12
|
+
import { getFluidGridsClient } from './chunk-3IXU7WUC.js';
|
|
13
|
+
import { describeOperationError, throwIfResultError } from './chunk-US5QSLPV.js';
|
|
13
14
|
import { useState, useRef, useCallback, useContext, useMemo, useEffect } from 'react';
|
|
14
15
|
import { useNavigate } from 'react-router';
|
|
15
16
|
import { v4 } from 'uuid';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FluidgridsEntityTagsDocument, AvailableFluidgridsTagsDocument, SearchFluidgridsTagsDocument, TagFluidgridsEntityDocument, UntagFluidgridsEntityDocument, ReplaceFluidgridsEntityTagsDocument, CreateFluidgridsTagDocument, DataTablesTagsDocument } from './chunk-AVHBWJRY.js';
|
|
2
|
-
import { getFluidGridsClient } from './chunk-
|
|
2
|
+
import { getFluidGridsClient } from './chunk-3IXU7WUC.js';
|
|
3
3
|
import { useState, useCallback, useEffect } from 'react';
|
|
4
4
|
|
|
5
5
|
var FLUIDGRIDS_ENTITY_TYPES = [
|
|
@@ -1,7 +1,8 @@
|
|
|
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 {
|
|
2
|
+
import { useFluidGridsAnalytics, emitRunStarted, openRunQuotaUpgradePrompt, useFluidGridsFlag, FLUIDGRIDS_FLAGS } from './chunk-C26QAWCT.js';
|
|
3
3
|
import { useTr } from './chunk-UULVIT25.js';
|
|
4
|
-
import { getFluidGridsClient } from './chunk-
|
|
4
|
+
import { getFluidGridsClient } from './chunk-3IXU7WUC.js';
|
|
5
|
+
import { throwIfResultError, describeOperationError, emitFluidGridsEvent } from './chunk-US5QSLPV.js';
|
|
5
6
|
import { useCallback, useState, useMemo, useEffect } from 'react';
|
|
6
7
|
import { Icon } from '@iconify/react';
|
|
7
8
|
import { toast } from 'sonner';
|
|
@@ -138,6 +139,10 @@ function useRunReplayActions() {
|
|
|
138
139
|
executionId: replayed.runId,
|
|
139
140
|
trigger: "manual"
|
|
140
141
|
});
|
|
142
|
+
emitFluidGridsEvent("run:started", {
|
|
143
|
+
runId: replayed.runId,
|
|
144
|
+
workflowKey: replayed.workflowKey
|
|
145
|
+
});
|
|
141
146
|
}
|
|
142
147
|
return replayed;
|
|
143
148
|
} catch (cause) {
|
|
@@ -173,6 +178,10 @@ function useRunReplayActions() {
|
|
|
173
178
|
executionId: run.runId,
|
|
174
179
|
trigger: "manual"
|
|
175
180
|
});
|
|
181
|
+
emitFluidGridsEvent("run:started", {
|
|
182
|
+
runId: run.runId,
|
|
183
|
+
workflowKey: run.workflowKey
|
|
184
|
+
});
|
|
176
185
|
}
|
|
177
186
|
return retried;
|
|
178
187
|
} catch (cause) {
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { useFluidGridsAnalytics,
|
|
2
|
-
import { getFluidGridsConfig } from './chunk-6AMNEX2Y.js';
|
|
1
|
+
import { useFluidGridsAnalytics, emitWorkflowCreated, emitRunStarted, runTriggerFromMode, openRunQuotaUpgradePrompt, emitWorkflowPublished } from './chunk-C26QAWCT.js';
|
|
3
2
|
import { WorkflowDefinitionsDocument, WorkflowDefinitionDocument, WorkflowVersionsDocument, CreateWorkflowDefinitionDocument, ImportWorkflowDocument, PreviewN8nImportDocument, UpdateWorkflowDefinitionDocument, CreateWorkflowVersionDocument, DeleteWorkflowDefinitionDocument, DuplicateWorkflowDocument, RestoreWorkflowVersionDocument, TriggerWorkflowDocument, WorkflowRunsDocument, WorkflowRunDocument, DashboardSummaryDocument, ActivateWorkflowDefinitionDocument, DeactivateWorkflowDefinitionDocument } from './chunk-AVHBWJRY.js';
|
|
4
3
|
import { useTr } from './chunk-UULVIT25.js';
|
|
5
|
-
import { getFluidGridsClient } from './chunk-
|
|
4
|
+
import { getFluidGridsClient } from './chunk-3IXU7WUC.js';
|
|
5
|
+
import { throwIfResultError, emitFluidGridsEvent, emitOperationErrorEvent } from './chunk-US5QSLPV.js';
|
|
6
|
+
import { getFluidGridsConfig } from './chunk-UEG2WC3G.js';
|
|
6
7
|
import { useState, useCallback, useEffect, useMemo } from 'react';
|
|
7
8
|
|
|
8
9
|
var WORKFLOW_DEFINITIONS = WorkflowDefinitionsDocument;
|
|
@@ -552,10 +553,16 @@ function useTriggerWorkflow() {
|
|
|
552
553
|
executionId: data.runId,
|
|
553
554
|
trigger: runTriggerFromMode(input.mode)
|
|
554
555
|
});
|
|
556
|
+
emitFluidGridsEvent("run:started", {
|
|
557
|
+
runId: data.runId,
|
|
558
|
+
workflowKey: data.workflowKey,
|
|
559
|
+
mode: input.mode ?? void 0
|
|
560
|
+
});
|
|
555
561
|
}
|
|
556
562
|
return data;
|
|
557
563
|
} catch (err) {
|
|
558
564
|
setError(err);
|
|
565
|
+
emitOperationErrorEvent("run:start", err);
|
|
559
566
|
openRunQuotaUpgradePrompt(err, tr, {
|
|
560
567
|
bus,
|
|
561
568
|
workspaceId,
|
|
@@ -704,10 +711,15 @@ function useActivateWorkflow() {
|
|
|
704
711
|
workflowId: activated.id,
|
|
705
712
|
definition: options?.definition
|
|
706
713
|
});
|
|
714
|
+
emitFluidGridsEvent("workflow:activated", {
|
|
715
|
+
workflowKey: activated.workflowKey,
|
|
716
|
+
version: activated.version ?? void 0
|
|
717
|
+
});
|
|
707
718
|
}
|
|
708
719
|
return activated;
|
|
709
720
|
} catch (err) {
|
|
710
721
|
console.error("Error activating workflow:", err);
|
|
722
|
+
emitOperationErrorEvent("workflow:activate", err);
|
|
711
723
|
throw err;
|
|
712
724
|
} finally {
|
|
713
725
|
setLoading(false);
|
|
@@ -3,26 +3,27 @@ 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 { computeAttachPosition, firstInputHandleId } from './chunk-
|
|
8
|
-
import { QuotaExhaustedDialog, WorkflowShareDialog, 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-
|
|
10
|
-
import { buildNodeDisplayMap } from './chunk-
|
|
6
|
+
import { LogsPanel } from './chunk-FJSXXO5W.js';
|
|
7
|
+
import { computeAttachPosition, firstInputHandleId } from './chunk-GVIYGJQG.js';
|
|
8
|
+
import { QuotaExhaustedDialog, WorkflowShareDialog, useWorkflowCodeExport, orderedExportFiles, fileBaseName, downloadWorkflowCodeExport, isLosslessReport, sortFidelityItems, isLossyFidelityItem, lineOfNode } from './chunk-O2EB7UT2.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-6P7DOBVN.js';
|
|
10
|
+
import { buildNodeDisplayMap } from './chunk-EC2AN74G.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-4QB6S7YW.js';
|
|
13
|
+
import { useRestoreWorkflowVersion, useWorkflowVersions, useActivateWorkflow, useDeleteWorkflow, useDeactivateWorkflow } from './chunk-HOTVUVZG.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,
|
|
16
|
+
import { leaseCallQueue, RUNS_QUOTA_NAME, useFlowStore, BILLING_PLANS_PATH, emitUpgradeClicked, FluidGridsContext, emitWorkflowCreated, emitTemplateUsed, 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-C26QAWCT.js';
|
|
17
17
|
import { SdkPermissionButton, FLUIDGRIDS_PERMISSIONS, useFluidGridsPermission, SdkPermissionGate } from './chunk-5375NUIO.js';
|
|
18
18
|
import { cn } from './chunk-JL7CASN5.js';
|
|
19
19
|
import { BuilderReadOnlyProvider, useBuilderReadOnly } from './chunk-OCJTTHTS.js';
|
|
20
|
-
import { getGlobalStoreClient } from './chunk-
|
|
21
|
-
import { getFluidGridsConfig } from './chunk-6AMNEX2Y.js';
|
|
20
|
+
import { getGlobalStoreClient } from './chunk-AU7LACOY.js';
|
|
22
21
|
import { GetMyNodeInstallationsDocument, BrowseWorkflowTemplatesDocument, InstallWorkflowNodeDocument, SubmitWorkflowTemplateDocument, MyWorkflowTemplateSubmissionsDocument, WithdrawWorkflowTemplateSubmissionDocument, InstallPurchasedNodeDocument, BrowseWorkflowNodesDocument, UninstallWorkflowNodeDocument, CreateStoreOrderDocument, GetNodeInstallableVersionsDocument, OrganizationPrivateNodesDocument, InstallOrganizationPrivateNodeDocument, UninstallOrganizationPrivateNodeDocument } from './chunk-G77IGC3Y.js';
|
|
23
22
|
import { WorkspaceRunsQuotaDocument, WorkflowGenerationTemplatesDocument, ReleaseWorkflowEditLeaseDocument, NodeSchemaIntrospectionDocument, AcquireWorkflowEditLeaseDocument, WorkflowEnvironmentsDocument, WorkflowPromotionRequestsDocument, DeployWorkflowVersionToDevDocument, RequestWorkflowPromotionDocument, ApproveWorkflowPromotionDocument, RejectWorkflowPromotionDocument, CancelWorkflowPromotionDocument, UpdateWorkflowEnvironmentPolicyDocument, WorkflowGitRepositoryDocument, WorkflowGitPushesDocument, WorkflowGitCommitsDocument, LinkWorkflowGitRepositoryDocument, UnlinkWorkflowGitRepositoryDocument, PushWorkflowToGitDocument, WorkflowGitDiffDocument, RestoreWorkflowFromGitDocument, WorkflowAuthoringDocument, WorkflowEditLeaseDocument, WorkflowVersioningDocument, WorkflowVersionDrainageDocument, ActivateWorkflowVersionCheckedDocument, WorkflowDefinitionDocument, NodeUsageStatusDocument, RemoveNodeFromWorkflowsDocument, SetWorkflowRolloutDocument, DeleteWorkflowRolloutDocument, TakeOverWorkflowEditLeaseDocument } from './chunk-AVHBWJRY.js';
|
|
24
23
|
import { useTr } from './chunk-UULVIT25.js';
|
|
25
|
-
import { waitForFluidGridsClient, getFluidGridsClient } from './chunk-
|
|
24
|
+
import { waitForFluidGridsClient, getFluidGridsClient } from './chunk-3IXU7WUC.js';
|
|
25
|
+
import { throwIfResultError, describeOperationError, emitFluidGridsEvent } from './chunk-US5QSLPV.js';
|
|
26
|
+
import { getFluidGridsConfig } from './chunk-UEG2WC3G.js';
|
|
26
27
|
import * as React3 from 'react';
|
|
27
28
|
import React3__default, { forwardRef, lazy, memo, createContext, useState, useRef, useCallback, useEffect, useContext, useMemo, useLayoutEffect, Suspense, useDeferredValue } from 'react';
|
|
28
29
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
@@ -5529,9 +5530,9 @@ function DesktopSidebarFragment({
|
|
|
5529
5530
|
(n) => !!n.storeProductId
|
|
5530
5531
|
);
|
|
5531
5532
|
if (nodesToInstall.length > 0) {
|
|
5532
|
-
const { getGlobalStoreClient: getStore } = await import('./global-client-
|
|
5533
|
+
const { getGlobalStoreClient: getStore } = await import('./global-client-N5EIFW6T.js');
|
|
5533
5534
|
const { InstallWorkflowNodeDocument: InstallWorkflowNodeDocument2 } = await import('./global-operations-BZDHTSYP.js');
|
|
5534
|
-
const { getFluidGridsConfig: getFluidGridsConfig3 } = await import('./config-
|
|
5535
|
+
const { getFluidGridsConfig: getFluidGridsConfig3 } = await import('./config-66FUPSG5.js');
|
|
5535
5536
|
const storeClient = getStore();
|
|
5536
5537
|
const cfg = getFluidGridsConfig3();
|
|
5537
5538
|
for (let i = 0; i < nodesToInstall.length; i++) {
|
|
@@ -5591,8 +5592,8 @@ function DesktopSidebarFragment({
|
|
|
5591
5592
|
overrides.templateInputs
|
|
5592
5593
|
);
|
|
5593
5594
|
}
|
|
5594
|
-
const { getFluidGridsClient: getFluidGridsClient2 } = await import('./client-
|
|
5595
|
-
const { getFluidGridsConfig: getFluidGridsConfig2 } = await import('./config-
|
|
5595
|
+
const { getFluidGridsClient: getFluidGridsClient2 } = await import('./client-YVZMLEQX.js');
|
|
5596
|
+
const { getFluidGridsConfig: getFluidGridsConfig2 } = await import('./config-66FUPSG5.js');
|
|
5596
5597
|
const { gql: gql5 } = await import('@apollo/client/core');
|
|
5597
5598
|
const IMPORT_MUTATION = gql5`
|
|
5598
5599
|
mutation ImportWorkflowTemplate(
|
|
@@ -5649,7 +5650,7 @@ function DesktopSidebarFragment({
|
|
|
5649
5650
|
category: content.defaultCategory || template.category
|
|
5650
5651
|
});
|
|
5651
5652
|
try {
|
|
5652
|
-
const { getGlobalStoreClient: getStoreClient } = await import('./global-client-
|
|
5653
|
+
const { getGlobalStoreClient: getStoreClient } = await import('./global-client-N5EIFW6T.js');
|
|
5653
5654
|
const { InstallWorkflowNodeDocument: InstallWorkflowNodeDocument2 } = await import('./global-operations-BZDHTSYP.js');
|
|
5654
5655
|
const storeClient = getStoreClient();
|
|
5655
5656
|
if (storeClient) {
|
|
@@ -5749,7 +5750,7 @@ function DesktopSidebarFragment({
|
|
|
5749
5750
|
),
|
|
5750
5751
|
{ id: "template-load" }
|
|
5751
5752
|
);
|
|
5752
|
-
const { getGlobalStoreClient: getGlobalStoreClient2 } = await import('./global-client-
|
|
5753
|
+
const { getGlobalStoreClient: getGlobalStoreClient2 } = await import('./global-client-N5EIFW6T.js');
|
|
5753
5754
|
const { gql: gql5 } = await import('@apollo/client/core');
|
|
5754
5755
|
const GET_TEMPLATE_DETAIL = gql5`
|
|
5755
5756
|
query GetWorkflowTemplateDetail($id: ID!) {
|
|
@@ -6005,6 +6006,23 @@ function useDeleteKeyCode() {
|
|
|
6005
6006
|
});
|
|
6006
6007
|
return deleteKeyCode;
|
|
6007
6008
|
}
|
|
6009
|
+
function nodeSelectionPayload(nodes) {
|
|
6010
|
+
if (nodes.length === 0) return { nodeId: null };
|
|
6011
|
+
if (nodes.length > 1) return void 0;
|
|
6012
|
+
const [node] = nodes;
|
|
6013
|
+
if (!node) return void 0;
|
|
6014
|
+
return { nodeId: node.id, nodeType: node.type };
|
|
6015
|
+
}
|
|
6016
|
+
function useNodeSelectedEvent() {
|
|
6017
|
+
const lastReported = useRef(null);
|
|
6018
|
+
const onChange = useCallback(({ nodes }) => {
|
|
6019
|
+
const payload = nodeSelectionPayload(nodes);
|
|
6020
|
+
if (!payload || payload.nodeId === lastReported.current) return;
|
|
6021
|
+
lastReported.current = payload.nodeId;
|
|
6022
|
+
emitFluidGridsEvent("node:selected", payload);
|
|
6023
|
+
}, []);
|
|
6024
|
+
useOnSelectionChange({ onChange });
|
|
6025
|
+
}
|
|
6008
6026
|
function useOnNodesDelete(nodes) {
|
|
6009
6027
|
const [nodePropertiesSelectedNode, nodePropertiesSetSelectedNode] = useFlowStore(
|
|
6010
6028
|
useShallow((state) => [
|
|
@@ -21222,12 +21240,12 @@ function EditLeaseBanner() {
|
|
|
21222
21240
|
);
|
|
21223
21241
|
}
|
|
21224
21242
|
var LazyNodeDetailView = lazy(
|
|
21225
|
-
() => import('./node-detail-view-
|
|
21243
|
+
() => import('./node-detail-view-3VG7XFIZ.js').then((m) => ({
|
|
21226
21244
|
default: m.NodeDetailView
|
|
21227
21245
|
}))
|
|
21228
21246
|
);
|
|
21229
21247
|
var LazyQuickConfigPanel = lazy(
|
|
21230
|
-
() => import('./quick-config-panel-
|
|
21248
|
+
() => import('./quick-config-panel-GB7SDWHD.js').then((m) => ({
|
|
21231
21249
|
default: m.QuickConfigPanel
|
|
21232
21250
|
}))
|
|
21233
21251
|
);
|
|
@@ -21289,7 +21307,7 @@ var FlowBuilder = ({ readOnly = false }) => {
|
|
|
21289
21307
|
);
|
|
21290
21308
|
useEffect(() => {
|
|
21291
21309
|
let cancelled = false;
|
|
21292
|
-
void import('./agentTools-
|
|
21310
|
+
void import('./agentTools-PN4W7QZH.js').then(({ createBuilderAgentTools }) => {
|
|
21293
21311
|
if (cancelled) return;
|
|
21294
21312
|
setAgentTools(
|
|
21295
21313
|
createBuilderAgentTools({
|
|
@@ -21352,6 +21370,7 @@ var FlowBuilder = ({ readOnly = false }) => {
|
|
|
21352
21370
|
handleAddConnectedNode
|
|
21353
21371
|
} = useAddNodeOnEdgeDrop();
|
|
21354
21372
|
const deleteKeyCode = useDeleteKeyCode();
|
|
21373
|
+
useNodeSelectedEvent();
|
|
21355
21374
|
const onNodesDelete = useOnNodesDelete(nodes);
|
|
21356
21375
|
const [onDragOver, onDrop] = useDragDropFlowBuilder();
|
|
21357
21376
|
const isValidConnection = useIsValidConnection(nodes, edges);
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import { AgentsTab } from './chunk-
|
|
2
|
-
import { ActionPoliciesTab } from './chunk-
|
|
3
|
-
import { LogStreamingTab } from './chunk-
|
|
1
|
+
import { AgentsTab } from './chunk-VFVN7D3A.js';
|
|
2
|
+
import { ActionPoliciesTab } from './chunk-AMXJLVZN.js';
|
|
3
|
+
import { LogStreamingTab } from './chunk-FCT6POFX.js';
|
|
4
4
|
import { FluidGridsDocsLink } from './chunk-4VJ3MDOV.js';
|
|
5
|
-
import { useFlowStore, useFluidGridsFlag, FLUIDGRIDS_FLAGS, useSaveStatusStore, findSaveConflict, useDurableParityEnabled,
|
|
5
|
+
import { useFlowStore, useFluidGridsFlag, FLUIDGRIDS_FLAGS, useSaveStatusStore, findSaveConflict, useDurableParityEnabled, useConnections } from './chunk-C26QAWCT.js';
|
|
6
6
|
import { useFluidGridsPermission, FLUIDGRIDS_PERMISSIONS } from './chunk-5375NUIO.js';
|
|
7
|
-
import { getGlobalStoreClient } from './chunk-
|
|
8
|
-
import { getFluidGridsConfig } from './chunk-6AMNEX2Y.js';
|
|
7
|
+
import { getGlobalStoreClient } from './chunk-AU7LACOY.js';
|
|
9
8
|
import { useWorkflowDefinitionQuery, useUpdateWorkflowDefinitionMutation, useWorkflowDefinitionsQuery, DurableHistoryCapsDocument, UpdateDurableHistoryCapsDocument } from './chunk-AVHBWJRY.js';
|
|
10
9
|
import { useTr } from './chunk-UULVIT25.js';
|
|
11
|
-
import { getFluidGridsClient } from './chunk-
|
|
10
|
+
import { getFluidGridsClient } from './chunk-3IXU7WUC.js';
|
|
11
|
+
import { throwIfResultError, describeOperationError } from './chunk-US5QSLPV.js';
|
|
12
|
+
import { getFluidGridsConfig } from './chunk-UEG2WC3G.js';
|
|
12
13
|
import { useState, useMemo, useEffect, useCallback } from 'react';
|
|
13
14
|
import { useNavigate, useParams } from 'react-router';
|
|
14
15
|
import { Icon } from '@iconify/react';
|
|
@@ -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-I3QPAEL6.js';
|
|
2
|
+
import { QuotaExhaustedDialog } from './chunk-O2EB7UT2.js';
|
|
3
3
|
import { templatesControls } from './chunk-FNZZ5JJL.js';
|
|
4
|
-
import { useWorkflowDefinitions, useDuplicateWorkflow, useLazyWorkflowDefinition } from './chunk-
|
|
4
|
+
import { useWorkflowDefinitions, useDuplicateWorkflow, useLazyWorkflowDefinition } from './chunk-HOTVUVZG.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-C26QAWCT.js';
|
|
8
8
|
import { SdkPermissionButton, FLUIDGRIDS_PERMISSIONS } from './chunk-5375NUIO.js';
|
|
9
9
|
import { useTr } from './chunk-UULVIT25.js';
|
|
10
10
|
import { useState, useEffect, useCallback, useMemo } from 'react';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { throwIfResultError } from './chunk-AAIZ6S6E.js';
|
|
2
1
|
import { useTr } from './chunk-UULVIT25.js';
|
|
3
|
-
import { getFluidGridsClient } from './chunk-
|
|
2
|
+
import { getFluidGridsClient } from './chunk-3IXU7WUC.js';
|
|
3
|
+
import { throwIfResultError } from './chunk-US5QSLPV.js';
|
|
4
4
|
import { useState, useRef, useCallback, useEffect } from 'react';
|
|
5
5
|
import { gql } from '@apollo/client';
|
|
6
6
|
import { cn } from '@burdenoff/fe-libs/utils';
|