@burdenoff/fluidgrids-fe-sdk 2026.930.2 → 2026.930.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/dist/{ExecutionDetailPage-RK3KJ46E.js → ExecutionDetailPage-TDE7OEEM.js} +4 -4
  2. package/dist/{ExecutionDetailPage-RK3KJ46E.js.map → ExecutionDetailPage-TDE7OEEM.js.map} +1 -1
  3. package/dist/{ExecutionsListPage-NXINADRN.js → ExecutionsListPage-CJGHZKBU.js} +4 -4
  4. package/dist/{ExecutionsListPage-NXINADRN.js.map → ExecutionsListPage-CJGHZKBU.js.map} +1 -1
  5. package/dist/{WorkflowBuilder-EXHCYJFW.js → WorkflowBuilder-MCBEAHRS.js} +5 -5
  6. package/dist/{WorkflowBuilder-EXHCYJFW.js.map → WorkflowBuilder-MCBEAHRS.js.map} +1 -1
  7. package/dist/{WorkflowsList-AFTTUUHX.js → WorkflowsList-BLTHWPFH.js} +4 -4
  8. package/dist/{WorkflowsList-AFTTUUHX.js.map → WorkflowsList-BLTHWPFH.js.map} +1 -1
  9. package/dist/{chunk-IJSJOTIZ.js → chunk-2GG7H3TG.js} +3 -3
  10. package/dist/{chunk-IJSJOTIZ.js.map → chunk-2GG7H3TG.js.map} +1 -1
  11. package/dist/{chunk-USFSPC6S.js → chunk-37BHUNJW.js} +2 -2
  12. package/dist/chunk-37BHUNJW.js.map +1 -0
  13. package/dist/{chunk-NTJTPYCD.js → chunk-3B5YEXSW.js} +3 -7
  14. package/dist/chunk-3B5YEXSW.js.map +1 -0
  15. package/dist/{chunk-R5ZYOIZG.js → chunk-BNSM27CU.js} +3 -3
  16. package/dist/{chunk-R5ZYOIZG.js.map → chunk-BNSM27CU.js.map} +1 -1
  17. package/dist/{chunk-NHZQE7ZB.js → chunk-JYBARIVZ.js} +3 -3
  18. package/dist/{chunk-NHZQE7ZB.js.map → chunk-JYBARIVZ.js.map} +1 -1
  19. package/dist/{chunk-N7D4IAYM.js → chunk-LZZZNEBI.js} +4 -4
  20. package/dist/{chunk-N7D4IAYM.js.map → chunk-LZZZNEBI.js.map} +1 -1
  21. package/dist/{chunk-C4YEGUY2.js → chunk-OMCLKOFQ.js} +3 -3
  22. package/dist/{chunk-C4YEGUY2.js.map → chunk-OMCLKOFQ.js.map} +1 -1
  23. package/dist/{chunk-GBXVY4MJ.js → chunk-QM4C7YDK.js} +143 -36
  24. package/dist/chunk-QM4C7YDK.js.map +1 -0
  25. package/dist/{chunk-7SX5OWZR.js → chunk-QOZASRIB.js} +20 -3
  26. package/dist/chunk-QOZASRIB.js.map +1 -0
  27. package/dist/{chunk-2FUWCGY6.js → chunk-XH3UV667.js} +43 -6
  28. package/dist/chunk-XH3UV667.js.map +1 -0
  29. package/dist/executions.js +3 -3
  30. package/dist/index.d.ts +2 -2
  31. package/dist/index.js +16 -16
  32. package/dist/index.js.map +1 -1
  33. package/dist/settings.js +2 -2
  34. package/dist/templates.js +3 -3
  35. package/dist/{workflow-builder-DqInt43T.d.ts → workflow-builder-CpdCzzst.d.ts} +2 -0
  36. package/dist/workflow-builder.d.ts +1 -1
  37. package/dist/workflow-builder.js +4 -4
  38. package/dist/workflows-list.js +2 -2
  39. package/package.json +1 -1
  40. package/dist/chunk-2FUWCGY6.js.map +0 -1
  41. package/dist/chunk-7SX5OWZR.js.map +0 -1
  42. package/dist/chunk-GBXVY4MJ.js.map +0 -1
  43. package/dist/chunk-NTJTPYCD.js.map +0 -1
  44. package/dist/chunk-USFSPC6S.js.map +0 -1
@@ -9,7 +9,7 @@ import { SdkPermissionGate, FLUIDGRIDS_PERMISSIONS, SdkPermissionButton } from '
9
9
  import { cn as cn$1 } from './chunk-3ZYUGTIT.js';
10
10
  import { useWorkflowVersions, useRestoreWorkflowVersion, useActivateWorkflow, useDeleteWorkflow, useLazyWorkflowDefinition, useDeactivateWorkflow } from './chunk-GKSXZFDY.js';
11
11
  import { config, getFluidGridsConfig, validateTrustedOrigin, setFluidGridsConfig, resetFluidGridsConfig } from './chunk-U4AJLVHA.js';
12
- import { useFlowStore } from './chunk-NTJTPYCD.js';
12
+ import { useFlowStore } from './chunk-3B5YEXSW.js';
13
13
  import { NodeEndpointConfigsDocument, NodeManifestDocument, UpdateWorkflowDefinitionDocument, CreateWorkflowDefinitionDocument, CreateWorkflowVersionDocument, ExecuteStepDocument, TriggerWorkflowDocument, RunFromNodeDocument, ExecutionDetailDocument, WorkflowRunDocument, FluidgridsEntityTagsDocument, AvailableFluidgridsTagsDocument, SearchFluidgridsTagsDocument, TagFluidgridsEntityDocument, UntagFluidgridsEntityDocument, ReplaceFluidgridsEntityTagsDocument, CreateFluidgridsTagDocument, NodeSchemaIntrospectionDocument, useWorkflowPinnedDataQuery, usePinNodeDataMutation, useUnpinNodeDataMutation, useRunFromNodeEligibilityQuery, EventRegistrationsDocument, NodeUsageStatusDocument, RemoveNodeFromWorkflowsDocument } from './chunk-3P4YQ7DO.js';
14
14
  import { throwIfResultError, describeOperationError } from './chunk-LMO5ASOE.js';
15
15
  import { useTr, FluidGridsTranslationProvider, ENGLISH_FALLBACK_TRANSLATOR } from './chunk-7YWBH2A5.js';
@@ -2507,6 +2507,24 @@ function SchemaConnectionForm({
2507
2507
  )
2508
2508
  ] });
2509
2509
  }
2510
+
2511
+ // src/modules/connections/utils/connection-submit.ts
2512
+ function resolveConnectionSubmitFlow(provider, authMethodKey) {
2513
+ const methods = provider.authMethods ?? [];
2514
+ const method = methods.find((candidate) => candidate.key === authMethodKey) ?? methods.find((candidate) => candidate.isEnabled) ?? null;
2515
+ if (method) {
2516
+ const flow = method.flow.toUpperCase();
2517
+ if (flow === "OAUTH2" || flow === "MINTED") return flow;
2518
+ return "FIELDS";
2519
+ }
2520
+ return provider.authType === "OAUTH2" ? "OAUTH2" : "FIELDS";
2521
+ }
2522
+ function buildCreateConnectionConfig(flow, values) {
2523
+ if (flow !== "OAUTH2" || !values) return void 0;
2524
+ return Object.keys(values).length > 0 ? values : void 0;
2525
+ }
2526
+
2527
+ // src/modules/connections/hooks/useConnectionDialog.ts
2510
2528
  var GET_PROVIDER_BY_KEY = gql`
2511
2529
  query GetProviderByKey($key: String!) {
2512
2530
  getProviderByKey(key: $key) {
@@ -2733,6 +2751,11 @@ function useConnectionDialog(options) {
2733
2751
  setError(void 0);
2734
2752
  try {
2735
2753
  const client = getFluidGridsClient();
2754
+ const flow = resolveConnectionSubmitFlow(
2755
+ data.provider,
2756
+ data.authMethodKey
2757
+ );
2758
+ const config2 = buildCreateConnectionConfig(flow, data.values);
2736
2759
  const createResult = throwIfResultError(
2737
2760
  await client.mutate({
2738
2761
  mutation: CREATE_CONNECTION_FOR_DIALOG,
@@ -2741,11 +2764,13 @@ function useConnectionDialog(options) {
2741
2764
  name: data.name.trim(),
2742
2765
  description: data.description?.trim(),
2743
2766
  providerId: data.provider.id,
2744
- authMethodKey: data.authMethodKey ?? void 0
2745
- // Field values are NOT written to the plain connection.config
2746
- // column: a method's schema may collect secrets (a
2747
- // service-account key, an API token). They go only to
2748
- // authenticateConnection, which stores them encrypted.
2767
+ authMethodKey: data.authMethodKey ?? void 0,
2768
+ // Only an OAuth method's fields travel with the create: the
2769
+ // handshake reads a Custom OAuth 2.0 client ID from the
2770
+ // connection, and the backend moves the client secret into
2771
+ // its encrypted column. Every other method's values are
2772
+ // credentials and go only to authenticateConnection.
2773
+ ...config2 ? { config: config2 } : {}
2749
2774
  }
2750
2775
  }
2751
2776
  })
@@ -2754,12 +2779,6 @@ function useConnectionDialog(options) {
2754
2779
  if (!connection) {
2755
2780
  throw new Error("Failed to create connection");
2756
2781
  }
2757
- const method = (data.provider.authMethods ?? []).find(
2758
- (candidate) => candidate.key === data.authMethodKey
2759
- ) ?? (data.provider.authMethods ?? []).find(
2760
- (candidate) => candidate.isEnabled
2761
- ) ?? null;
2762
- const flow = method ? method.flow.toUpperCase() : data.provider.authType === "OAUTH2" ? "OAUTH2" : "FIELDS";
2763
2782
  switch (flow) {
2764
2783
  case "OAUTH2": {
2765
2784
  const oauthResult = throwIfResultError(
@@ -3694,6 +3713,7 @@ function useNodeExecution() {
3694
3713
  const pollTimerRef = useRef(null);
3695
3714
  const pollStartRef = useRef(0);
3696
3715
  const activeRunIdRef = useRef(null);
3716
+ const loadRequestRef = useRef(0);
3697
3717
  const workflow = useFlowStore((s) => s.workflow);
3698
3718
  const startExecution = useFlowStore(
3699
3719
  (s) => s.actions.execution.startExecution
@@ -3714,6 +3734,7 @@ function useNodeExecution() {
3714
3734
  const clearLogs = useFlowStore((s) => s.actions.execution.clearLogs);
3715
3735
  const loadDebugRun = useFlowStore((s) => s.actions.execution.loadDebugRun);
3716
3736
  const cleanup = useCallback(() => {
3737
+ loadRequestRef.current += 1;
3717
3738
  if (pollTimerRef.current) {
3718
3739
  clearTimeout(pollTimerRef.current);
3719
3740
  pollTimerRef.current = null;
@@ -3868,7 +3889,8 @@ function useNodeExecution() {
3868
3889
  setRunMetadata({
3869
3890
  runId,
3870
3891
  workflowKey: run.workflowKey,
3871
- version: run.version
3892
+ version: run.version,
3893
+ sourceMode: run.mode
3872
3894
  });
3873
3895
  if (run.nodeStates?.length) {
3874
3896
  processNodeStates(runId, run.nodeStates);
@@ -3926,7 +3948,8 @@ function useNodeExecution() {
3926
3948
  const backendRunId = stepResult.runId;
3927
3949
  startExecution(nodeId, backendRunId, {
3928
3950
  workflowKey: stepResult.workflowKey,
3929
- version: stepResult.version
3951
+ version: stepResult.version,
3952
+ sourceMode: "TEST"
3930
3953
  });
3931
3954
  setStepPlan({
3932
3955
  runId: backendRunId,
@@ -4037,7 +4060,8 @@ function useNodeExecution() {
4037
4060
  const backendRunId = triggerResult.runId;
4038
4061
  startExecution(triggerNode.id, backendRunId, {
4039
4062
  workflowKey: triggerResult.workflowKey,
4040
- version: triggerResult.version
4063
+ version: triggerResult.version,
4064
+ sourceMode: "TEST"
4041
4065
  });
4042
4066
  pollRunUpdates(backendRunId);
4043
4067
  return { success: true, runId: backendRunId };
@@ -4108,7 +4132,8 @@ function useNodeExecution() {
4108
4132
  const backendRunId = runFromNodeResult.runId;
4109
4133
  startExecution(nodeId, backendRunId, {
4110
4134
  workflowKey: runFromNodeResult.workflowKey,
4111
- version: runFromNodeResult.version
4135
+ version: runFromNodeResult.version,
4136
+ sourceMode: "TEST"
4112
4137
  });
4113
4138
  pollRunUpdates(backendRunId);
4114
4139
  return { success: true, runId: backendRunId };
@@ -4136,6 +4161,7 @@ function useNodeExecution() {
4136
4161
  const loadExecution = useCallback(
4137
4162
  async (runId) => {
4138
4163
  cleanup();
4164
+ const requestId = ++loadRequestRef.current;
4139
4165
  try {
4140
4166
  const client = getFluidGridsClient();
4141
4167
  const result = throwIfResultError(
@@ -4149,6 +4175,29 @@ function useNodeExecution() {
4149
4175
  if (!run) {
4150
4176
  return { success: false, error: "Execution not found" };
4151
4177
  }
4178
+ if (run.mode !== "TEST") {
4179
+ return {
4180
+ success: false,
4181
+ error: "Only TEST runs can be loaded for continuation."
4182
+ };
4183
+ }
4184
+ if (!TERMINAL_STATUSES.has(run.status)) {
4185
+ return {
4186
+ success: false,
4187
+ error: "Only terminal TEST runs can be loaded for continuation."
4188
+ };
4189
+ }
4190
+ if (requestId !== loadRequestRef.current) {
4191
+ return { success: false, error: "Execution load superseded." };
4192
+ }
4193
+ const currentWorkflow = useFlowStore.getState().workflow;
4194
+ const currentWorkflowKey = currentWorkflow.workflowKey || currentWorkflow.id;
4195
+ if (run.workflowKey !== currentWorkflowKey || run.version !== currentWorkflow.version) {
4196
+ return {
4197
+ success: false,
4198
+ error: "The selected run belongs to a different workflow version."
4199
+ };
4200
+ }
4152
4201
  const logs = (run.nodeStates ?? []).map((nodeState) => {
4153
4202
  const rawStatus = nodeState.status.toLowerCase();
4154
4203
  const status = rawStatus === "completed" ? "completed" : rawStatus === "failed" || rawStatus === "timeout" ? "failed" : rawStatus === "running" || rawStatus === "waiting" || rawStatus === "delayed" || rawStatus === "waiting_subworkflow" ? "running" : "pending";
@@ -4171,7 +4220,8 @@ function useNodeExecution() {
4171
4220
  });
4172
4221
  loadDebugRun(runId, logs, {
4173
4222
  workflowKey: run.workflowKey,
4174
- version: run.version
4223
+ version: run.version,
4224
+ sourceMode: run.mode
4175
4225
  });
4176
4226
  return { success: true, runId };
4177
4227
  } catch (error) {
@@ -13585,8 +13635,8 @@ var reducer = (state, action) => {
13585
13635
  if (toastId) {
13586
13636
  addToRemoveQueue(toastId);
13587
13637
  } else {
13588
- state.toasts.forEach((toast11) => {
13589
- addToRemoveQueue(toast11.id);
13638
+ state.toasts.forEach((toast12) => {
13639
+ addToRemoveQueue(toast12.id);
13590
13640
  });
13591
13641
  }
13592
13642
  return {
@@ -14989,7 +15039,7 @@ function VisualMapperContent({
14989
15039
  mapping,
14990
15040
  onMappingChange
14991
15041
  }) {
14992
- const { toast: toast11 } = useToast();
15042
+ const { toast: toast12 } = useToast();
14993
15043
  const tr = useTr();
14994
15044
  const reactFlowWrapper = useRef(null);
14995
15045
  const [selectedSourceNode, setSelectedSourceNode] = useState(null);
@@ -15009,7 +15059,7 @@ function VisualMapperContent({
15009
15059
  targetOperation
15010
15060
  );
15011
15061
  if (generatedNodes.length === 0) {
15012
- toast11({
15062
+ toast12({
15013
15063
  title: tr(
15014
15064
  "fluidgrids.builder.visualMapper.noFieldsFoundTitle",
15015
15065
  "No fields found"
@@ -15035,7 +15085,7 @@ function VisualMapperContent({
15035
15085
  targetNode,
15036
15086
  targetOperation,
15037
15087
  setNodes,
15038
- toast11,
15088
+ toast12,
15039
15089
  tr
15040
15090
  ]);
15041
15091
  useEffect(() => {
@@ -15142,7 +15192,7 @@ function VisualMapperContent({
15142
15192
  }
15143
15193
  onMappingChange(updatedMapping);
15144
15194
  if (isCompatible) {
15145
- toast11({
15195
+ toast12({
15146
15196
  title: tr(
15147
15197
  "fluidgrids.builder.visualMapper.mappingCreatedTitle",
15148
15198
  "Mapping created"
@@ -15150,7 +15200,7 @@ function VisualMapperContent({
15150
15200
  description: `Mapped ${sourcePath} (${sourceType}) to ${targetPath} (${targetType})`
15151
15201
  });
15152
15202
  } else {
15153
- toast11({
15203
+ toast12({
15154
15204
  title: tr(
15155
15205
  "fluidgrids.builder.visualMapper.typeMismatchTitle",
15156
15206
  "Type mismatch warning"
@@ -15160,7 +15210,7 @@ function VisualMapperContent({
15160
15210
  });
15161
15211
  }
15162
15212
  } else {
15163
- toast11({
15213
+ toast12({
15164
15214
  title: tr(
15165
15215
  "fluidgrids.builder.visualMapper.invalidMappingTitle",
15166
15216
  "Invalid mapping"
@@ -15173,7 +15223,7 @@ function VisualMapperContent({
15173
15223
  });
15174
15224
  }
15175
15225
  },
15176
- [nodes, mapping, onMappingChange, toast11, tr, setEdges]
15226
+ [nodes, mapping, onMappingChange, toast12, tr, setEdges]
15177
15227
  );
15178
15228
  const onEdgeDelete = useCallback(
15179
15229
  (edge) => {
@@ -15230,7 +15280,7 @@ function VisualMapperContent({
15230
15280
  const handleSaveMappingDialog = (expression, targetFieldName) => {
15231
15281
  const targetPath = targetFieldName || selectedTargetNode?.data?.path;
15232
15282
  if (!targetPath) {
15233
- toast11({
15283
+ toast12({
15234
15284
  title: tr(
15235
15285
  "fluidgrids.builder.visualMapper.noTargetFieldTitle",
15236
15286
  "No target field specified"
@@ -15262,7 +15312,7 @@ function VisualMapperContent({
15262
15312
  }
15263
15313
  onMappingChange(updatedMapping);
15264
15314
  const mappingType = detectMappingType(expression);
15265
- toast11({
15315
+ toast12({
15266
15316
  title: `${mappingType.charAt(0).toUpperCase() + mappingType.slice(1)} mapping created`,
15267
15317
  description: `${tr("fluidgrids.builder.visualMapper.appliedMappingTo", "Applied mapping to")} ${targetPath}`
15268
15318
  });
@@ -15561,7 +15611,7 @@ function MappingEditor({
15561
15611
  setEdges,
15562
15612
  edgeId
15563
15613
  }) {
15564
- const { toast: toast11 } = useToast();
15614
+ const { toast: toast12 } = useToast();
15565
15615
  const tr = useTr();
15566
15616
  const [mappingJson, setMappingJson] = useState({});
15567
15617
  const [jsonDataString, setJsonDataString] = useState(
@@ -15685,7 +15735,7 @@ function MappingEditor({
15685
15735
  const handleSaveMapping = () => {
15686
15736
  try {
15687
15737
  checkJsonValidity();
15688
- toast11({
15738
+ toast12({
15689
15739
  title: tr(
15690
15740
  "fluidgrids.builder.mappingEditor.mappingSavedTitle",
15691
15741
  "Mapping saved"
@@ -15696,7 +15746,7 @@ function MappingEditor({
15696
15746
  )
15697
15747
  });
15698
15748
  } catch (error) {
15699
- toast11({
15749
+ toast12({
15700
15750
  title: tr(
15701
15751
  "fluidgrids.builder.mappingEditor.errorSavingTitle",
15702
15752
  "Error saving mapping"
@@ -15715,7 +15765,7 @@ function MappingEditor({
15715
15765
  const parsedData = checkJsonValidity();
15716
15766
  const result = await applyMapping(parsedData, sampleInput);
15717
15767
  setPreviewOutput(result);
15718
- toast11({
15768
+ toast12({
15719
15769
  title: tr(
15720
15770
  "fluidgrids.builder.mappingEditor.mappingTestedTitle",
15721
15771
  "Mapping tested"
@@ -15727,7 +15777,7 @@ function MappingEditor({
15727
15777
  });
15728
15778
  } catch (error) {
15729
15779
  console.error("Test mapping error:", error);
15730
- toast11({
15780
+ toast12({
15731
15781
  title: tr(
15732
15782
  "fluidgrids.builder.mappingEditor.mappingTestFailedTitle",
15733
15783
  "Mapping test failed"
@@ -23927,7 +23977,8 @@ function sourceMetadata(input) {
23927
23977
  return {
23928
23978
  runId: source?.runId ?? input.sourceRunId ?? null,
23929
23979
  workflowKey: source?.workflowKey ?? input.sourceRunWorkflowKey ?? null,
23930
- version: source?.version ?? source?.workflowVersion ?? input.sourceRunVersion ?? null
23980
+ version: source?.version ?? source?.workflowVersion ?? input.sourceRunVersion ?? null,
23981
+ sourceMode: source?.sourceMode ?? null
23931
23982
  };
23932
23983
  }
23933
23984
  function getContinuationEligibility(input) {
@@ -23938,6 +23989,12 @@ function getContinuationEligibility(input) {
23938
23989
  "Load a completed or failed run before continuing from this node."
23939
23990
  );
23940
23991
  }
23992
+ if (source.sourceMode === "PRODUCTION") {
23993
+ return blocked(
23994
+ "production-source-run",
23995
+ "Production run output cannot be reused for TEST continuation."
23996
+ );
23997
+ }
23941
23998
  if (!source.workflowKey || !source.version || source.workflowKey !== input.workflowKey || source.version !== input.workflowVersion) {
23942
23999
  return blocked(
23943
24000
  "incompatible-source-run",
@@ -26552,6 +26609,55 @@ function IntegrationReturnHandler() {
26552
26609
  }, [getNodes, setNodes, zustandSetNodes]);
26553
26610
  return null;
26554
26611
  }
26612
+ function HistoricalRunLoader() {
26613
+ const loadRunId = new URLSearchParams(window.location.search).get("loadRun");
26614
+ const workflowKey = useFlowStore(
26615
+ (s) => s.workflow.workflowKey || s.workflow.id
26616
+ );
26617
+ const workflowVersion = useFlowStore((s) => s.workflow.version);
26618
+ const { loadExecution } = useNodeExecution();
26619
+ const tr = useTr();
26620
+ const requestedRunRef = useRef(null);
26621
+ const requestKey = loadRunId && workflowKey && workflowVersion ? `${workflowKey}:${workflowVersion}:${loadRunId}` : null;
26622
+ useEffect(() => {
26623
+ if (!requestKey || !loadRunId || requestedRunRef.current === requestKey) {
26624
+ return;
26625
+ }
26626
+ requestedRunRef.current = requestKey;
26627
+ let active = true;
26628
+ void loadExecution(loadRunId).then((result) => {
26629
+ if (!active) return;
26630
+ const params = new URLSearchParams(window.location.search);
26631
+ params.delete("loadRun");
26632
+ const search = params.toString();
26633
+ window.history.replaceState(
26634
+ null,
26635
+ "",
26636
+ `${window.location.pathname}${search ? `?${search}` : ""}${window.location.hash}`
26637
+ );
26638
+ if (result.success) {
26639
+ toast.success(
26640
+ tr(
26641
+ "fluidgrids.builder.historicalRunLoaded",
26642
+ "TEST run loaded in the builder"
26643
+ )
26644
+ );
26645
+ return;
26646
+ }
26647
+ requestedRunRef.current = null;
26648
+ toast.error(
26649
+ result.error ?? tr(
26650
+ "fluidgrids.builder.historicalRunLoadFailed",
26651
+ "Could not load the TEST run"
26652
+ )
26653
+ );
26654
+ });
26655
+ return () => {
26656
+ active = false;
26657
+ };
26658
+ }, [loadExecution, loadRunId, requestKey, tr]);
26659
+ return null;
26660
+ }
26555
26661
  var FlowBuilderPage = ({
26556
26662
  workflow,
26557
26663
  readOnly = false
@@ -26596,6 +26702,7 @@ var FlowBuilderPage = ({
26596
26702
  }
26597
26703
  return /* @__PURE__ */ jsxs(ReactFlowProvider, { children: [
26598
26704
  /* @__PURE__ */ jsx(IntegrationReturnHandler, {}),
26705
+ /* @__PURE__ */ jsx(HistoricalRunLoader, {}),
26599
26706
  /* @__PURE__ */ jsx("div", { className: "flex flex-col h-full", children: /* @__PURE__ */ jsxs("div", { className: "relative flex grow min-h-0 divide-x divide-card-foreground/10", children: [
26600
26707
  /* @__PURE__ */ jsx("div", { className: "grow min-w-0 bg-card md:bg-transparent", children: /* @__PURE__ */ jsx(FlowBuilder, { readOnly: isReadOnly }) }),
26601
26708
  !isReadOnly && /* @__PURE__ */ jsx(SidebarModule, {})
@@ -26604,5 +26711,5 @@ var FlowBuilderPage = ({
26604
26711
  };
26605
26712
 
26606
26713
  export { Card2 as Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, ConnectionFormDialog, ConnectionSelector, EntityTagPicker, FLUIDGRIDS_ENTITY_TYPES, FlowBuilderPage, FluidGridsMark, FluidGridsProvider, ProviderPicker, SchemaConnectionForm, ScopePicker, TemplateCard, buildNodeCheck, buildRequiredNodeTypes, listCustomBlocks, mergeStickyNotes, refetchStoreNodes, registerCustomBlock, resolveUiSpec, stripSubmitActions, tagLabel, useAvailableTags, useConnection, useConnectionDialog, useConnections, useConnectionsByProvider, useCreateConnection, useCreateTag, useDraftEntityTags, useEntityTags, useFluidGridsContext, useImportWorkflowTemplate, useInitiateOAuth, useInstalledNodes, useNodeExecution, useProviderByKey, useProviderCatalog, useProviders, useReplaceEntityTags, useSearchTags, useTagEntity, useUntagEntity, useWorkflowTemplates };
26607
- //# sourceMappingURL=chunk-GBXVY4MJ.js.map
26608
- //# sourceMappingURL=chunk-GBXVY4MJ.js.map
26714
+ //# sourceMappingURL=chunk-QM4C7YDK.js.map
26715
+ //# sourceMappingURL=chunk-QM4C7YDK.js.map