@burdenoff/fluidgrids-fe-sdk 2026.1110.7 → 2026.1110.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 (46) hide show
  1. package/dist/{ExecutionDetailPage-2QOZ452U.js → ExecutionDetailPage-DPQYCXYL.js} +8 -8
  2. package/dist/{ExecutionsListPage-FN5HPHB3.js → ExecutionsListPage-GIXIQCKS.js} +7 -7
  3. package/dist/{WorkflowBuilder-AOWQJ6OS.js → WorkflowBuilder-O7BG3OZH.js} +15 -15
  4. package/dist/{WorkflowsList-CBMAAP2H.js → WorkflowsList-UKU5SHBF.js} +7 -7
  5. package/dist/{agentTools-KO3YDCWV.js → agentTools-US6ZBONP.js} +23 -11
  6. package/dist/{chunk-RVRLVDZA.js → chunk-3RMVIIUN.js} +2 -2
  7. package/dist/{chunk-3WNMZOVH.js → chunk-4FPY66GH.js} +1 -1
  8. package/dist/{chunk-TOCD4SVA.js → chunk-4SFXPCKB.js} +5 -5
  9. package/dist/{chunk-NK7IQUZF.js → chunk-5GICFNVU.js} +1 -1
  10. package/dist/{chunk-GC73RBYI.js → chunk-6GK3X4YE.js} +4 -4
  11. package/dist/{chunk-ED3DCUU5.js → chunk-CVJRBGHF.js} +4 -4
  12. package/dist/{chunk-MWZFI4ZK.js → chunk-E37E4P5Q.js} +4 -4
  13. package/dist/{chunk-VVJRZM6D.js → chunk-EXMAQWH6.js} +8 -8
  14. package/dist/{chunk-LLGTTPON.js → chunk-FR6SZHOQ.js} +2 -2
  15. package/dist/{chunk-CKF2FBUP.js → chunk-GMZ36ZHP.js} +1 -1
  16. package/dist/{chunk-LSRF7JLO.js → chunk-IQUXD27L.js} +3 -10
  17. package/dist/{chunk-HONN7S5R.js → chunk-JMSDDGJM.js} +4 -4
  18. package/dist/{chunk-QUYK5PAZ.js → chunk-L47FFMXI.js} +1 -1
  19. package/dist/{chunk-X7LWPPVE.js → chunk-LU34NXNS.js} +46 -24
  20. package/dist/{chunk-K2X63CR2.js → chunk-MIXWHINW.js} +29 -5
  21. package/dist/{chunk-W5ZTQQUI.js → chunk-OEORKTQA.js} +1 -1
  22. package/dist/{chunk-XSTTM74F.js → chunk-OIDIN7LW.js} +1 -1
  23. package/dist/{chunk-SL2EDFAT.js → chunk-PRI7PSHD.js} +1 -1
  24. package/dist/{chunk-JGHDGMYV.js → chunk-QLGJM6B2.js} +1 -1
  25. package/dist/{chunk-SUHVKRZU.js → chunk-QUOT5SA6.js} +2 -2
  26. package/dist/{chunk-IK7BHEVM.js → chunk-T22DQT6G.js} +53 -25
  27. package/dist/{chunk-XM3IMHA7.js → chunk-UDK3ALPT.js} +4 -4
  28. package/dist/{chunk-CVTQYGJD.js → chunk-UTNEZ3SO.js} +283 -21
  29. package/dist/{chunk-JNSHR2J2.js → chunk-VUGDTU5V.js} +1 -1
  30. package/dist/{chunk-R4HR4GZK.js → chunk-XDH274I5.js} +5 -5
  31. package/dist/{chunk-PHJBQCQS.js → chunk-Y5F3YUDT.js} +1 -1
  32. package/dist/{chunk-7LMZZJQM.js → chunk-ZRSMHOK3.js} +1 -1
  33. package/dist/executions.js +9 -9
  34. package/dist/{global-operations-KADPYCYT.js → global-operations-RHGX2BNA.js} +1 -1
  35. package/dist/history.js +7 -7
  36. package/dist/index.js +39 -39
  37. package/dist/{node-detail-view-3M2UBEWP.js → node-detail-view-XEICWB73.js} +8 -8
  38. package/dist/observability.js +5 -5
  39. package/dist/{quick-config-panel-MKCY2UG3.js → quick-config-panel-6FQOMYPQ.js} +7 -7
  40. package/dist/settings.js +6 -6
  41. package/dist/templates.js +15 -15
  42. package/dist/workflow-builder.js +16 -16
  43. package/dist/workflow-preview.d.ts +1 -0
  44. package/dist/workflow-preview.js +8 -4
  45. package/dist/workflows-list.js +7 -7
  46. package/package.json +1 -1
@@ -1,13 +1,13 @@
1
1
  import { useBuilderReadOnly } from './chunk-SDZEAIIE.js';
2
- import { STICKY_NOTE_TYPE, useFlowStore, resolveStickyColor, STICKY_COLORS, stickySurfaceStyle, resolveOperationName, synchronizeOperationUpdate, isNodeTrigger, resolveOutputHandles, resolveInputHandles, outputHandlesSpacerHeight, WAIT_FOR_SIGNAL_NODE_TYPE, CODE_WORKFLOW_NODE_TYPE, readSignalName, LogicNodeCard, NodeCard, NodeCardHeader, NodeCardBody, InputHandles, OutputHandles, NodeTypeIcon, nodeAccent, readCodeWorkflowState, interfaceFields, interfaceHandlers, partitionStickyNotes, DEFAULT_STICKY_COLOR } from './chunk-K2X63CR2.js';
2
+ import { STICKY_NOTE_TYPE, useFlowStore, resolveStickyColor, STICKY_COLORS, stickySurfaceStyle, nodeAdaptersOf, resolveOperationName, synchronizeOperationUpdate, isNodeTrigger, resolveOutputHandles, resolveInputHandles, outputHandlesSpacerHeight, WAIT_FOR_SIGNAL_NODE_TYPE, CODE_WORKFLOW_NODE_TYPE, readSignalName, LogicNodeCard, NodeCard, NodeCardHeader, NodeCardBody, InputHandles, OutputHandles, hasNodeManifest, NodeTypeIcon, nodeAccent, readCodeWorkflowState, interfaceFields, interfaceHandlers, partitionStickyNotes, DEFAULT_STICKY_COLOR } from './chunk-MIXWHINW.js';
3
3
  import { getGlobalStoreClient, createGlobalStoreClient, setGlobalStoreClient, resetGlobalStoreClient } from './chunk-TYI2XOSI.js';
4
- import { GetMyNodeInstallationsDocument } from './chunk-3WNMZOVH.js';
4
+ import { GetMyNodeInstallationsDocument } from './chunk-4FPY66GH.js';
5
5
  import { fetchAllNodeEndpointConfigs, NodeManifestDocument, ExecuteStepDocument, TriggerWorkflowDocument, RunFromNodeDocument, ExecutionDetailDocument, WorkflowRunDocument, UpdateWorkflowDefinitionDocument, CreateWorkflowDefinitionDocument, CreateWorkflowVersionDocument, WorkflowDefinitionDocument } from './chunk-UDS2FA24.js';
6
6
  import { useTr, ENGLISH_FALLBACK_TRANSLATOR, FluidGridsTranslationProvider } from './chunk-UULVIT25.js';
7
7
  import { waitForFluidGridsClient, getFluidGridsClient, getFluidGridsClientSafe, createFluidGridsClient, setFluidGridsClient, resetFluidGridsClient } from './chunk-PDODDDHY.js';
8
8
  import { throwIfResultError, describeOperationError, emitFluidGridsEvent, emitOperationErrorEvent, emitRunCompletedOnce } from './chunk-JKLZ6YZ3.js';
9
9
  import { getFluidGridsConfig, validateTrustedOrigin, resetFluidGridsExecutionState, resetFluidGridsConfig, setFluidGridsConfig } from './chunk-UEG2WC3G.js';
10
- import { memo, createContext, useState, useRef, useEffect, useCallback, useMemo, useContext, useSyncExternalStore } from 'react';
10
+ import { memo, createContext, useState, useRef, useEffect, useCallback, useMemo, useSyncExternalStore, useContext } from 'react';
11
11
  import { useOptionalFeatureFlags } from '@burdenoff/fe-libs/shared/feature-flags';
12
12
  import { dispatchUpgradePrompt } from '@burdenoff/fe-libs/shared/components';
13
13
  import { nanoid as nanoid$1 } from 'nanoid/non-secure';
@@ -1356,6 +1356,24 @@ function runControlNodeSubtitle(tr, nodeType, state) {
1356
1356
  return readSearchAttributesSummary(state);
1357
1357
  return void 0;
1358
1358
  }
1359
+ function useNodeRegistryRevision() {
1360
+ return useSyncExternalStore(
1361
+ onNodeTypesUpdate,
1362
+ getNodeRegistryRevision,
1363
+ getNodeRegistryRevision
1364
+ );
1365
+ }
1366
+
1367
+ // src/builder/hooks/use-bare-node-registry.ts
1368
+ function useNodeConnections(nodeType, nodeData) {
1369
+ const registryRevision = useNodeRegistryRevision();
1370
+ const registryManifest = hasNodeManifest(nodeData) ? void 0 : registryNodeData(nodeType);
1371
+ return {
1372
+ registryManifest,
1373
+ adapters: nodeAdaptersOf(nodeData, registryManifest),
1374
+ registryRevision
1375
+ };
1376
+ }
1359
1377
  function InfoRow({ label, value }) {
1360
1378
  if (!value) return null;
1361
1379
  return /* @__PURE__ */ jsxs("div", { className: "flex gap-2 text-sm", children: [
@@ -4368,6 +4386,7 @@ function SubNodeComponent({
4368
4386
  nodeType
4369
4387
  }) {
4370
4388
  const meta = useMemo(() => getNodeDetail(nodeType), [nodeType]);
4389
+ const connections = useNodeConnections(nodeType, data?.nodeData);
4371
4390
  const deleteNode = useDeleteNode();
4372
4391
  const readOnly = useBuilderReadOnly();
4373
4392
  const [showNodePropertiesOf] = useFlowStore(
@@ -4423,7 +4442,7 @@ function SubNodeComponent({
4423
4442
  children: "\xD7"
4424
4443
  }
4425
4444
  ),
4426
- /* @__PURE__ */ jsx(AdapterConnectors, { nodeId: id, adapters: data?.nodeData?.nodeAdapters })
4445
+ /* @__PURE__ */ jsx(AdapterConnectors, { nodeId: id, adapters: connections.adapters })
4427
4446
  ] })
4428
4447
  );
4429
4448
  }
@@ -4432,6 +4451,11 @@ var getNodeMetadata = (value) => {
4432
4451
  function NodeComponent(props) {
4433
4452
  const { id, isConnectable, selected, data, dragging } = props;
4434
4453
  const tr = useTr();
4454
+ const connections = useNodeConnections(
4455
+ value?.type,
4456
+ data?.nodeData
4457
+ );
4458
+ const { registryManifest, registryRevision } = connections;
4435
4459
  const docsUrl = useNodeDocsUrl(
4436
4460
  value?.type,
4437
4461
  data?.nodeData?.version || data?.version
@@ -4448,8 +4472,11 @@ var getNodeMetadata = (value) => {
4448
4472
  const sourceNode = nodeLookup.get(edge.source);
4449
4473
  if (!sourceNode) continue;
4450
4474
  const sourceNodeData = sourceNode.data;
4451
- const sourceAdapters = sourceNodeData?.nodeData?.nodeAdapters;
4452
- if (sourceAdapters && Array.isArray(sourceAdapters)) {
4475
+ const sourceAdapters = nodeAdaptersOf(
4476
+ sourceNodeData?.nodeData,
4477
+ registryNodeData(sourceNode.type)
4478
+ );
4479
+ if (sourceAdapters) {
4453
4480
  const adapterNames = sourceAdapters.map((a) => a.name);
4454
4481
  if (adapterNames.includes(edge.sourceHandle)) {
4455
4482
  return true;
@@ -4457,7 +4484,7 @@ var getNodeMetadata = (value) => {
4457
4484
  }
4458
4485
  }
4459
4486
  return false;
4460
- }, [data?.isAdapterInstance, edges, id, nodeLookup]);
4487
+ }, [data?.isAdapterInstance, edges, id, nodeLookup, registryRevision]);
4461
4488
  const nodeType = value?.type;
4462
4489
  const meta = useMemo(() => getNodeDetail(nodeType), [nodeType]);
4463
4490
  const durableEnabled = useDurableFunctionNodesEnabled();
@@ -4637,10 +4664,12 @@ var getNodeMetadata = (value) => {
4637
4664
  );
4638
4665
  const outputHandles = resolveOutputHandles(
4639
4666
  data,
4640
- value?.type
4667
+ value?.type,
4668
+ registryManifest
4641
4669
  );
4642
4670
  const inputHandles = resolveInputHandles(
4643
- data
4671
+ data,
4672
+ registryManifest
4644
4673
  );
4645
4674
  const handleSpacer = outputHandlesSpacerHeight(
4646
4675
  Math.max(outputHandles.length, inputHandles.length)
@@ -4690,13 +4719,7 @@ var getNodeMetadata = (value) => {
4690
4719
  onCancelRename: handleCancelRename
4691
4720
  }
4692
4721
  ),
4693
- /* @__PURE__ */ jsx(
4694
- AdapterConnectors,
4695
- {
4696
- nodeId: id,
4697
- adapters: data?.nodeData?.nodeAdapters
4698
- }
4699
- ),
4722
+ /* @__PURE__ */ jsx(AdapterConnectors, { nodeId: id, adapters: connections.adapters }),
4700
4723
  stepGuard.dialog
4701
4724
  ] });
4702
4725
  }
@@ -4770,13 +4793,7 @@ var getNodeMetadata = (value) => {
4770
4793
  }
4771
4794
  ),
4772
4795
  stepGuard.dialog,
4773
- /* @__PURE__ */ jsx(
4774
- AdapterConnectors,
4775
- {
4776
- nodeId: id,
4777
- adapters: data?.nodeData?.nodeAdapters
4778
- }
4779
- )
4796
+ /* @__PURE__ */ jsx(AdapterConnectors, { nodeId: id, adapters: connections.adapters })
4780
4797
  ] });
4781
4798
  }
4782
4799
  return {
@@ -5011,6 +5028,11 @@ function liveInternalOperations(type) {
5011
5028
  const operations = NODE_CONFIGS.find((c) => c.type === type)?.operations;
5012
5029
  return Array.isArray(operations) && operations.length > 0 ? operations : void 0;
5013
5030
  }
5031
+ function registryNodeData(type) {
5032
+ if (!type) return void 0;
5033
+ const manifest = NODE_CONFIGS.find((c) => c.type === type)?.defaultData?.nodeData;
5034
+ return manifest ? manifest : void 0;
5035
+ }
5014
5036
  function ensureNodeConfigsLoaded() {
5015
5037
  if (isInitialized) {
5016
5038
  return Promise.resolve();
@@ -5119,4 +5141,4 @@ function createNodeWithDefaultData(type, data) {
5119
5141
  return Object.assign(createNodeData(type, defaultData), data);
5120
5142
  }
5121
5143
 
5122
- export { AUTOSAVE_DEBOUNCE_MS, AUTOSAVE_RETRY_DELAYS_MS, AVAILABLE_NODES, BILLING_PLANS_PATH, DURABLE_FUNCTION_NODE_TYPES, EDIT_SESSION_ID, FLUIDGRIDS_FLAGS, FLUIDGRIDS_FLAG_DEFAULTS, FluidGridsContext, FluidGridsProvider, NODES_METADATA, NODE_CONFIGS, NODE_TYPES, PHASE_C_FLAGS_OFF, RUNS_QUOTA_NAME, RUN_CONTROL_NODE_TYPES, WORKFLOWS_QUOTA_NAME, WORKFLOW_TEST_NODE_TYPES, autosaveAllowedFor, bannerOf, blankWorkflowCreateInput, buildOperationSeed, buildStickyNode, builderPathOf, canAutosave, canSignalRun, classifyCreateRefusal, clearCodeWorkflowDefinitionCache, codeBuildIdOf, connectionsForAdapter, createConfiguredNode, createThenOpen, declaredOutputFields, declaredSignals, departingSave, durableInterfaceOf, editStateFor, editingLeaseLocked, emitNodeInstalled, emitRunFailed, emitRunLimitHit, emitRunStarted, emitTemplateUsed, emitUpgradeClicked, emitWorkflowCreated, emitWorkflowLimitHit, emitWorkflowPublished, ensureNodeConfigsLoaded, fieldsFromIO, fieldsFromValue, filterPaletteNodes, findQuotaRefusal, findSaveConflict, forgetSessionForReload, formatElapsedMs, formatParameterValue, getNodeDetail, getNodeMetadata, getNodeRegistryRevision, inAppLeaveTarget, isDurableFunctionNodeType, isFlowComplete, isLocked, isNodeConfigsInitialized, isNodeTypeHiddenFromPalette, isOptionalAdapter, isParamVisible, isQuotaExhaustedFailure, isRunControlNodeType, leaseCallQueue, leavingLosesChanges, liveInternalOperations, loadDefinitionJson, matchesAdapterProvider, newConnectionProviderKey, nodeStateDurationMs, nodesOf, onNodeTypesUpdate, openRunQuotaUpgradePrompt, parseParameterValue, parseRawSignalPayload, pathToExpression, payloadFromCardValues, phaseAfterAcquire, phaseAfterTakeOver, readDisplayOptions, refetchStoreNodes, refusalOfQuota, registerWorkflowNodeTypes, releasesOnClose, rememberOwnStatusChange, rememberRevision, rememberSessionForReload, replaceAdapterConnections, resolveFluidGridsFlagsSettled, resolveNodeOperation, resolvePhaseCFlags, runDurationMs, runSignalTargets, runTriggerFromMode, saveFailureActionOf, saveIndicatorOf, savedEverythingBeforeLeaving, sessionBeforeReload, shouldReleaseForIdle, signalPayloadCard, structuredParameterType, subscribeWorkflowSaved, tickAction, touchesSavedFields, useCodeWorkflowInterface, useContinuousOptimisationEnabled, useDurableFunctionNodesEnabled, useDurableParityEnabled, useEditLeaseLocked, useEditLeaseStore, useFlowValidator, useFluidGridsAnalytics, useFluidGridsContext, useFluidGridsFlag, useFluidGridsFlagsSettled, useGuardedNavigate, useInsertNode, useManualSave, useNodeExecution, usePaletteGates, usePhaseCFlags, useRunGuard, useSaveStatusStore, useSaveWorkflow, useSelfHostedWorkersEnabled, useWorkflowTestsEnabled, watchLeavingLosesChanges, workflowFingerprint };
5144
+ export { AUTOSAVE_DEBOUNCE_MS, AUTOSAVE_RETRY_DELAYS_MS, AVAILABLE_NODES, BILLING_PLANS_PATH, DURABLE_FUNCTION_NODE_TYPES, EDIT_SESSION_ID, FLUIDGRIDS_FLAGS, FLUIDGRIDS_FLAG_DEFAULTS, FluidGridsContext, FluidGridsProvider, NODES_METADATA, NODE_CONFIGS, NODE_TYPES, PHASE_C_FLAGS_OFF, RUNS_QUOTA_NAME, RUN_CONTROL_NODE_TYPES, WORKFLOWS_QUOTA_NAME, WORKFLOW_TEST_NODE_TYPES, autosaveAllowedFor, bannerOf, blankWorkflowCreateInput, buildOperationSeed, buildStickyNode, builderPathOf, canAutosave, canSignalRun, classifyCreateRefusal, clearCodeWorkflowDefinitionCache, codeBuildIdOf, connectionsForAdapter, createConfiguredNode, createThenOpen, declaredOutputFields, declaredSignals, departingSave, durableInterfaceOf, editStateFor, editingLeaseLocked, emitNodeInstalled, emitRunFailed, emitRunLimitHit, emitRunStarted, emitTemplateUsed, emitUpgradeClicked, emitWorkflowCreated, emitWorkflowLimitHit, emitWorkflowPublished, ensureNodeConfigsLoaded, fieldsFromIO, fieldsFromValue, filterPaletteNodes, findQuotaRefusal, findSaveConflict, forgetSessionForReload, formatElapsedMs, formatParameterValue, getNodeDetail, getNodeMetadata, inAppLeaveTarget, isDurableFunctionNodeType, isFlowComplete, isLocked, isNodeConfigsInitialized, isNodeTypeHiddenFromPalette, isOptionalAdapter, isParamVisible, isQuotaExhaustedFailure, isRunControlNodeType, leaseCallQueue, leavingLosesChanges, liveInternalOperations, loadDefinitionJson, matchesAdapterProvider, newConnectionProviderKey, nodeStateDurationMs, nodesOf, onNodeTypesUpdate, openRunQuotaUpgradePrompt, parseParameterValue, parseRawSignalPayload, pathToExpression, payloadFromCardValues, phaseAfterAcquire, phaseAfterTakeOver, readDisplayOptions, refetchStoreNodes, refusalOfQuota, registerWorkflowNodeTypes, registryNodeData, releasesOnClose, rememberOwnStatusChange, rememberRevision, rememberSessionForReload, replaceAdapterConnections, resolveFluidGridsFlagsSettled, resolveNodeOperation, resolvePhaseCFlags, runDurationMs, runSignalTargets, runTriggerFromMode, saveFailureActionOf, saveIndicatorOf, savedEverythingBeforeLeaving, sessionBeforeReload, shouldReleaseForIdle, signalPayloadCard, structuredParameterType, subscribeWorkflowSaved, tickAction, touchesSavedFields, useCodeWorkflowInterface, useContinuousOptimisationEnabled, useDurableFunctionNodesEnabled, useDurableParityEnabled, useEditLeaseLocked, useEditLeaseStore, useFlowValidator, useFluidGridsAnalytics, useFluidGridsContext, useFluidGridsFlag, useFluidGridsFlagsSettled, useGuardedNavigate, useInsertNode, useManualSave, useNodeExecution, useNodeRegistryRevision, usePaletteGates, usePhaseCFlags, useRunGuard, useSaveStatusStore, useSaveWorkflow, useSelfHostedWorkersEnabled, useWorkflowTestsEnabled, watchLeavingLosesChanges, workflowFingerprint };
@@ -1336,6 +1336,30 @@ NodeCardBody.displayName = "NodeCardBody";
1336
1336
  function isDynamicSpec(spec) {
1337
1337
  return !!spec && !Array.isArray(spec) && typeof spec.fromStateRecord === "string";
1338
1338
  }
1339
+ function hasNodeManifest(nodeData) {
1340
+ if (typeof nodeData !== "object" || nodeData === null) return false;
1341
+ const manifest = nodeData;
1342
+ return [
1343
+ "operations",
1344
+ "outputHandles",
1345
+ "inputHandles",
1346
+ "nodeAdapters",
1347
+ "name"
1348
+ ].some((key) => manifest[key] !== void 0 && manifest[key] !== null);
1349
+ }
1350
+ function handleManifestOf(data, registryNodeData) {
1351
+ const own = data?.nodeData;
1352
+ if (hasNodeManifest(own)) return own;
1353
+ return registryNodeData ?? own;
1354
+ }
1355
+ function nodeAdaptersOf(nodeData, registryNodeData) {
1356
+ const manifest = handleManifestOf(
1357
+ { nodeData },
1358
+ registryNodeData
1359
+ );
1360
+ const adapters = manifest?.nodeAdapters;
1361
+ return Array.isArray(adapters) ? adapters : void 0;
1362
+ }
1339
1363
  var DEFAULT_HANDLES = [{ id: "source", label: "" }];
1340
1364
  var BUILTIN_OUTPUT_HANDLES = {
1341
1365
  "internal:wait-for-signal": [
@@ -1343,8 +1367,8 @@ var BUILTIN_OUTPUT_HANDLES = {
1343
1367
  { id: "timedOut", label: "Timed out", tone: "warning" }
1344
1368
  ]
1345
1369
  };
1346
- function resolveOutputHandles(data, nodeType) {
1347
- const nodeData = data?.nodeData;
1370
+ function resolveOutputHandles(data, nodeType, registryNodeData) {
1371
+ const nodeData = handleManifestOf(data, registryNodeData);
1348
1372
  const operationsBlob = Array.isArray(nodeData?.operations) ? void 0 : nodeData?.operations;
1349
1373
  const operationList = Array.isArray(nodeData?.operations) ? nodeData.operations : operationsBlob?.operations ?? [];
1350
1374
  const operationName = typeof data?.operation_name === "string" ? data.operation_name : void 0;
@@ -1362,8 +1386,8 @@ function resolveOutputHandles(data, nodeType) {
1362
1386
  return spec;
1363
1387
  }
1364
1388
  var DEFAULT_INPUT_HANDLES = [{ id: "target", label: "" }];
1365
- function resolveInputHandles(data) {
1366
- const nodeData = data?.nodeData;
1389
+ function resolveInputHandles(data, registryNodeData) {
1390
+ const nodeData = handleManifestOf(data, registryNodeData);
1367
1391
  const spec = nodeData?.inputHandles ?? nodeData?.operations?.inputHandles;
1368
1392
  if (!Array.isArray(spec) || spec.length === 0) return DEFAULT_INPUT_HANDLES;
1369
1393
  return spec;
@@ -1953,4 +1977,4 @@ function LogicNodeCard({
1953
1977
  );
1954
1978
  }
1955
1979
 
1956
- export { CODE_WORKFLOW_NODE_TYPE, DEFAULT_STICKY_COLOR, InputHandles, LogicNodeCard, NODE_OPERATION_DRAG_DATA_FORMAT, NODE_TYPE_DRAG_DATA_FORMAT, NodeCard, NodeCardBody, NodeCardHeader, NodeTypeIcon, OutputHandles, STICKY_COLORS, STICKY_NOTE_TYPE, WAIT_FOR_SIGNAL_NODE_TYPE, changedSourceFiles, childRunIdOf, defaultSourcePath, diagnosticsByPath, interfaceFields, interfaceHandlers, isEditableSourcePath, isImageIcon, isNodeTrigger, isTriggerOperation, mergeStickyNotes, nodeAccent, outputHandlesSpacerHeight, partitionStickyNotes, projectLanguage, readCodeWorkflowState, readSignalName, resolveInputHandles, resolveOperationName, resolveOutputHandles, resolveStickyColor, sourceLanguageOf, stickySurfaceStyle, synchronizeOperationUpdate, useFlowStore, useIsValidConnection };
1980
+ export { CODE_WORKFLOW_NODE_TYPE, DEFAULT_STICKY_COLOR, InputHandles, LogicNodeCard, NODE_OPERATION_DRAG_DATA_FORMAT, NODE_TYPE_DRAG_DATA_FORMAT, NodeCard, NodeCardBody, NodeCardHeader, NodeTypeIcon, OutputHandles, STICKY_COLORS, STICKY_NOTE_TYPE, WAIT_FOR_SIGNAL_NODE_TYPE, changedSourceFiles, childRunIdOf, defaultSourcePath, diagnosticsByPath, hasNodeManifest, interfaceFields, interfaceHandlers, isEditableSourcePath, isImageIcon, isNodeTrigger, isTriggerOperation, mergeStickyNotes, nodeAccent, nodeAdaptersOf, outputHandlesSpacerHeight, partitionStickyNotes, projectLanguage, readCodeWorkflowState, readSignalName, resolveInputHandles, resolveOperationName, resolveOutputHandles, resolveStickyColor, sourceLanguageOf, stickySurfaceStyle, synchronizeOperationUpdate, useFlowStore, useIsValidConnection };
@@ -1,4 +1,4 @@
1
- import { signalPayloadCard, payloadFromCardValues, parseRawSignalPayload } from './chunk-X7LWPPVE.js';
1
+ import { signalPayloadCard, payloadFromCardValues, parseRawSignalPayload } from './chunk-LU34NXNS.js';
2
2
  import { TerminateWorkflowRunDocument, WorkflowRunHistoryDocument, RunEventAppendedDocument, DurableRunFieldsDocument, WorkflowRunDeterminismStatusDocument, WorkflowRunStackTraceDocument, SignalWorkflowRunDocument } from './chunk-UDS2FA24.js';
3
3
  import { useTr } from './chunk-UULVIT25.js';
4
4
  import { getFluidGridsClient, getFluidGridsClientSafe } from './chunk-PDODDDHY.js';
@@ -1,4 +1,4 @@
1
- import { canvasFromDefinition } from './chunk-CKF2FBUP.js';
1
+ import { canvasFromDefinition } from './chunk-GMZ36ZHP.js';
2
2
  import { WorkflowDefinitionDocument, WorkflowVersionDiffDocument } from './chunk-UDS2FA24.js';
3
3
  import { useTr } from './chunk-UULVIT25.js';
4
4
  import { getFluidGridsClient } from './chunk-PDODDDHY.js';
@@ -1,6 +1,6 @@
1
1
  import { emptyAgentForm, agentToForm, describeRule, formToInput, AgentFormError, DEFAULT_GRANT_DAYS, MAX_GRANT_DAYS, grantDays } from './chunk-VXVLQ3LX.js';
2
2
  import { SdkPermissionGate, FLUIDGRIDS_PERMISSIONS } from './chunk-ERT444RG.js';
3
- import { replaceAdapterConnections, connectionsForAdapter, matchesAdapterProvider, newConnectionProviderKey, isOptionalAdapter } from './chunk-X7LWPPVE.js';
3
+ import { replaceAdapterConnections, connectionsForAdapter, matchesAdapterProvider, newConnectionProviderKey, isOptionalAdapter } from './chunk-LU34NXNS.js';
4
4
  import { useTr } from './chunk-UULVIT25.js';
5
5
  import { getFluidGridsClient } from './chunk-PDODDDHY.js';
6
6
  import { throwIfResultError, describeOperationError } from './chunk-JKLZ6YZ3.js';
@@ -1,5 +1,5 @@
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 { useFluidGridsAnalytics, emitRunStarted, openRunQuotaUpgradePrompt, useFluidGridsFlag, FLUIDGRIDS_FLAGS } from './chunk-X7LWPPVE.js';
2
+ import { useFluidGridsAnalytics, emitRunStarted, openRunQuotaUpgradePrompt, useFluidGridsFlag, FLUIDGRIDS_FLAGS } from './chunk-LU34NXNS.js';
3
3
  import { useTr } from './chunk-UULVIT25.js';
4
4
  import { getFluidGridsClient } from './chunk-PDODDDHY.js';
5
5
  import { throwIfResultError, describeOperationError, emitFluidGridsEvent } from './chunk-JKLZ6YZ3.js';
@@ -1,9 +1,9 @@
1
1
  import { FailureTriagePanel } from './chunk-GA3DS2ZJ.js';
2
2
  import { aiSpendPeriod, AI_SPEND_RANGE_DAYS, evidenceFacts, monthlySavingLabel, evidenceWindowDays, shortRunId, DISMISS_REASONS, MAX_DISMISS_NOTE_LENGTH, aiCost, formatTokens, runsOfWorkflowPath } from './chunk-NZAYYUQ4.js';
3
- import { useDataSinks, useDataSinkData, useInsightsData, useRunReplayActions } from './chunk-JGHDGMYV.js';
3
+ import { useDataSinks, useDataSinkData, useInsightsData, useRunReplayActions } from './chunk-QLGJM6B2.js';
4
4
  import { proposalCanvasPath } from './chunk-GLYINMOR.js';
5
5
  import { useFluidGridsPermission, FLUIDGRIDS_PERMISSIONS, SdkPermissionButton } from './chunk-ERT444RG.js';
6
- import { useContinuousOptimisationEnabled } from './chunk-X7LWPPVE.js';
6
+ import { useContinuousOptimisationEnabled } from './chunk-LU34NXNS.js';
7
7
  import { SetContinuousOptimisationEnabledDocument, FgRunOptimisationScanDocument, ProposeOptimisationDocument, WorkflowProposalDocument, DismissOptimisationSuggestionDocument, SnoozeOptimisationSuggestionDocument, WorkspaceAiUsageDocument, OptimisationSuggestionsDocument, ContinuousOptimisationSettingsDocument } from './chunk-UDS2FA24.js';
8
8
  import { useTr } from './chunk-UULVIT25.js';
9
9
  import { getFluidGridsClient } from './chunk-PDODDDHY.js';
@@ -1,30 +1,30 @@
1
- import { computeAttachPosition, firstInputHandleId } from './chunk-JNSHR2J2.js';
1
+ import { computeAttachPosition, firstInputHandleId } from './chunk-VUGDTU5V.js';
2
2
  import { deepClone, applyTemplateInputs } from './chunk-GEMNVFPK.js';
3
3
  import { templatePreview } from './chunk-B6CCE2RW.js';
4
4
  import { Input } from './chunk-IEVSFCFS.js';
5
5
  import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter as DialogFooter$1 } from './chunk-YXMFRQYV.js';
6
6
  import { Badge as Badge$1 } from './chunk-TFCIZFDM.js';
7
- import { LogsPanel } from './chunk-QUYK5PAZ.js';
8
- import { useNodeEditorTab, NodeEditorTabs, NodeInputFields, NodeEditorTabBody } from './chunk-MWZFI4ZK.js';
9
- import { useGlobalStoreClient, NodeExecutionActions } from './chunk-CVTQYGJD.js';
10
- import { useNodeConfig, nodeSubtitle, nodeTitle } from './chunk-LSRF7JLO.js';
11
- import { CreateWorkflowRefusalDialog, WorkflowShareDialog, useWorkflowCodeExport, orderedExportFiles, fileBaseName, downloadWorkflowCodeExport, isLosslessReport, sortFidelityItems, isLossyFidelityItem, lineOfNode } from './chunk-NK7IQUZF.js';
7
+ import { LogsPanel } from './chunk-L47FFMXI.js';
8
+ import { useNodeEditorTab, NodeEditorTabs, NodeInputFields, NodeEditorTabBody } from './chunk-E37E4P5Q.js';
9
+ import { useGlobalStoreClient, NodeExecutionActions } from './chunk-UTNEZ3SO.js';
10
+ import { useNodeConfig, nodeSubtitle, nodeTitle } from './chunk-IQUXD27L.js';
11
+ import { CreateWorkflowRefusalDialog, WorkflowShareDialog, useWorkflowCodeExport, orderedExportFiles, fileBaseName, downloadWorkflowCodeExport, isLosslessReport, sortFidelityItems, isLossyFidelityItem, lineOfNode } from './chunk-5GICFNVU.js';
12
12
  import { emptyTestCaseDraft, EntityTagPicker, useWorkflowProposal, WorkflowProposalCard, useWorkflowTests, pinnedOutputsFromCanvas, enabledCaseIds, isTestRunOpen, MAX_TEST_CASES, draftFromTestCase, testRunSummaryText, testStatusLabel, TEST_STATUS_TONE_CLASS, testStatusTone, MAX_CASE_NAME, nextSortOrder, draftToInput } from './chunk-POCNK7FY.js';
13
13
  import { buildNodeDisplayMap } from './chunk-6NSPCR5C.js';
14
14
  import { AiCreditBalanceSlot } from './chunk-Y53CVZVV.js';
15
- import { countLifecycle, VersionLifecycleBar, VersionDiffDialog } from './chunk-XSTTM74F.js';
16
- import { useRestoreWorkflowVersion, useWorkflowVersions, useActivateWorkflow, useDeleteWorkflow, useDeactivateWorkflow } from './chunk-PHJBQCQS.js';
15
+ import { countLifecycle, VersionLifecycleBar, VersionDiffDialog } from './chunk-OIDIN7LW.js';
16
+ import { useRestoreWorkflowVersion, useWorkflowVersions, useActivateWorkflow, useDeleteWorkflow, useDeactivateWorkflow } from './chunk-Y5F3YUDT.js';
17
17
  import { PublishCustomNodeAction } from './chunk-XRGAH6IQ.js';
18
18
  import { Button } from './chunk-QJAZXCFQ.js';
19
19
  import { useRequestedProposal } from './chunk-GLYINMOR.js';
20
- import { useConnections, ConnectionFormDialog } from './chunk-SL2EDFAT.js';
20
+ import { useConnections, ConnectionFormDialog } from './chunk-PRI7PSHD.js';
21
21
  import { FluidGridsDocsLink } from './chunk-4VJ3MDOV.js';
22
22
  import { SdkPermissionButton, FLUIDGRIDS_PERMISSIONS, useFluidGridsPermission, SdkPermissionGate } from './chunk-ERT444RG.js';
23
- import { leaseCallQueue, RUNS_QUOTA_NAME, BILLING_PLANS_PATH, emitUpgradeClicked, FluidGridsContext, emitWorkflowCreated, emitTemplateUsed, ensureNodeConfigsLoaded, NODE_CONFIGS, useEditLeaseStore, useEditLeaseLocked, registerWorkflowNodeTypes, emitNodeInstalled, useNodeExecution, usePaletteGates, onNodeTypesUpdate, NODE_TYPES, getNodeMetadata, refetchStoreNodes, AVAILABLE_NODES, EDIT_SESSION_ID, useInsertNode, useSaveStatusStore, useManualSave, useDurableFunctionNodesEnabled, bannerOf, editStateFor, useSaveWorkflow, filterPaletteNodes, useFluidGridsAnalytics, useGuardedNavigate, sessionBeforeReload, forgetSessionForReload, releasesOnClose, touchesSavedFields, isLocked, watchLeavingLosesChanges, workflowFingerprint, savedEverythingBeforeLeaving, refusalOfQuota, buildStickyNode, NODES_METADATA, shouldReleaseForIdle, tickAction, rememberSessionForReload, leavingLosesChanges, buildOperationSeed, useDurableParityEnabled, useWorkflowTestsEnabled, useFluidGridsFlag, FLUIDGRIDS_FLAGS, useFlowValidator, saveIndicatorOf, departingSave, inAppLeaveTarget, isNodeConfigsInitialized, phaseAfterAcquire, rememberOwnStatusChange, useRunGuard, saveFailureActionOf, getNodeDetail, loadDefinitionJson, canAutosave, isNodeTypeHiddenFromPalette, AUTOSAVE_RETRY_DELAYS_MS, AUTOSAVE_DEBOUNCE_MS, editingLeaseLocked, autosaveAllowedFor, isFlowComplete, rememberRevision, phaseAfterTakeOver } from './chunk-X7LWPPVE.js';
23
+ import { leaseCallQueue, RUNS_QUOTA_NAME, BILLING_PLANS_PATH, emitUpgradeClicked, FluidGridsContext, emitWorkflowCreated, emitTemplateUsed, ensureNodeConfigsLoaded, NODE_CONFIGS, useEditLeaseStore, useEditLeaseLocked, registerWorkflowNodeTypes, emitNodeInstalled, useNodeExecution, usePaletteGates, onNodeTypesUpdate, NODE_TYPES, getNodeMetadata, refetchStoreNodes, AVAILABLE_NODES, EDIT_SESSION_ID, useInsertNode, useSaveStatusStore, useManualSave, useDurableFunctionNodesEnabled, bannerOf, editStateFor, useSaveWorkflow, filterPaletteNodes, useFluidGridsAnalytics, useGuardedNavigate, sessionBeforeReload, forgetSessionForReload, releasesOnClose, touchesSavedFields, isLocked, watchLeavingLosesChanges, workflowFingerprint, savedEverythingBeforeLeaving, refusalOfQuota, buildStickyNode, NODES_METADATA, shouldReleaseForIdle, tickAction, rememberSessionForReload, leavingLosesChanges, buildOperationSeed, useDurableParityEnabled, useWorkflowTestsEnabled, useFluidGridsFlag, FLUIDGRIDS_FLAGS, useFlowValidator, saveIndicatorOf, departingSave, inAppLeaveTarget, isNodeConfigsInitialized, phaseAfterAcquire, rememberOwnStatusChange, useRunGuard, saveFailureActionOf, getNodeDetail, loadDefinitionJson, canAutosave, isNodeTypeHiddenFromPalette, AUTOSAVE_RETRY_DELAYS_MS, AUTOSAVE_DEBOUNCE_MS, editingLeaseLocked, autosaveAllowedFor, isFlowComplete, rememberRevision, phaseAfterTakeOver } from './chunk-LU34NXNS.js';
24
24
  import { BuilderReadOnlyProvider, useBuilderReadOnly } from './chunk-SDZEAIIE.js';
25
- import { useFlowStore, useIsValidConnection, NODE_TYPE_DRAG_DATA_FORMAT, NODE_OPERATION_DRAG_DATA_FORMAT, CODE_WORKFLOW_NODE_TYPE, STICKY_NOTE_TYPE, NodeTypeIcon, isImageIcon, isTriggerOperation, nodeAccent } from './chunk-K2X63CR2.js';
25
+ import { useFlowStore, useIsValidConnection, NODE_TYPE_DRAG_DATA_FORMAT, NODE_OPERATION_DRAG_DATA_FORMAT, CODE_WORKFLOW_NODE_TYPE, STICKY_NOTE_TYPE, NodeTypeIcon, isImageIcon, isTriggerOperation, nodeAccent } from './chunk-MIXWHINW.js';
26
26
  import { getGlobalStoreClient } from './chunk-TYI2XOSI.js';
27
- import { GetMyNodeInstallationsDocument, BrowseWorkflowTemplatesDocument, InstallWorkflowNodeDocument, SubmitWorkflowTemplateDocument, MyWorkflowTemplateSubmissionsDocument, WithdrawWorkflowTemplateSubmissionDocument, InstallPurchasedNodeDocument, BrowseWorkflowNodesDocument, UninstallWorkflowNodeDocument, CreateStoreOrderDocument, GetNodeInstallableVersionsDocument, OrganizationPrivateNodesDocument, InstallOrganizationPrivateNodeDocument, UninstallOrganizationPrivateNodeDocument } from './chunk-3WNMZOVH.js';
27
+ import { GetMyNodeInstallationsDocument, BrowseWorkflowTemplatesDocument, InstallWorkflowNodeDocument, SubmitWorkflowTemplateDocument, MyWorkflowTemplateSubmissionsDocument, WithdrawWorkflowTemplateSubmissionDocument, InstallPurchasedNodeDocument, BrowseWorkflowNodesDocument, UninstallWorkflowNodeDocument, CreateStoreOrderDocument, GetNodeInstallableVersionsDocument, OrganizationPrivateNodesDocument, InstallOrganizationPrivateNodeDocument, UninstallOrganizationPrivateNodeDocument } from './chunk-4FPY66GH.js';
28
28
  import { cn } from './chunk-JL7CASN5.js';
29
29
  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-UDS2FA24.js';
30
30
  import { useTr } from './chunk-UULVIT25.js';
@@ -2696,6 +2696,25 @@ function getStoreNodeIcon(listingIcon, nodeType) {
2696
2696
  );
2697
2697
  return registered?.icon || null;
2698
2698
  }
2699
+ function storeNodeDisplayVersion(manifest, manifestVersion) {
2700
+ const record = typeof manifest === "string" ? parseManifest(manifest) : manifest;
2701
+ if (typeof record === "object" && record !== null) {
2702
+ const { nodeVersion, identity } = record;
2703
+ if (typeof nodeVersion === "string" && nodeVersion.trim())
2704
+ return nodeVersion.trim();
2705
+ const identityVersion = identity?.version;
2706
+ if (typeof identityVersion === "string" && identityVersion.trim())
2707
+ return identityVersion.trim();
2708
+ }
2709
+ return manifestVersion?.trim() || void 0;
2710
+ }
2711
+ function parseManifest(text) {
2712
+ try {
2713
+ return JSON.parse(text);
2714
+ } catch {
2715
+ return void 0;
2716
+ }
2717
+ }
2699
2718
  function isStoreNodeHiddenFromPalette(node, durableFunctionsEnabled = false) {
2700
2719
  return isNodeTypeHiddenFromPalette(
2701
2720
  getStoreNodeType(node, false),
@@ -3859,6 +3878,10 @@ function StoreNodeDetail({ node, onBack }) {
3859
3878
  const installedVersion = installation?.installedVersion;
3860
3879
  const installationId = installation?.installationId;
3861
3880
  const latestVersion = node.manifestVersion;
3881
+ const displayVersion = storeNodeDisplayVersion(
3882
+ node.manifest,
3883
+ node.manifestVersion
3884
+ );
3862
3885
  const hasUpdate = isInstalled && !!installedVersion && !!latestVersion && installedVersion !== latestVersion;
3863
3886
  const isFree = node.pricingModel === "FREE";
3864
3887
  const isPurchased = node.isPurchased === true;
@@ -3926,7 +3949,7 @@ function StoreNodeDetail({ node, onBack }) {
3926
3949
  "Node updated!"
3927
3950
  ),
3928
3951
  {
3929
- description: `${node.name} updated to v${latestVersion}.`
3952
+ description: `${node.name} updated to v${displayVersion ?? latestVersion}.`
3930
3953
  }
3931
3954
  );
3932
3955
  await refreshAvailableNodes();
@@ -4118,7 +4141,7 @@ function StoreNodeDetail({ node, onBack }) {
4118
4141
  ),
4119
4142
  " ",
4120
4143
  "v",
4121
- latestVersion
4144
+ displayVersion ?? latestVersion
4122
4145
  ]
4123
4146
  }
4124
4147
  ),
@@ -4142,7 +4165,7 @@ function StoreNodeDetail({ node, onBack }) {
4142
4165
  "fluidgrids.builder.storeNodeDetail.installedBadge",
4143
4166
  "Installed"
4144
4167
  ),
4145
- installedVersion ? ` v${installedVersion}` : ""
4168
+ installedVersion ? ` v${displayVersion ?? installedVersion}` : ""
4146
4169
  ]
4147
4170
  }
4148
4171
  ),
@@ -4188,12 +4211,17 @@ function StoreNodeDetail({ node, onBack }) {
4188
4211
  /* @__PURE__ */ jsx(Download, { className: "size-3" }),
4189
4212
  formatDownloads(node.downloads ?? 0)
4190
4213
  ] }),
4191
- latestVersion && /* @__PURE__ */ jsxs("span", { className: "opacity-80", children: [
4214
+ displayVersion && /* @__PURE__ */ jsxs("span", { className: "opacity-80", children: [
4192
4215
  "v",
4193
- latestVersion
4216
+ displayVersion
4194
4217
  ] })
4195
4218
  ] }),
4196
- node.description && /* @__PURE__ */ jsx(StoreNodeDescription, { text: node.description }),
4219
+ (node.longDescription || node.description) && /* @__PURE__ */ jsx(
4220
+ StoreNodeDescription,
4221
+ {
4222
+ text: node.longDescription || node.description || ""
4223
+ }
4224
+ ),
4197
4225
  (isInstalled || isPrebuilt) && /* @__PURE__ */ jsx("div", { className: "mb-4 -mx-3 rounded-lg border border-border/50", children: /* @__PURE__ */ jsx(StoreNodeOperations, { nodeType }) }),
4198
4226
  node.publisher && /* @__PURE__ */ jsxs("div", { className: "mb-4 p-2.5 rounded-lg bg-muted/50 flex items-center gap-2", children: [
4199
4227
  /* @__PURE__ */ jsx("div", { className: "size-6 rounded bg-muted flex items-center justify-center shrink-0", children: /* @__PURE__ */ jsx("span", { className: "text-xs font-bold text-muted-foreground", children: node.publisher.name.charAt(0) }) }),
@@ -4243,7 +4271,7 @@ function StoreNodeDetail({ node, onBack }) {
4243
4271
  ),
4244
4272
  " ",
4245
4273
  "v",
4246
- latestVersion
4274
+ displayVersion ?? latestVersion
4247
4275
  ] })
4248
4276
  }
4249
4277
  ),
@@ -4314,7 +4342,7 @@ function StoreNodeDetail({ node, onBack }) {
4314
4342
  "fluidgrids.builder.storeNodeDetail.versionLatest",
4315
4343
  "Latest"
4316
4344
  ),
4317
- latestVersion ? ` (${latestVersion})` : ""
4345
+ latestVersion ? ` (${displayVersion ?? latestVersion})` : ""
4318
4346
  ] }),
4319
4347
  olderVersions.map((v) => /* @__PURE__ */ jsxs("option", { value: v.version, children: [
4320
4348
  v.version,
@@ -4805,7 +4833,7 @@ function DesktopSidebarFragment({
4805
4833
  );
4806
4834
  if (nodesToInstall.length > 0) {
4807
4835
  const { getGlobalStoreClient: getStore } = await import('./global-client-PJ5LANJA.js');
4808
- const { InstallWorkflowNodeDocument: InstallWorkflowNodeDocument2 } = await import('./global-operations-KADPYCYT.js');
4836
+ const { InstallWorkflowNodeDocument: InstallWorkflowNodeDocument2 } = await import('./global-operations-RHGX2BNA.js');
4809
4837
  const { getFluidGridsConfig: getFluidGridsConfig3 } = await import('./config-66FUPSG5.js');
4810
4838
  const storeClient = getStore();
4811
4839
  const cfg = getFluidGridsConfig3();
@@ -4925,7 +4953,7 @@ function DesktopSidebarFragment({
4925
4953
  });
4926
4954
  try {
4927
4955
  const { getGlobalStoreClient: getStoreClient } = await import('./global-client-PJ5LANJA.js');
4928
- const { InstallWorkflowNodeDocument: InstallWorkflowNodeDocument2 } = await import('./global-operations-KADPYCYT.js');
4956
+ const { InstallWorkflowNodeDocument: InstallWorkflowNodeDocument2 } = await import('./global-operations-RHGX2BNA.js');
4929
4957
  const storeClient = getStoreClient();
4930
4958
  if (storeClient) {
4931
4959
  throwIfResultError(
@@ -20497,12 +20525,12 @@ function EditLeaseBanner() {
20497
20525
  );
20498
20526
  }
20499
20527
  var LazyNodeDetailView = lazy(
20500
- () => import('./node-detail-view-3M2UBEWP.js').then((m) => ({
20528
+ () => import('./node-detail-view-XEICWB73.js').then((m) => ({
20501
20529
  default: m.NodeDetailView
20502
20530
  }))
20503
20531
  );
20504
20532
  var LazyQuickConfigPanel = lazy(
20505
- () => import('./quick-config-panel-MKCY2UG3.js').then((m) => ({
20533
+ () => import('./quick-config-panel-6FQOMYPQ.js').then((m) => ({
20506
20534
  default: m.QuickConfigPanel
20507
20535
  }))
20508
20536
  );
@@ -20564,7 +20592,7 @@ var FlowBuilder = ({ readOnly = false }) => {
20564
20592
  );
20565
20593
  useEffect(() => {
20566
20594
  let cancelled = false;
20567
- void import('./agentTools-KO3YDCWV.js').then(({ createBuilderAgentTools }) => {
20595
+ void import('./agentTools-US6ZBONP.js').then(({ createBuilderAgentTools }) => {
20568
20596
  if (cancelled) return;
20569
20597
  setAgentTools(
20570
20598
  createBuilderAgentTools({
@@ -1,11 +1,11 @@
1
1
  import { ActionPoliciesTab, BUDGET_DIMENSIONS, withBudgetLimit, budgetInputValue, withBudgetMode, checkCodecServerUrl } from './chunk-5NZANNKX.js';
2
- import { LogStreamingTab } from './chunk-JGHDGMYV.js';
3
- import { AgentsTab, useConnections } from './chunk-SL2EDFAT.js';
2
+ import { LogStreamingTab } from './chunk-QLGJM6B2.js';
3
+ import { AgentsTab, useConnections } from './chunk-PRI7PSHD.js';
4
4
  import { useResource, fetchPauseRules, FieldError, fetchSearchAttributes, StatusPill, NativeSelect, fetchArchiveSettings, fetchCodecServerSettings, deletePauseRule, createPauseRule, deleteSearchAttribute, createSearchAttribute, saveArchiveSettings, clearArchiveSettings, saveCodecServerSettings } from './chunk-VXVLQ3LX.js';
5
5
  import { FluidGridsDocsLink } from './chunk-4VJ3MDOV.js';
6
6
  import { useFluidGridsPermission, FLUIDGRIDS_PERMISSIONS } from './chunk-ERT444RG.js';
7
- import { useFluidGridsFlag, FLUIDGRIDS_FLAGS, usePhaseCFlags, useSaveStatusStore, findSaveConflict, useDurableParityEnabled } from './chunk-X7LWPPVE.js';
8
- import { useFlowStore } from './chunk-K2X63CR2.js';
7
+ import { useFluidGridsFlag, FLUIDGRIDS_FLAGS, usePhaseCFlags, useSaveStatusStore, findSaveConflict, useDurableParityEnabled } from './chunk-LU34NXNS.js';
8
+ import { useFlowStore } from './chunk-MIXWHINW.js';
9
9
  import { getGlobalStoreClient } from './chunk-TYI2XOSI.js';
10
10
  import { useWorkflowDefinitionQuery, useUpdateWorkflowDefinitionMutation, useWorkflowDefinitionsQuery, ManagedAiWorkspacePolicyDocument, UpdateManagedAiWorkspacePolicyDocument, DurableHistoryCapsDocument, UpdateDurableHistoryCapsDocument } from './chunk-UDS2FA24.js';
11
11
  import { useTr } from './chunk-UULVIT25.js';