@burdenoff/fluidgrids-fe-sdk 2026.1111.7 → 2026.1111.9

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.
Files changed (42) hide show
  1. package/dist/{ExecutionDetailPage-DoxxG0b1.js → ExecutionDetailPage-bhdyEtzU.js} +9 -9
  2. package/dist/{FailureTriagePanel-BqRG9qxu.js → FailureTriagePanel-D4knfH8i.js} +1 -1
  3. package/dist/{FluidGridsProvider-_Nc4kFsk.js → FluidGridsProvider-CGu1DfIa.js} +38 -9
  4. package/dist/{HistoryPage-joRHOTwx.js → HistoryPage-DzNRgeBL.js} +3 -3
  5. package/dist/{InsightsPage-BRkCoTkd.js → InsightsPage-BWly1n0F.js} +4 -4
  6. package/dist/{ManagedAiPolicyAuthority-Dm1Yi75K.js → ManagedAiPolicyAuthority-DHRJTAea.js} +6 -6
  7. package/dist/{MissingNodesInstallModal-CdvMiEN_.js → MissingNodesInstallModal-DUTpT0Bx.js} +2 -2
  8. package/dist/{NodesPage-bYLDn1Jp.js → NodesPage-Cp11Xnmg.js} +2 -2
  9. package/dist/{PublishCustomNodeAction-DS71F2-x.js → PublishCustomNodeAction-Bdgdkxf_.js} +1 -1
  10. package/dist/{TemplateConfigurationModal-C2CNNLte.js → TemplateConfigurationModal-Bp6yWmDU.js} +2 -2
  11. package/dist/{TemplateDetailPanel-DLe16zdY.js → TemplateDetailPanel-DvoZhgGU.js} +2 -2
  12. package/dist/{TemplatesPage-8J86X9lY.js → TemplatesPage-B29rhriw.js} +5 -5
  13. package/dist/{VersionDiffDialog--pbvNYM3.js → VersionDiffDialog-C6sKSLQJ.js} +1 -1
  14. package/dist/{WorkflowProposalCard-ADSfSaKK.js → WorkflowProposalCard-Bu3Y8Blm.js} +1 -1
  15. package/dist/{WorkflowSearchRedirect-CpmX2vSG.js → WorkflowSearchRedirect-_DGtocE_.js} +10 -10
  16. package/dist/{WorkflowShareDialog-CNg_qWNL.js → WorkflowShareDialog-CPUkd7CL.js} +2 -2
  17. package/dist/{WorkflowsList-DOhUHH4j.js → WorkflowsList-C5NllPOu.js} +5 -5
  18. package/dist/{agent-form-D25lAEWg.js → agent-form-L-gYYgLb.js} +1 -1
  19. package/dist/{agentTools-CBqnXeop.js → agentTools-BkeiRiqS.js} +2 -2
  20. package/dist/{codec-client-Cz_myeH8.js → codec-client-C_eJuWkT.js} +1 -1
  21. package/dist/executions.js +1 -1
  22. package/dist/{flow-builder-BkD07RI7.js → flow-builder-khQcrBqv.js} +75 -42
  23. package/dist/history.js +1 -1
  24. package/dist/{index-BQ5tXKOZ.d.ts → index-Cy9jNjgY.d.ts} +20 -1
  25. package/dist/index.d.ts +2 -2
  26. package/dist/index.js +24 -24
  27. package/dist/{node-detail-view-COi4XrCg.js → node-detail-view-JNWAYrZS.js} +6 -6
  28. package/dist/{node-endpoint-configs-DW1ZSZZI.js → node-endpoint-configs-n4xr62e4.js} +182 -1
  29. package/dist/nodes.js +1 -1
  30. package/dist/observability.d.ts +1 -1
  31. package/dist/observability.js +1 -1
  32. package/dist/{quick-config-panel-DQ04YDLl.js → quick-config-panel-Ciz0hFx7.js} +2 -2
  33. package/dist/settings.js +1 -1
  34. package/dist/templates.js +1 -1
  35. package/dist/{useAgentDefinitions-DQqibfr4.js → useAgentDefinitions-D8Q-GkM7.js} +1 -1
  36. package/dist/{useExecutions-RFROujCH.js → useExecutions-nrxmx5sw.js} +2 -2
  37. package/dist/{useObservability-QPQRRmAZ.js → useObservability-D7v6zupc.js} +2 -2
  38. package/dist/{useRunHistory-BDOic15z.js → useRunHistory-D-RieQFM.js} +2 -2
  39. package/dist/{useWorkflows-DNIgOcAG.js → useWorkflows-DTJbPdQM.js} +2 -2
  40. package/dist/workflow-builder.js +2 -2
  41. package/dist/workflows-list.js +1 -1
  42. package/package.json +1 -1
@@ -1,20 +1,20 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
- import { $r as WorkflowRunPendingDocument, A as CreateWorkerTokenDocument, Bi as describeOperationError, Ci as WorkflowWorkersDocument, Oi as getFluidGridsClient, Qr as WorkflowRunMetadataDocument, Sn as RunLogsDocument, U as DeleteTaskQueueDocument, Ui as throwIfResultError, Un as TaskQueueStatsDocument, W as DeleteWorkerTokenDocument, Wn as TaskQueuesDocument, Yr as WorkflowRunHierarchyDocument, aa as useExecutionsStore, ar as UpdateTaskQueueDocument, bn as RunLogAppendedDocument, c as AgentTraceDocument, dn as RotateWorkerTokenDocument, dt as ExplainRunDocument, fn as RunAiUsageDocument, ia as DEFAULT_EXECUTIONS_FILTER, jn as SetWorkflowRunVersioningOverrideDocument, k as CreateTaskQueueDocument, ki as getFluidGridsClientSafe, kn as SetWorkerTokenConnectionAllowlistDocument, mr as WorkerTokensDocument, ni as WorkflowRunsCountDocument, nt as DurableParityRunFieldsDocument, qi as getFluidGridsConfig, s as AgentStepUpdatedDocument, xr as WorkflowBatchOperationUpdatedDocument } from "./node-endpoint-configs-DW1ZSZZI.js";
4
- import { $n as useWorkflowTestsEnabled, Fn as durableInterfaceOf, Kn as useDurableFunctionNodesEnabled, Nn as canSignalRun, Rn as runSignalTargets, Zn as usePhaseCFlags, en as formatElapsedMs, nn as runDurationMs, qn as useDurableParityEnabled, tn as nodeStateDurationMs } from "./FluidGridsProvider-_Nc4kFsk.js";
3
+ import { $r as WorkflowRunMetadataDocument, A as CreateWorkerTokenDocument, Ai as getFluidGridsClientSafe, An as SetWorkerTokenConnectionAllowlistDocument, Gn as TaskQueuesDocument, Ji as getFluidGridsConfig, Mn as SetWorkflowRunVersioningOverrideDocument, Sn as RunLogsDocument, Sr as WorkflowBatchOperationUpdatedDocument, U as DeleteTaskQueueDocument, Vi as describeOperationError, W as DeleteWorkerTokenDocument, Wi as throwIfResultError, Wn as TaskQueueStatsDocument, Xr as WorkflowRunHierarchyDocument, aa as DEFAULT_EXECUTIONS_FILTER, bn as RunLogAppendedDocument, c as AgentTraceDocument, dn as RotateWorkerTokenDocument, dt as ExplainRunDocument, ei as WorkflowRunPendingDocument, fn as RunAiUsageDocument, hr as WorkerTokensDocument, k as CreateTaskQueueDocument, ki as getFluidGridsClient, nt as DurableParityRunFieldsDocument, oa as useExecutionsStore, or as UpdateTaskQueueDocument, ri as WorkflowRunsCountDocument, s as AgentStepUpdatedDocument, wi as WorkflowWorkersDocument } from "./node-endpoint-configs-n4xr62e4.js";
4
+ import { $n as useWorkflowTestsEnabled, Fn as durableInterfaceOf, Kn as useDurableFunctionNodesEnabled, Nn as canSignalRun, Rn as runSignalTargets, Zn as usePhaseCFlags, en as formatElapsedMs, nn as runDurationMs, qn as useDurableParityEnabled, tn as nodeStateDurationMs } from "./FluidGridsProvider-CGu1DfIa.js";
5
5
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
6
- import { h as useWorkflowDefinitions, v as useWorkflowVersions } from "./useWorkflows-DNIgOcAG.js";
6
+ import { h as useWorkflowDefinitions, v as useWorkflowVersions } from "./useWorkflows-DTJbPdQM.js";
7
7
  import { $u as ErrorType, L as AgentStepKind, LF as WorkflowQueryRejectCondition, RF as WorkflowResetType, bF as WorkflowBatchOperationType, hI as FLUIDGRIDS_PERMISSIONS, tI as WorkflowUpdateWaitFor, vI as SdkPermissionButton, xI as useFluidGridsPermission, yP as VersioningBehavior } from "./graphql-types-XcDLtFwU.js";
8
- import { _ as statusCountFilter, c as OPERATORS_BY_TYPE, d as STATUS_COUNT_GROUP_BY, f as callbackTone, g as shortRunId, h as runChainLinks, i as useExecutionStats, l as buildSearchAttributeFilter, m as parseMetadataDefinition, n as useExecution, o as useExecutionsWithStore, p as overrideRequestOf, r as useExecutionActions, s as EMPTY_SEARCH_FILTER, t as useAutoRefresh, u as searchFilterConflicts, v as statusCountsOf, y as validateDateRange } from "./useExecutions-RFROujCH.js";
8
+ import { _ as statusCountFilter, c as OPERATORS_BY_TYPE, d as STATUS_COUNT_GROUP_BY, f as callbackTone, g as shortRunId, h as runChainLinks, i as useExecutionStats, l as buildSearchAttributeFilter, m as parseMetadataDefinition, n as useExecution, o as useExecutionsWithStore, p as overrideRequestOf, r as useExecutionActions, s as EMPTY_SEARCH_FILTER, t as useAutoRefresh, u as searchFilterConflicts, v as statusCountsOf, y as validateDateRange } from "./useExecutions-nrxmx5sw.js";
9
9
  import { n as useFluidGridsPageControls } from "./pageControlsBridge-0pX9s-3k.js";
10
10
  import { t as executionsControls } from "./pageControlSpecs-DZJ9K37m.js";
11
11
  import { t as FluidGridsDocsLink } from "./FluidGridsDocsLink-JxkBpOeb.js";
12
- import { $ as startBatchTerminate, A as fetchBatchOperation, B as jsonArg, F as fetchRunControlFields, G as resetRun, I as fetchRunHistoryArchive, K as resetRunToLastCleanTask, L as fetchRunUpdate, N as fetchCodecServerSettings, O as failActivityById, P as fetchPauseRules, Q as startBatchOperation, R as fetchSearchAttributes, U as queryRun, V as pauseActivities, W as resetActivities, X as sendRunUpdate, Z as startBatchExport, _ as useResource, at as readTyped, c as FieldError, d as NativeSelect, f as RUN_CONTROL_DIALOG_STYLE, g as parseJsonObjectInput, h as parseJsonInput, it as upsertRunSearchAttributes, j as fetchBatchOperations, l as JsonBlock, m as newRunControlId, ot as writeTyped, p as StatusPill, q as revokeSignalToken, rt as updateActivityOptions, s as isAgentNodeType, tt as unpauseActivities, u as JsonField, w as createSignalToken, x as completeActivityById, y as cancelBatchOperation, z as fetchSignalTokens } from "./agent-form-D25lAEWg.js";
13
- import { C as useAvailableTags, _ as buildNodeDisplayMap, b as EntityTagPicker, n as useWorkflowProposal, o as canSaveRunAsTestCase, r as saveRunAsTestCase, t as WorkflowProposalCard, v as formatRunVersion, y as nodeDisplayTitle } from "./WorkflowProposalCard-ADSfSaKK.js";
12
+ import { $ as startBatchTerminate, A as fetchBatchOperation, B as jsonArg, F as fetchRunControlFields, G as resetRun, I as fetchRunHistoryArchive, K as resetRunToLastCleanTask, L as fetchRunUpdate, N as fetchCodecServerSettings, O as failActivityById, P as fetchPauseRules, Q as startBatchOperation, R as fetchSearchAttributes, U as queryRun, V as pauseActivities, W as resetActivities, X as sendRunUpdate, Z as startBatchExport, _ as useResource, at as readTyped, c as FieldError, d as NativeSelect, f as RUN_CONTROL_DIALOG_STYLE, g as parseJsonObjectInput, h as parseJsonInput, it as upsertRunSearchAttributes, j as fetchBatchOperations, l as JsonBlock, m as newRunControlId, ot as writeTyped, p as StatusPill, q as revokeSignalToken, rt as updateActivityOptions, s as isAgentNodeType, tt as unpauseActivities, u as JsonField, w as createSignalToken, x as completeActivityById, y as cancelBatchOperation, z as fetchSignalTokens } from "./agent-form-L-gYYgLb.js";
13
+ import { C as useAvailableTags, _ as buildNodeDisplayMap, b as EntityTagPicker, n as useWorkflowProposal, o as canSaveRunAsTestCase, r as saveRunAsTestCase, t as WorkflowProposalCard, v as formatRunVersion, y as nodeDisplayTitle } from "./WorkflowProposalCard-Bu3Y8Blm.js";
14
14
  import { t as AiCreditBalanceSlot } from "./aiCreditsBridge-BuE92tKo.js";
15
- import { a as fetchRunFailureClusters, i as dismissRunFailureCluster, o as runListFilterFromSearch, r as OPEN_STATUSES, s as runListLinkKey, t as BUCKET_LABELS } from "./FailureTriagePanel-BqRG9qxu.js";
16
- import { a as encodedPayloadBytes, f as EffectBadge, h as useRunPolicyDecisions, i as decodePayloads, l as formatBudgetUsd, n as checkCodecServerUrl, o as isEncodedPayload, r as containsEncodedPayload, t as CodecServerError } from "./codec-client-Cz_myeH8.js";
17
- import { a as useDurableRunFields, i as useDeterminismStatus, n as SignalRunDialog, o as useRunStackTrace, r as terminateDurableRun, s as RunHistoryView, t as useRunHistory } from "./useRunHistory-BDOic15z.js";
15
+ import { a as fetchRunFailureClusters, i as dismissRunFailureCluster, o as runListFilterFromSearch, r as OPEN_STATUSES, s as runListLinkKey, t as BUCKET_LABELS } from "./FailureTriagePanel-D4knfH8i.js";
16
+ import { a as encodedPayloadBytes, f as EffectBadge, h as useRunPolicyDecisions, i as decodePayloads, l as formatBudgetUsd, n as checkCodecServerUrl, o as isEncodedPayload, r as containsEncodedPayload, t as CodecServerError } from "./codec-client-C_eJuWkT.js";
17
+ import { a as useDurableRunFields, i as useDeterminismStatus, n as SignalRunDialog, o as useRunStackTrace, r as terminateDurableRun, s as RunHistoryView, t as useRunHistory } from "./useRunHistory-D-RieQFM.js";
18
18
  import { a as formatTokens, d as formatMicroUsd, o as modelLabel, r as aiCost } from "./ai-usage-D5p7ZeRR.js";
19
19
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
20
20
  import { Link, useNavigate, useParams, useSearchParams } from "react-router";
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { $ as DismissRunFailureClusterDocument, Oi as getFluidGridsClient, On as SetRunFailureTriageEnabledDocument, Ui as throwIfResultError, _n as RunFailureTriageSettingsDocument, gn as RunFailureClustersDocument, ht as FgTriageFailedRunsDocument } from "./node-endpoint-configs-DW1ZSZZI.js";
2
+ import { $ as DismissRunFailureClusterDocument, Wi as throwIfResultError, _n as RunFailureTriageSettingsDocument, gn as RunFailureClustersDocument, ht as FgTriageFailedRunsDocument, ki as getFluidGridsClient, kn as SetRunFailureTriageEnabledDocument } from "./node-endpoint-configs-n4xr62e4.js";
3
3
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
4
4
  import { $u as ErrorType, mD as RunFailureClusterStatus } from "./graphql-types-XcDLtFwU.js";
5
5
  import { useCallback, useEffect, useState } from "react";
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
- import { At as NodeManifestsDocument, Bi as describeOperationError, Di as createFluidGridsClient, Er as WorkflowDefinitionDocument, Li as emitFluidGridsEvent, Mi as setFluidGridsClient, Ni as waitForFluidGridsClient, Oi as getFluidGridsClient, Pi as createFluidGridsTokenRefreshLink, Qi as validateTrustedOrigin, R as CreateWorkflowVersionDocument, Ri as emitOperationErrorEvent, Ui as throwIfResultError, Wi as createLiveTokenReader, Xi as resetFluidGridsExecutionState, Yi as resetFluidGridsConfig, Zi as setFluidGridsConfig, at as EventRegistrationsDocument, j as CreateWorkflowDefinitionDocument, ji as resetFluidGridsClient, jt as NodePaletteEntriesDocument, ki as getFluidGridsClientSafe, or as UpdateWorkflowDefinitionDocument, ot as ExecuteStepDocument, qi as getFluidGridsConfig, qn as TriggerWorkflowDocument, qr as WorkflowRunDocument, st as ExecutionDetailDocument, t as fetchAllNodeEndpointConfigs, vn as RunFromNodeDocument, zi as emitRunCompletedOnce } from "./node-endpoint-configs-DW1ZSZZI.js";
3
+ import { $i as validateTrustedOrigin, Ai as getFluidGridsClientSafe, At as NodeManifestsDocument, Bi as emitRunCompletedOnce, Dr as WorkflowDefinitionDocument, En as SaveWorkflowDraftDocument, Fi as createFluidGridsTokenRefreshLink, Gi as createLiveTokenReader, Ji as getFluidGridsConfig, Jn as TriggerWorkflowDocument, Jr as WorkflowRunDocument, Mi as resetFluidGridsClient, Ni as setFluidGridsClient, Oi as createFluidGridsClient, Pi as waitForFluidGridsClient, Qi as setFluidGridsConfig, R as CreateWorkflowVersionDocument, Ri as emitFluidGridsEvent, Vi as describeOperationError, Wi as throwIfResultError, Xi as resetFluidGridsConfig, Zi as resetFluidGridsExecutionState, at as EventRegistrationsDocument, j as CreateWorkflowDefinitionDocument, jt as NodePaletteEntriesDocument, ki as getFluidGridsClient, ot as ExecuteStepDocument, st as ExecutionDetailDocument, t as fetchAllNodeEndpointConfigs, vn as RunFromNodeDocument, zi as emitOperationErrorEvent } from "./node-endpoint-configs-n4xr62e4.js";
4
4
  import { A as nodeAccent, C as nodeAdaptersOf, D as NodeCard, E as resolveOutputHandles, H as useFlowStore, I as partitionStickyNotes, L as resolveStickyColor, N as DEFAULT_STICKY_COLOR, O as NodeCardBody, P as STICKY_COLORS, R as stickySurfaceStyle, T as resolveInputHandles, V as STICKY_NOTE_TYPE, W as isNodeTrigger, _ as LogicNodeCard, b as alignPlainOutputEdges, i as WAIT_FOR_SIGNAL_NODE_TYPE, j as NodeTypeIcon, k as NodeCardHeader, l as interfaceFields, m as readSignalName, n as synchronizeOperationUpdate, p as readCodeWorkflowState, r as CODE_WORKFLOW_NODE_TYPE, t as resolveOperationName, u as interfaceHandlers, v as InputHandles, w as outputHandlesSpacerHeight, x as hasNodeManifest, y as OutputHandles } from "./node-operation-selection--oy-yEq_.js";
5
5
  import { n as FluidGridsTranslationProvider, r as useTr, t as ENGLISH_FALLBACK_TRANSLATOR } from "./TranslationBridge-Da-TPgQm.js";
6
6
  import { createContext, memo, useCallback, useContext, useEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
@@ -3769,8 +3769,10 @@ function prepareNodeForSave(node) {
3769
3769
  return prepareNodeForSave$1(node, slimNodeDataToCurrentOperation);
3770
3770
  }
3771
3771
  /**
3772
- * The stored `definitionJson` of a saved version, read fresh, so a save keeps
3773
- * what other screens wrote there (the Settings page's `config`).
3772
+ * The stored `definitionJson` of a saved version, read fresh, so a save that
3773
+ * creates a new version from it keeps what other screens wrote there (the
3774
+ * Settings page's `config`). A save in place does not read it: the service
3775
+ * keeps those fields itself (`mergeStoredDefinition`).
3774
3776
  */
3775
3777
  async function readStoredDefinition(client, dbId) {
3776
3778
  const { data } = throwIfResultError(await client.query({
@@ -3781,6 +3783,21 @@ async function readStoredDefinition(client, dbId) {
3781
3783
  if (!data?.workflowDefinition) throw new Error("Could not read the saved workflow before saving it");
3782
3784
  return data.workflowDefinition.definitionJson;
3783
3785
  }
3786
+ /**
3787
+ * Drop a saved version's cached `definitionJson`. The draft save no longer
3788
+ * reads the definition back (BOFF-10389), so the cached copy is the one from
3789
+ * before the save; a later cache-first read must go to the service instead.
3790
+ */
3791
+ function forgetCachedDefinition(client, dbId) {
3792
+ const id = client.cache.identify({
3793
+ __typename: "WorkflowDefinition",
3794
+ id: dbId
3795
+ });
3796
+ if (id) client.cache.evict({
3797
+ id,
3798
+ fieldName: "definitionJson"
3799
+ });
3800
+ }
3784
3801
  /** The canvas part of `definitionJson`, as the builder has always written it. */
3785
3802
  function builderDefinition(snapshot, workflowKey, minted) {
3786
3803
  const { workflow } = snapshot;
@@ -3839,20 +3856,22 @@ function useSaveWorkflow() {
3839
3856
  const workflowKey = snapshot.key || mintedKey || "";
3840
3857
  const forkRequested = asNewVersion && !!workflow.dbId;
3841
3858
  const isDraft = !forkRequested && (!workflow.status || workflow.status === "DRAFT");
3859
+ const inPlace = !forkRequested && savesInPlace(workflow);
3842
3860
  const expectedRevision = revisionOf(workflow.dbId);
3843
3861
  const client = getFluidGridsClient();
3844
3862
  const { preparedWorkflow, owned } = builderDefinition(snapshot, workflowKey, !!mintedKey);
3845
- const definitionJson = workflow.dbId ? mergeDefinitionJson(await readStoredDefinition(client, workflow.dbId), owned) : owned;
3863
+ const definitionJson = workflow.dbId && !inPlace ? mergeDefinitionJson(await readStoredDefinition(client, workflow.dbId), owned) : owned;
3846
3864
  let savedVersion = workflow.version;
3847
3865
  let savedDbId = workflow.dbId;
3848
3866
  let operation = "updated";
3849
- if (workflow.dbId && savesInPlace(workflow)) {
3867
+ if (workflow.dbId && inPlace) {
3850
3868
  const { data } = throwIfResultError(await client.mutate({
3851
- mutation: UpdateWorkflowDefinitionDocument,
3869
+ mutation: SaveWorkflowDraftDocument,
3852
3870
  variables: {
3853
3871
  id: workflow.dbId,
3854
3872
  input: {
3855
3873
  definitionJson,
3874
+ mergeStoredDefinition: true,
3856
3875
  name: workflow.name,
3857
3876
  description: workflow.name || "Workflow update",
3858
3877
  alias: workflow.alias?.trim() ? workflow.alias.trim() : null,
@@ -3865,6 +3884,7 @@ function useSaveWorkflow() {
3865
3884
  savedVersion = data.updateWorkflowDefinition.version;
3866
3885
  savedDbId = data.updateWorkflowDefinition.id;
3867
3886
  rememberRevision(savedDbId, data.updateWorkflowDefinition.revision);
3887
+ forgetCachedDefinition(client, savedDbId);
3868
3888
  operation = "updated";
3869
3889
  if (!silent) toast.success("Workflow saved", {
3870
3890
  description: `Updated version ${savedVersion}`,
@@ -4063,14 +4083,23 @@ function isFlowComplete(nodes, edges) {
4063
4083
  const hasAnyLoneNode = nodesWithEmptyTarget.length > 0;
4064
4084
  return hasTriggerNode && isTriggerConnected && (!hasEndNode || isEndConnected) && !hasAnyLoneNode;
4065
4085
  }
4086
+ /**
4087
+ * Check the canvas with {@link isFlowComplete} and hand the answer to
4088
+ * `onValidate` (Save and Run). The check is synchronous and takes well under a
4089
+ * frame, so it runs at once (BOFF-10389: a fixed 300 ms wait used to delay
4090
+ * every Save and Run). `isValidating` stays true until `onValidate` settles,
4091
+ * so a second click while the save or run is starting is ignored.
4092
+ */
4066
4093
  function useFlowValidator(onValidate) {
4067
4094
  const [isValidating, setIsValidating] = useState(false);
4068
4095
  const { getNodes, getEdges } = useReactFlow();
4069
4096
  return [isValidating, useCallback(async () => {
4070
4097
  setIsValidating(true);
4071
- await new Promise((resolve) => setTimeout(resolve, 300));
4072
- onValidate?.(isFlowComplete(getNodes(), getEdges()));
4073
- setIsValidating(false);
4098
+ try {
4099
+ await onValidate?.(isFlowComplete(getNodes(), getEdges()));
4100
+ } finally {
4101
+ setIsValidating(false);
4102
+ }
4074
4103
  }, [
4075
4104
  getNodes,
4076
4105
  getEdges,
@@ -1,8 +1,8 @@
1
1
  "use client";
2
- import { d as useRestoreWorkflowVersion, h as useWorkflowDefinitions } from "./useWorkflows-DNIgOcAG.js";
3
- import { i as versionsOfWorkflow, t as VersionDiffDialog } from "./VersionDiffDialog--pbvNYM3.js";
2
+ import { d as useRestoreWorkflowVersion, h as useWorkflowDefinitions } from "./useWorkflows-DTJbPdQM.js";
3
+ import { i as versionsOfWorkflow, t as VersionDiffDialog } from "./VersionDiffDialog-C6sKSLQJ.js";
4
4
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
5
- import { qi as getFluidGridsConfig } from "./node-endpoint-configs-DW1ZSZZI.js";
5
+ import { Ji as getFluidGridsConfig } from "./node-endpoint-configs-n4xr62e4.js";
6
6
  import { n as useFluidGridsPageControls } from "./pageControlsBridge-0pX9s-3k.js";
7
7
  import { n as historyControls } from "./pageControlSpecs-DZJ9K37m.js";
8
8
  import { t as FluidGridsDocsLink } from "./FluidGridsDocsLink-JxkBpOeb.js";
@@ -1,12 +1,12 @@
1
1
  "use client";
2
- import { Dn as SetContinuousOptimisationEnabledDocument, It as OptimisationSuggestionsDocument, Oi as getFluidGridsClient, Pn as SnoozeOptimisationSuggestionDocument, Q as DismissOptimisationSuggestionDocument, T as ContinuousOptimisationSettingsDocument, Ui as throwIfResultError, Ut as ProposeOptimisationDocument, Wr as WorkflowProposalDocument, it as ErrorAnalyticsDocument, mt as FgRunOptimisationScanDocument, wi as WorkspaceAiUsageDocument } from "./node-endpoint-configs-DW1ZSZZI.js";
3
- import { Gn as useContinuousOptimisationEnabled } from "./FluidGridsProvider-_Nc4kFsk.js";
2
+ import { Fn as SnoozeOptimisationSuggestionDocument, Gr as WorkflowProposalDocument, It as OptimisationSuggestionsDocument, On as SetContinuousOptimisationEnabledDocument, Q as DismissOptimisationSuggestionDocument, T as ContinuousOptimisationSettingsDocument, Ti as WorkspaceAiUsageDocument, Ut as ProposeOptimisationDocument, Wi as throwIfResultError, it as ErrorAnalyticsDocument, ki as getFluidGridsClient, mt as FgRunOptimisationScanDocument } from "./node-endpoint-configs-n4xr62e4.js";
3
+ import { Gn as useContinuousOptimisationEnabled } from "./FluidGridsProvider-CGu1DfIa.js";
4
4
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
5
5
  import { HC as OptimisationDismissReason, UC as OptimisationKind, WC as OptimisationSuggestionStatus, hI as FLUIDGRIDS_PERMISSIONS, vI as SdkPermissionButton, xI as useFluidGridsPermission } from "./graphql-types-XcDLtFwU.js";
6
6
  import { t as proposalCanvasPath } from "./useRequestedProposal-B7uPXfZB.js";
7
- import { c as runListPath, l as utcDay, n as FailureTriagePanel } from "./FailureTriagePanel-BqRG9qxu.js";
7
+ import { c as runListPath, l as utcDay, n as FailureTriagePanel } from "./FailureTriagePanel-D4knfH8i.js";
8
8
  import { a as formatTokens, c as DISMISS_REASONS, f as monthlySavingLabel, i as aiSpendPeriod, l as evidenceFacts, p as shortRunId, r as aiCost, s as runsOfWorkflowPath, t as AI_SPEND_RANGE_DAYS, u as evidenceWindowDays } from "./ai-usage-D5p7ZeRR.js";
9
- import { n as useDataSinks, o as useRunReplayActions, r as useInsightsData, t as useDataSinkData } from "./useObservability-QPQRRmAZ.js";
9
+ import { n as useDataSinks, o as useRunReplayActions, r as useInsightsData, t as useDataSinkData } from "./useObservability-D7v6zupc.js";
10
10
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
11
11
  import { Link, useNavigate } from "react-router";
12
12
  import { Icon } from "@iconify/react";
@@ -1,14 +1,14 @@
1
1
  "use client";
2
- import { Bi as describeOperationError, Br as WorkflowNotificationSettingsDocument, Oi as getFluidGridsClient, Tt as ManagedAiWorkspacePolicyDocument, Ui as throwIfResultError, cr as UpdateWorkflowNotificationSettingsDocument, ir as UpdateManagedAiWorkspacePolicyDocument, qi as getFluidGridsConfig, rr as UpdateDurableHistoryCapsDocument, tt as DurableHistoryCapsDocument } from "./node-endpoint-configs-DW1ZSZZI.js";
3
- import { Bn as FLUIDGRIDS_FLAGS, Dt as useSaveStatusStore, Jn as useFluidGridsFlag, Yt as findSaveConflict, Zn as usePhaseCFlags, qn as useDurableParityEnabled, ur as getGlobalStoreClient } from "./FluidGridsProvider-_Nc4kFsk.js";
2
+ import { Ji as getFluidGridsConfig, Tt as ManagedAiWorkspacePolicyDocument, Vi as describeOperationError, Vr as WorkflowNotificationSettingsDocument, Wi as throwIfResultError, ar as UpdateManagedAiWorkspacePolicyDocument, ir as UpdateDurableHistoryCapsDocument, ki as getFluidGridsClient, lr as UpdateWorkflowNotificationSettingsDocument, tt as DurableHistoryCapsDocument } from "./node-endpoint-configs-n4xr62e4.js";
3
+ import { Bn as FLUIDGRIDS_FLAGS, Dt as useSaveStatusStore, Jn as useFluidGridsFlag, Yt as findSaveConflict, Zn as usePhaseCFlags, qn as useDurableParityEnabled, ur as getGlobalStoreClient } from "./FluidGridsProvider-CGu1DfIa.js";
4
4
  import { H as useFlowStore } from "./node-operation-selection--oy-yEq_.js";
5
5
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
6
- import { Wt as useWorkflowDefinitionQuery, a as useConnections, n as useAgentDefinitions, qt as useWorkflowDefinitionsQuery, zt as useUpdateWorkflowDefinitionMutation } from "./useAgentDefinitions-DQqibfr4.js";
6
+ import { Wt as useWorkflowDefinitionQuery, a as useConnections, n as useAgentDefinitions, qt as useWorkflowDefinitionsQuery, zt as useUpdateWorkflowDefinitionMutation } from "./useAgentDefinitions-D8Q-GkM7.js";
7
7
  import { KF as WorkflowSearchAttributeType, hI as FLUIDGRIDS_PERMISSIONS, xI as useFluidGridsPermission } from "./graphql-types-XcDLtFwU.js";
8
8
  import { t as FluidGridsDocsLink } from "./FluidGridsDocsLink-JxkBpOeb.js";
9
- import { C as createSearchAttribute, E as deleteSearchAttribute, J as saveArchiveSettings, N as fetchCodecServerSettings, P as fetchPauseRules, R as fetchSearchAttributes, S as createPauseRule, T as deletePauseRule, Y as saveCodecServerSettings, _ as useResource, a as formToInput$2, b as clearArchiveSettings, c as FieldError, d as NativeSelect, i as emptyAgentForm, k as fetchArchiveSettings, n as agentToForm, o as grantDays, p as StatusPill, r as describeRule, t as AgentFormError } from "./agent-form-D25lAEWg.js";
10
- import { c as budgetInputValue, d as withBudgetMode, f as EffectBadge, m as useActionPolicies, n as checkCodecServerUrl, p as effectLabel, s as BUDGET_DIMENSIONS, u as withBudgetLimit } from "./codec-client-Cz_myeH8.js";
11
- import { a as useLogStreamDestinations, i as useLogStreamDestinationActions } from "./useObservability-QPQRRmAZ.js";
9
+ import { C as createSearchAttribute, E as deleteSearchAttribute, J as saveArchiveSettings, N as fetchCodecServerSettings, P as fetchPauseRules, R as fetchSearchAttributes, S as createPauseRule, T as deletePauseRule, Y as saveCodecServerSettings, _ as useResource, a as formToInput$2, b as clearArchiveSettings, c as FieldError, d as NativeSelect, i as emptyAgentForm, k as fetchArchiveSettings, n as agentToForm, o as grantDays, p as StatusPill, r as describeRule, t as AgentFormError } from "./agent-form-L-gYYgLb.js";
10
+ import { c as budgetInputValue, d as withBudgetMode, f as EffectBadge, m as useActionPolicies, n as checkCodecServerUrl, p as effectLabel, s as BUDGET_DIMENSIONS, u as withBudgetLimit } from "./codec-client-C_eJuWkT.js";
11
+ import { a as useLogStreamDestinations, i as useLogStreamDestinationActions } from "./useObservability-D7v6zupc.js";
12
12
  import { createContext, useCallback, useContext, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
13
13
  import { useNavigate, useParams } from "react-router";
14
14
  import { Icon } from "@iconify/react";
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { A as DialogTitle, D as DialogHeader, E as DialogFooter, S as Dialog, T as DialogDescription, b as Badge, w as DialogContent } from "./flow-builder-BkD07RI7.js";
3
- import { i as Button } from "./PublishCustomNodeAction-DS71F2-x.js";
2
+ import { A as DialogTitle, D as DialogHeader, E as DialogFooter, S as Dialog, T as DialogDescription, b as Badge, w as DialogContent } from "./flow-builder-khQcrBqv.js";
3
+ import { i as Button } from "./PublishCustomNodeAction-Bdgdkxf_.js";
4
4
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
5
5
  import { AlertTriangle, CheckCircle2, Download, ExternalLink, Loader2, Puzzle, ShoppingCart } from "lucide-react";
6
6
 
@@ -1,7 +1,7 @@
1
1
  "use client";
2
- import { Dt as NodeEndpointConfigDocument, Oi as getFluidGridsClient, Ot as NodeEndpointConfigsDocument, kt as NodeManifestDocument, t as fetchAllNodeEndpointConfigs } from "./node-endpoint-configs-DW1ZSZZI.js";
2
+ import { Dt as NodeEndpointConfigDocument, Ot as NodeEndpointConfigsDocument, ki as getFluidGridsClient, kt as NodeManifestDocument, t as fetchAllNodeEndpointConfigs } from "./node-endpoint-configs-n4xr62e4.js";
3
3
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
4
- import { t as PublishCustomNodeAction } from "./PublishCustomNodeAction-DS71F2-x.js";
4
+ import { t as PublishCustomNodeAction } from "./PublishCustomNodeAction-Bdgdkxf_.js";
5
5
  import { useCallback, useEffect, useMemo, useState } from "react";
6
6
  import { useNavigate } from "react-router";
7
7
  import { Icon } from "@iconify/react";
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { qi as getFluidGridsConfig } from "./node-endpoint-configs-DW1ZSZZI.js";
2
+ import { Ji as getFluidGridsConfig } from "./node-endpoint-configs-n4xr62e4.js";
3
3
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
4
4
  import { t as cn } from "./cn-QqidFIgr.js";
5
5
  import "react";
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { A as DialogTitle, D as DialogHeader, E as DialogFooter, S as Dialog, T as DialogDescription, b as Badge, ht as Input, w as DialogContent } from "./flow-builder-BkD07RI7.js";
3
- import { i as Button } from "./PublishCustomNodeAction-DS71F2-x.js";
2
+ import { A as DialogTitle, D as DialogHeader, E as DialogFooter, S as Dialog, T as DialogDescription, b as Badge, ht as Input, w as DialogContent } from "./flow-builder-khQcrBqv.js";
3
+ import { i as Button } from "./PublishCustomNodeAction-Bdgdkxf_.js";
4
4
  import { t as Label } from "./label-CDy86rIZ.js";
5
5
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
6
6
  import { useEffect, useMemo, useState } from "react";
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { i as Button } from "./PublishCustomNodeAction-DS71F2-x.js";
3
- import { b as Badge, y as templatePreview } from "./flow-builder-BkD07RI7.js";
2
+ import { i as Button } from "./PublishCustomNodeAction-Bdgdkxf_.js";
3
+ import { b as Badge, y as templatePreview } from "./flow-builder-khQcrBqv.js";
4
4
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
5
5
  import { hI as FLUIDGRIDS_PERMISSIONS, vI as SdkPermissionButton } from "./graphql-types-XcDLtFwU.js";
6
6
  import { Icon } from "@iconify/react";
@@ -1,10 +1,10 @@
1
1
  "use client";
2
- import { Bi as describeOperationError, Oi as getFluidGridsClient, Ui as throwIfResultError, qi as getFluidGridsConfig } from "./node-endpoint-configs-DW1ZSZZI.js";
3
- import { Dn as isQuotaExhaustedFailure, E as MyWorkflowTemplateSubmissionsDocument, O as SubmitWorkflowTemplateDocument, Sn as BILLING_PLANS_PATH, T as InstallWorkflowNodeDocument, _n as emitWorkflowCreated, hn as emitTemplateUsed, j as WithdrawWorkflowTemplateSubmissionDocument, ln as useFluidGridsAnalytics, t as FluidGridsContext } from "./FluidGridsProvider-_Nc4kFsk.js";
2
+ import { Ji as getFluidGridsConfig, Vi as describeOperationError, Wi as throwIfResultError, ki as getFluidGridsClient } from "./node-endpoint-configs-n4xr62e4.js";
3
+ import { Dn as isQuotaExhaustedFailure, E as MyWorkflowTemplateSubmissionsDocument, O as SubmitWorkflowTemplateDocument, Sn as BILLING_PLANS_PATH, T as InstallWorkflowNodeDocument, _n as emitWorkflowCreated, hn as emitTemplateUsed, j as WithdrawWorkflowTemplateSubmissionDocument, ln as useFluidGridsAnalytics, t as FluidGridsContext } from "./FluidGridsProvider-CGu1DfIa.js";
4
4
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
5
- import { K as useGlobalStoreClient, N as useWorkflowTemplates, P as useInstallNode, t as FlowBuilderPage, v as TemplateCard } from "./flow-builder-BkD07RI7.js";
6
- import { h as useWorkflowDefinitions, l as useLazyWorkflowDefinition, s as useDuplicateWorkflow } from "./useWorkflows-DNIgOcAG.js";
7
- import { k as QuotaExhaustedDialog } from "./WorkflowShareDialog-CNg_qWNL.js";
5
+ import { K as useGlobalStoreClient, N as useWorkflowTemplates, P as useInstallNode, t as FlowBuilderPage, v as TemplateCard } from "./flow-builder-khQcrBqv.js";
6
+ import { h as useWorkflowDefinitions, l as useLazyWorkflowDefinition, s as useDuplicateWorkflow } from "./useWorkflows-DTJbPdQM.js";
7
+ import { k as QuotaExhaustedDialog } from "./WorkflowShareDialog-CPUkd7CL.js";
8
8
  import { YF as WorkflowStatus, hI as FLUIDGRIDS_PERMISSIONS, vI as SdkPermissionButton } from "./graphql-types-XcDLtFwU.js";
9
9
  import { n as useFluidGridsPageControls } from "./pageControlsBridge-0pX9s-3k.js";
10
10
  import { r as templatesControls } from "./pageControlSpecs-DZJ9K37m.js";
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
3
- import { Bi as describeOperationError, Er as WorkflowDefinitionDocument, Oi as getFluidGridsClient, Ui as throwIfResultError, yi as WorkflowVersionDiffDocument } from "./node-endpoint-configs-DW1ZSZZI.js";
3
+ import { Dr as WorkflowDefinitionDocument, Vi as describeOperationError, Wi as throwIfResultError, bi as WorkflowVersionDiffDocument, ki as getFluidGridsClient } from "./node-endpoint-configs-n4xr62e4.js";
4
4
  import { t as canvasFromDefinition } from "./definition-canvas--3MPHoP-.js";
5
5
  import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
6
6
  import { Background, Controls, Handle, MiniMap, Position, ReactFlow, ReactFlowProvider } from "@xyflow/react";
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { $n as UntagFluidgridsEntityDocument, B as DataTablesTagsDocument, Cn as RunWorkflowTestsDocument, En as SearchFluidgridsTagsDocument, Gt as ProposeWorkflowChangeDocument, I as CreateWorkflowTestCaseDocument, L as CreateWorkflowTestCaseFromRunDocument, O as CreateFluidgridsTagDocument, Oi as getFluidGridsClient, S as CancelWorkflowProposalDocument, Ui as throwIfResultError, Vi as isForbiddenError, Wr as WorkflowProposalDocument, Wt as ProposeRunFixDocument, X as DeleteWorkflowTestCaseDocument, Xt as RejectWorkflowProposalDocument, _i as WorkflowTestRunsDocument, f as AvailableFluidgridsTagsDocument, hi as WorkflowTestRunDocument, l as ApplyWorkflowProposalDocument, mi as WorkflowTestCasesDocument, qi as getFluidGridsConfig, tn as ReplaceFluidgridsEntityTagsDocument, ur as UpdateWorkflowTestCaseDocument, vt as FluidgridsEntityTagsDocument, zn as TagFluidgridsEntityDocument } from "./node-endpoint-configs-DW1ZSZZI.js";
2
+ import { B as DataTablesTagsDocument, Bn as TagFluidgridsEntityDocument, Cn as RunWorkflowTestsDocument, Dn as SearchFluidgridsTagsDocument, Gr as WorkflowProposalDocument, Gt as ProposeWorkflowChangeDocument, Hi as isForbiddenError, I as CreateWorkflowTestCaseDocument, Ji as getFluidGridsConfig, L as CreateWorkflowTestCaseFromRunDocument, O as CreateFluidgridsTagDocument, S as CancelWorkflowProposalDocument, Wi as throwIfResultError, Wt as ProposeRunFixDocument, X as DeleteWorkflowTestCaseDocument, Xt as RejectWorkflowProposalDocument, dr as UpdateWorkflowTestCaseDocument, er as UntagFluidgridsEntityDocument, f as AvailableFluidgridsTagsDocument, gi as WorkflowTestRunDocument, hi as WorkflowTestCasesDocument, ki as getFluidGridsClient, l as ApplyWorkflowProposalDocument, tn as ReplaceFluidgridsEntityTagsDocument, vi as WorkflowTestRunsDocument, vt as FluidgridsEntityTagsDocument } from "./node-endpoint-configs-n4xr62e4.js";
3
3
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
4
4
  import { $F as WorkflowTestRunSource, $u as ErrorType, QF as WorkflowTestExpectedStatus, ZF as WorkflowTestAssertionOperator, eI as WorkflowTestRunStatus } from "./graphql-types-XcDLtFwU.js";
5
5
  import { a as notifyFluidGridsAiCreditsUpdated } from "./aiCreditsBridge-BuE92tKo.js";
@@ -1,14 +1,14 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
- import { Er as WorkflowDefinitionDocument, Oi as getFluidGridsClient, Ui as throwIfResultError, qi as getFluidGridsConfig } from "./node-endpoint-configs-DW1ZSZZI.js";
4
- import { Ct as classifyCreateRefusal, Dt as useSaveStatusStore, G as paramsFromOperation, Jt as codeBuildIdOf, On as useCanvasEdges, P as createConfiguredNode, Qt as workflowFingerprint, Sn as BILLING_PLANS_PATH, Wt as rememberRevision, f as refetchStoreNodes, l as ensureNodeTypesLoaded, m as registerWorkflowNodeTypes, n as FluidGridsProvider, o as NODE_CONFIGS, p as registerNodeManifests, sn as resolveNodeOperation, xt as blankWorkflowCreateInput } from "./FluidGridsProvider-_Nc4kFsk.js";
3
+ import { Dr as WorkflowDefinitionDocument, Ji as getFluidGridsConfig, Wi as throwIfResultError, ki as getFluidGridsClient } from "./node-endpoint-configs-n4xr62e4.js";
4
+ import { Ct as classifyCreateRefusal, Dt as useSaveStatusStore, G as paramsFromOperation, Jt as codeBuildIdOf, On as useCanvasEdges, P as createConfiguredNode, Qt as workflowFingerprint, Sn as BILLING_PLANS_PATH, Wt as rememberRevision, f as refetchStoreNodes, l as ensureNodeTypesLoaded, m as registerWorkflowNodeTypes, n as FluidGridsProvider, o as NODE_CONFIGS, p as registerNodeManifests, sn as resolveNodeOperation, xt as blankWorkflowCreateInput } from "./FluidGridsProvider-CGu1DfIa.js";
5
5
  import { F as mergeStickyNotes, H as useFlowStore } from "./node-operation-selection--oy-yEq_.js";
6
6
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
7
- import { F as useInstalledNodes, _ as buildRequiredNodeTypes, ct as FluidGridsMark, f as releaseLeaseKeptForReload, g as buildNodeCheck, ht as Input, lt as Card, p as useWorkflowReloadStore, st as useNodeSelectedEvent, t as FlowBuilderPage } from "./flow-builder-BkD07RI7.js";
7
+ import { F as useInstalledNodes, _ as buildRequiredNodeTypes, ct as FluidGridsMark, f as releaseLeaseKeptForReload, g as buildNodeCheck, ht as Input, lt as Card, p as useWorkflowReloadStore, st as useNodeSelectedEvent, t as FlowBuilderPage } from "./flow-builder-khQcrBqv.js";
8
8
  import { t as cn } from "./cn-QqidFIgr.js";
9
- import { i as Button } from "./PublishCustomNodeAction-DS71F2-x.js";
10
- import { l as useLazyWorkflowDefinition, m as useWorkflowDefinition, n as useCreateWorkflow } from "./useWorkflows-DNIgOcAG.js";
11
- import { O as CreateWorkflowRefusalDialog } from "./WorkflowShareDialog-CNg_qWNL.js";
9
+ import { i as Button } from "./PublishCustomNodeAction-Bdgdkxf_.js";
10
+ import { l as useLazyWorkflowDefinition, m as useWorkflowDefinition, n as useCreateWorkflow } from "./useWorkflows-DTJbPdQM.js";
11
+ import { O as CreateWorkflowRefusalDialog } from "./WorkflowShareDialog-CPUkd7CL.js";
12
12
  import { c as withoutGuidedTourIntent, l as decideMissingWorkflow, o as isGuidedTourIntent, s as pickGuidedTour, u as isCreateIntent } from "./firstWorkflow-C_h0KMB2.js";
13
13
  import { t as canvasFromDefinition } from "./definition-canvas--3MPHoP-.js";
14
14
  import { n as registerLiveCanvasHandler } from "./liveCanvas-D5ytXDp8.js";
@@ -1627,7 +1627,7 @@ function GuidedTourStarter({ ready }) {
1627
1627
  }
1628
1628
 
1629
1629
  // src/builder/app/workflow/work/page.tsx
1630
- const LazyMissingNodesInstallModal = lazy(() => import("./MissingNodesInstallModal-CdvMiEN_.js").then((m) => ({ default: m.MissingNodesInstallModal })));
1630
+ const LazyMissingNodesInstallModal = lazy(() => import("./MissingNodesInstallModal-DUTpT0Bx.js").then((m) => ({ default: m.MissingNodesInstallModal })));
1631
1631
  function WorkflowItem({ readonly = false }) {
1632
1632
  if (readonly) {
1633
1633
  const queryParams = new URLSearchParams(window.location.search);
@@ -1697,9 +1697,9 @@ function WorkflowItem({ readonly = false }) {
1697
1697
  setInstalling(true);
1698
1698
  setInstallErrors([]);
1699
1699
  try {
1700
- const { getGlobalStoreClient } = await import("./FluidGridsProvider-_Nc4kFsk.js").then((n) => n.dr);
1701
- const { InstallWorkflowNodeDocument } = await import("./FluidGridsProvider-_Nc4kFsk.js").then((n) => n._);
1702
- const { getFluidGridsConfig } = await import("./node-endpoint-configs-DW1ZSZZI.js").then((n) => n.Ki);
1700
+ const { getGlobalStoreClient } = await import("./FluidGridsProvider-CGu1DfIa.js").then((n) => n.dr);
1701
+ const { InstallWorkflowNodeDocument } = await import("./FluidGridsProvider-CGu1DfIa.js").then((n) => n._);
1702
+ const { getFluidGridsConfig } = await import("./node-endpoint-configs-n4xr62e4.js").then((n) => n.qi);
1703
1703
  const storeClient = getGlobalStoreClient();
1704
1704
  const cfg = getFluidGridsConfig();
1705
1705
  for (let i = 0; i < nodesToInstall.length; i++) {
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { Bi as describeOperationError, Mn as ShareWorkflowDocument, Oi as getFluidGridsClient, Ui as throwIfResultError, ft as ExportWorkflowCodeDocument, li as WorkflowSharingDocument } from "./node-endpoint-configs-DW1ZSZZI.js";
3
- import { gn as emitUpgradeClicked, ln as useFluidGridsAnalytics, vn as emitWorkflowLimitHit, wn as WORKFLOWS_QUOTA_NAME } from "./FluidGridsProvider-_Nc4kFsk.js";
2
+ import { Nn as ShareWorkflowDocument, Vi as describeOperationError, Wi as throwIfResultError, ft as ExportWorkflowCodeDocument, ki as getFluidGridsClient, ui as WorkflowSharingDocument } from "./node-endpoint-configs-n4xr62e4.js";
3
+ import { gn as emitUpgradeClicked, ln as useFluidGridsAnalytics, vn as emitWorkflowLimitHit, wn as WORKFLOWS_QUOTA_NAME } from "./FluidGridsProvider-CGu1DfIa.js";
4
4
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
5
5
  import { CF as WorkflowExportFormat, Fd as FidelityLevel, JF as WorkflowShareRole, hF as WorkflowAccess, nI as WorkflowVisibility, qF as WorkflowSharePrincipalType } from "./graphql-types-XcDLtFwU.js";
6
6
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
@@ -1,13 +1,13 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
- import { c as useImportWorkflow, h as useWorkflowDefinitions, l as useLazyWorkflowDefinition, n as useCreateWorkflow, o as useDeleteWorkflow, s as useDuplicateWorkflow, u as usePreviewN8nImport } from "./useWorkflows-DNIgOcAG.js";
4
- import { Bn as FLUIDGRIDS_FLAGS, Dn as isQuotaExhaustedFailure, Jn as useFluidGridsFlag, Sn as BILLING_PLANS_PATH, t as FluidGridsContext, wt as createThenOpen } from "./FluidGridsProvider-_Nc4kFsk.js";
5
- import { C as readProjectArchive, D as workflowNameFromFile, E as typeScriptModuleFile, O as CreateWorkflowRefusalDialog, S as primaryImportModule, T as typeScriptImportSource, _ as importFileKind, a as downloadWorkflowExport, c as canShareWorkflow, d as MAX_IMPORT_ARCHIVE_BYTES, f as MAX_IMPORT_SOURCE_BYTES, g as importAcceptAttribute, k as QuotaExhaustedDialog, l as CODE_EXPORT_FORMATS, m as checkTypeScriptImport, o as parseWorkflowImport, p as assertImportByteSize, r as useExportWorkflowAs, s as canEditWorkflow, t as WorkflowShareDialog, u as ImportSourceError } from "./WorkflowShareDialog-CNg_qWNL.js";
3
+ import { c as useImportWorkflow, h as useWorkflowDefinitions, l as useLazyWorkflowDefinition, n as useCreateWorkflow, o as useDeleteWorkflow, s as useDuplicateWorkflow, u as usePreviewN8nImport } from "./useWorkflows-DTJbPdQM.js";
4
+ import { Bn as FLUIDGRIDS_FLAGS, Dn as isQuotaExhaustedFailure, Jn as useFluidGridsFlag, Sn as BILLING_PLANS_PATH, t as FluidGridsContext, wt as createThenOpen } from "./FluidGridsProvider-CGu1DfIa.js";
5
+ import { C as readProjectArchive, D as workflowNameFromFile, E as typeScriptModuleFile, O as CreateWorkflowRefusalDialog, S as primaryImportModule, T as typeScriptImportSource, _ as importFileKind, a as downloadWorkflowExport, c as canShareWorkflow, d as MAX_IMPORT_ARCHIVE_BYTES, f as MAX_IMPORT_SOURCE_BYTES, g as importAcceptAttribute, k as QuotaExhaustedDialog, l as CODE_EXPORT_FORMATS, m as checkTypeScriptImport, o as parseWorkflowImport, p as assertImportByteSize, r as useExportWorkflowAs, s as canEditWorkflow, t as WorkflowShareDialog, u as ImportSourceError } from "./WorkflowShareDialog-CPUkd7CL.js";
6
6
  import { H as useFlowStore } from "./node-operation-selection--oy-yEq_.js";
7
7
  import { CF as WorkflowExportFormat, gF as WorkflowAccessFilter, hI as FLUIDGRIDS_PERMISSIONS, vI as SdkPermissionButton, xI as useFluidGridsPermission, yI as SdkPermissionGate } from "./graphql-types-XcDLtFwU.js";
8
8
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
9
- import { $t as RenameWorkflowFolderDocument, Bi as describeOperationError, Et as MoveWorkflowFolderDocument, Hr as WorkflowProjectsDocument, K as DeleteWorkflowFolderDocument, M as CreateWorkflowFolderDocument, N as CreateWorkflowProjectDocument, Nr as WorkflowFoldersDocument, Oi as getFluidGridsClient, Ui as throwIfResultError, _ as BulkMoveWorkflowsToFolderDocument, en as RenameWorkflowProjectDocument, g as BulkDeleteWorkflowsDocument, h as BulkAssignWorkflowsToProjectDocument, q as DeleteWorkflowProjectDocument } from "./node-endpoint-configs-DW1ZSZZI.js";
10
- import { a as useExecutions } from "./useExecutions-RFROujCH.js";
9
+ import { $t as RenameWorkflowFolderDocument, Et as MoveWorkflowFolderDocument, K as DeleteWorkflowFolderDocument, M as CreateWorkflowFolderDocument, N as CreateWorkflowProjectDocument, Pr as WorkflowFoldersDocument, Ur as WorkflowProjectsDocument, Vi as describeOperationError, Wi as throwIfResultError, _ as BulkMoveWorkflowsToFolderDocument, en as RenameWorkflowProjectDocument, g as BulkDeleteWorkflowsDocument, h as BulkAssignWorkflowsToProjectDocument, ki as getFluidGridsClient, q as DeleteWorkflowProjectDocument } from "./node-endpoint-configs-n4xr62e4.js";
10
+ import { a as useExecutions } from "./useExecutions-nrxmx5sw.js";
11
11
  import { a as firstWorkflowProgress, i as builderPathFor, r as GUIDED_TOUR_STATE } from "./firstWorkflow-C_h0KMB2.js";
12
12
  import { n as useFluidGridsPageControls } from "./pageControlsBridge-0pX9s-3k.js";
13
13
  import { i as workflowsListControls } from "./pageControlSpecs-DZJ9K37m.js";
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { Bi as describeOperationError, C as CodecServerSettingsDocument, D as CreateActivityPauseRuleDocument, F as CreateWorkflowSignalTokenDocument, Fn as StartBatchExportDocument, H as DeleteActivityPauseRuleDocument, In as StartBatchOperationDocument, Jn as TriggerWorkflowScheduleDocument, Ln as StartBatchTerminateDocument, Lt as PauseActivityDocument, Oi as getFluidGridsClient, P as CreateWorkflowSearchAttributeDocument, Sr as WorkflowBatchOperationsDocument, Ui as throwIfResultError, Xn as UnpauseActivityDocument, Xr as WorkflowRunHistoryArchiveDocument, Y as DeleteWorkflowSearchAttributeDocument, Zn as UnpauseWorkflowScheduleDocument, an as ResetWorkflowRunToLastCleanTaskDocument, br as WorkflowBatchOperationDocument, ci as WorkflowSearchAttributesDocument, d as ArchiveSettingsDocument, di as WorkflowSignalTokensDocument, dr as UpsertWorkflowRunSearchAttributesDocument, er as UpdateActivityOptionsDocument, gr as WorkflowActivityPauseRulesDocument, ii as WorkflowScheduleDescribeDocument, in as ResetWorkflowRunDocument, lr as UpdateWorkflowRunDocument, mn as RunControlFieldsDocument, nr as UpdateCodecServerSettingsDocument, p as BackfillWorkflowScheduleDocument, pt as FailActivityByIdDocument, qt as QueryWorkflowRunDocument, rn as ResetActivityDocument, ti as WorkflowRunUpdateDocument, tr as UpdateArchiveSettingsDocument, un as RevokeWorkflowSignalTokenDocument, v as CancelBatchOperationDocument, w as CompleteActivityByIdDocument, wr as WorkflowCodeBundleSdkDocument, zt as PauseWorkflowScheduleDocument } from "./node-endpoint-configs-DW1ZSZZI.js";
2
+ import { C as CodecServerSettingsDocument, Cr as WorkflowBatchOperationsDocument, D as CreateActivityPauseRuleDocument, F as CreateWorkflowSignalTokenDocument, H as DeleteActivityPauseRuleDocument, In as StartBatchExportDocument, Ln as StartBatchOperationDocument, Lt as PauseActivityDocument, P as CreateWorkflowSearchAttributeDocument, Qn as UnpauseWorkflowScheduleDocument, Rn as StartBatchTerminateDocument, Tr as WorkflowCodeBundleSdkDocument, Vi as describeOperationError, Wi as throwIfResultError, Y as DeleteWorkflowSearchAttributeDocument, Yn as TriggerWorkflowScheduleDocument, Zn as UnpauseActivityDocument, Zr as WorkflowRunHistoryArchiveDocument, _r as WorkflowActivityPauseRulesDocument, ai as WorkflowScheduleDescribeDocument, an as ResetWorkflowRunToLastCleanTaskDocument, d as ArchiveSettingsDocument, fi as WorkflowSignalTokensDocument, fr as UpsertWorkflowRunSearchAttributesDocument, in as ResetWorkflowRunDocument, ki as getFluidGridsClient, li as WorkflowSearchAttributesDocument, mn as RunControlFieldsDocument, ni as WorkflowRunUpdateDocument, nr as UpdateArchiveSettingsDocument, p as BackfillWorkflowScheduleDocument, pt as FailActivityByIdDocument, qt as QueryWorkflowRunDocument, rn as ResetActivityDocument, rr as UpdateCodecServerSettingsDocument, tr as UpdateActivityOptionsDocument, un as RevokeWorkflowSignalTokenDocument, ur as UpdateWorkflowRunDocument, v as CancelBatchOperationDocument, w as CompleteActivityByIdDocument, xr as WorkflowBatchOperationDocument, zt as PauseWorkflowScheduleDocument } from "./node-endpoint-configs-n4xr62e4.js";
3
3
  import { useCallback, useEffect, useRef, useState } from "react";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
  import { Label, Textarea } from "@burdenoff/fe-libs/ui";
@@ -1,7 +1,7 @@
1
1
  "use client";
2
- import { Dt as useSaveStatusStore, G as paramsFromOperation, K as selectedOperationOf, P as createConfiguredNode, U as nodeTitle, V as fixedParameterState, h as registryNodeData, o as NODE_CONFIGS, u as isNodeConfigsInitialized, ut as autosaveAllowedFor, vt as isFlowComplete } from "./FluidGridsProvider-_Nc4kFsk.js";
2
+ import { Dt as useSaveStatusStore, G as paramsFromOperation, K as selectedOperationOf, P as createConfiguredNode, U as nodeTitle, V as fixedParameterState, h as registryNodeData, o as NODE_CONFIGS, u as isNodeConfigsInitialized, ut as autosaveAllowedFor, vt as isFlowComplete } from "./FluidGridsProvider-CGu1DfIa.js";
3
3
  import { E as resolveOutputHandles, H as useFlowStore, T as resolveInputHandles } from "./node-operation-selection--oy-yEq_.js";
4
- import { M as computeAttachPosition, xt as isNodeTypeHiddenFromPalette } from "./flow-builder-BkD07RI7.js";
4
+ import { M as computeAttachPosition, xt as isNodeTypeHiddenFromPalette } from "./flow-builder-khQcrBqv.js";
5
5
  import { AgentToolError, defineAgentTool } from "@burdenoff/fe-libs/shared/agent-tools";
6
6
  import { z } from "zod";
7
7
 
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { Oi as getFluidGridsClient, Ui as throwIfResultError } from "./node-endpoint-configs-DW1ZSZZI.js";
2
+ import { Wi as throwIfResultError, ki as getFluidGridsClient } from "./node-endpoint-configs-n4xr62e4.js";
3
3
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
4
4
  import { useCallback, useEffect, useState } from "react";
5
5
  import { cn } from "@burdenoff/fe-libs/utils";
@@ -1,4 +1,4 @@
1
1
  "use client";
2
- import { t as ExecutionDetailPage, y as ExecutionsListPage } from "./ExecutionDetailPage-DoxxG0b1.js";
2
+ import { t as ExecutionDetailPage, y as ExecutionsListPage } from "./ExecutionDetailPage-bhdyEtzU.js";
3
3
 
4
4
  export { ExecutionDetailPage, ExecutionsListPage };