@burdenoff/fluidgrids-fe-sdk 2026.1110.3 → 2026.1110.5

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 (51) hide show
  1. package/dist/{ExecutionDetailPage-7JT2YODS.js → ExecutionDetailPage-FLLQTJBW.js} +13 -13
  2. package/dist/{ExecutionsListPage-JWQWJL2K.js → ExecutionsListPage-FN5HPHB3.js} +9 -9
  3. package/dist/{WorkflowBuilder-D6LOQS4H.js → WorkflowBuilder-AOWQJ6OS.js} +15 -15
  4. package/dist/{WorkflowsList-XPNGNR4A.js → WorkflowsList-CBMAAP2H.js} +7 -7
  5. package/dist/{agentTools-73W5DJDQ.js → agentTools-KO3YDCWV.js} +4 -4
  6. package/dist/{chunk-G77IGC3Y.js → chunk-3WNMZOVH.js} +1 -1
  7. package/dist/{chunk-OJHBCOBA.js → chunk-5NZANNKX.js} +40 -1
  8. package/dist/{chunk-DIIGFBYT.js → chunk-6NSPCR5C.js} +1 -1
  9. package/dist/{chunk-2DBAQR6F.js → chunk-7LMZZJQM.js} +2 -2
  10. package/dist/{chunk-XIB26SW6.js → chunk-CVTQYGJD.js} +5 -5
  11. package/dist/{chunk-3F4DIVKT.js → chunk-DCMHDOZO.js} +1 -1
  12. package/dist/{chunk-WYNLB54U.js → chunk-ED3DCUU5.js} +6 -6
  13. package/dist/{chunk-L5MZ74DA.js → chunk-GA3DS2ZJ.js} +1 -1
  14. package/dist/{chunk-2ZS2HN4T.js → chunk-GC73RBYI.js} +3 -3
  15. package/dist/{chunk-M7USD2VH.js → chunk-HONN7S5R.js} +4 -4
  16. package/dist/{chunk-H2B2J2PY.js → chunk-IK7BHEVM.js} +84 -39
  17. package/dist/{chunk-Z6D6YL7C.js → chunk-JGHDGMYV.js} +1 -1
  18. package/dist/{chunk-ZQTANHKA.js → chunk-LLGTTPON.js} +2 -2
  19. package/dist/{chunk-24VHW3ZF.js → chunk-LSRF7JLO.js} +2 -2
  20. package/dist/{chunk-6SEPRHQZ.js → chunk-MOX7UB6C.js} +174 -23
  21. package/dist/{chunk-DZRVA4DL.js → chunk-MWZFI4ZK.js} +3 -3
  22. package/dist/{chunk-QGRVYPQC.js → chunk-NK7IQUZF.js} +2 -2
  23. package/dist/{chunk-K22NDWSD.js → chunk-PHJBQCQS.js} +2 -2
  24. package/dist/{chunk-2H4XAES7.js → chunk-POCNK7FY.js} +2 -2
  25. package/dist/{chunk-F4PAT5DP.js → chunk-RVRLVDZA.js} +5 -5
  26. package/dist/{chunk-7XJKLVRJ.js → chunk-SL2EDFAT.js} +2 -2
  27. package/dist/{chunk-PICOXEUO.js → chunk-SUHVKRZU.js} +4 -4
  28. package/dist/{chunk-I3DBTNWQ.js → chunk-TOCD4SVA.js} +5 -5
  29. package/dist/{chunk-A6Q4FWB6.js → chunk-UDS2FA24.js} +1 -1
  30. package/dist/{chunk-L2WJTIFQ.js → chunk-VVJRZM6D.js} +7 -7
  31. package/dist/{chunk-42PMXPHK.js → chunk-VXVLQ3LX.js} +1 -1
  32. package/dist/{chunk-G7BT24PD.js → chunk-W5ZTQQUI.js} +2 -2
  33. package/dist/{chunk-DDINUPO3.js → chunk-X7LWPPVE.js} +2 -2
  34. package/dist/{chunk-X7XVRJK2.js → chunk-XSTTM74F.js} +1 -1
  35. package/dist/{chunk-LCHXXVSV.js → chunk-ZTE3O5S4.js} +151 -7
  36. package/dist/executions.js +14 -14
  37. package/dist/{global-operations-BZDHTSYP.js → global-operations-KADPYCYT.js} +1 -1
  38. package/dist/history.js +6 -6
  39. package/dist/index.d.ts +35 -2
  40. package/dist/index.js +45 -45
  41. package/dist/{node-detail-view-5NBIDBIK.js → node-detail-view-3M2UBEWP.js} +8 -8
  42. package/dist/nodes.js +2 -2
  43. package/dist/observability.js +6 -6
  44. package/dist/{quick-config-panel-ETLKCV7H.js → quick-config-panel-MKCY2UG3.js} +8 -8
  45. package/dist/settings.js +8 -8
  46. package/dist/templates.js +15 -15
  47. package/dist/{workflow-builder-DQ2VFyg8.d.ts → workflow-builder-DgZQtyWL.d.ts} +12 -0
  48. package/dist/workflow-builder.d.ts +1 -1
  49. package/dist/workflow-builder.js +16 -16
  50. package/dist/workflows-list.js +7 -7
  51. package/package.json +1 -1
@@ -5,28 +5,28 @@ 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
7
  import { LogsPanel } from './chunk-QUYK5PAZ.js';
8
- import { useNodeEditorTab, NodeEditorTabs, NodeInputFields, NodeEditorTabBody } from './chunk-DZRVA4DL.js';
9
- import { useGlobalStoreClient, NodeExecutionActions } from './chunk-XIB26SW6.js';
10
- import { useNodeConfig, nodeSubtitle, nodeTitle } from './chunk-24VHW3ZF.js';
11
- import { CreateWorkflowRefusalDialog, WorkflowShareDialog, useWorkflowCodeExport, orderedExportFiles, fileBaseName, downloadWorkflowCodeExport, isLosslessReport, sortFidelityItems, isLossyFidelityItem, lineOfNode } from './chunk-QGRVYPQC.js';
12
- import { emptyTestCaseDraft, EntityTagPicker, useWorkflowProposal, WorkflowProposalCard, useWorkflowTests, pinnedOutputsFromCanvas, enabledCaseIds, isTestRunOpen, MAX_TEST_CASES, draftFromTestCase, testRunSummaryText, testStatusLabel, TEST_STATUS_TONE_CLASS, testStatusTone, MAX_CASE_NAME, nextSortOrder, draftToInput } from './chunk-2H4XAES7.js';
13
- import { buildNodeDisplayMap } from './chunk-DIIGFBYT.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';
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
+ import { buildNodeDisplayMap } from './chunk-6NSPCR5C.js';
14
14
  import { AiCreditBalanceSlot } from './chunk-Y53CVZVV.js';
15
- import { countLifecycle, VersionLifecycleBar, VersionDiffDialog } from './chunk-X7XVRJK2.js';
16
- import { useRestoreWorkflowVersion, useWorkflowVersions, useActivateWorkflow, useDeleteWorkflow, useDeactivateWorkflow } from './chunk-K22NDWSD.js';
15
+ import { countLifecycle, VersionLifecycleBar, VersionDiffDialog } from './chunk-XSTTM74F.js';
16
+ import { useRestoreWorkflowVersion, useWorkflowVersions, useActivateWorkflow, useDeleteWorkflow, useDeactivateWorkflow } from './chunk-PHJBQCQS.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-7XJKLVRJ.js';
20
+ import { useConnections, ConnectionFormDialog } from './chunk-SL2EDFAT.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-DDINUPO3.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';
24
24
  import { BuilderReadOnlyProvider, useBuilderReadOnly } from './chunk-SDZEAIIE.js';
25
25
  import { useFlowStore, useIsValidConnection, NODE_TYPE_DRAG_DATA_FORMAT, NODE_OPERATION_DRAG_DATA_FORMAT, CODE_WORKFLOW_NODE_TYPE, STICKY_NOTE_TYPE, NodeTypeIcon, isImageIcon, isTriggerOperation, nodeAccent } from './chunk-K2X63CR2.js';
26
26
  import { getGlobalStoreClient } from './chunk-TYI2XOSI.js';
27
- import { GetMyNodeInstallationsDocument, BrowseWorkflowTemplatesDocument, InstallWorkflowNodeDocument, SubmitWorkflowTemplateDocument, MyWorkflowTemplateSubmissionsDocument, WithdrawWorkflowTemplateSubmissionDocument, InstallPurchasedNodeDocument, BrowseWorkflowNodesDocument, UninstallWorkflowNodeDocument, CreateStoreOrderDocument, GetNodeInstallableVersionsDocument, OrganizationPrivateNodesDocument, InstallOrganizationPrivateNodeDocument, UninstallOrganizationPrivateNodeDocument } from './chunk-G77IGC3Y.js';
27
+ import { GetMyNodeInstallationsDocument, BrowseWorkflowTemplatesDocument, InstallWorkflowNodeDocument, SubmitWorkflowTemplateDocument, MyWorkflowTemplateSubmissionsDocument, WithdrawWorkflowTemplateSubmissionDocument, InstallPurchasedNodeDocument, BrowseWorkflowNodesDocument, UninstallWorkflowNodeDocument, CreateStoreOrderDocument, GetNodeInstallableVersionsDocument, OrganizationPrivateNodesDocument, InstallOrganizationPrivateNodeDocument, UninstallOrganizationPrivateNodeDocument } from './chunk-3WNMZOVH.js';
28
28
  import { cn } from './chunk-JL7CASN5.js';
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-A6Q4FWB6.js';
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';
31
31
  import { waitForFluidGridsClient, getFluidGridsClient } from './chunk-PDODDDHY.js';
32
32
  import { throwIfResultError, describeOperationError, emitFluidGridsEvent } from './chunk-JKLZ6YZ3.js';
@@ -1110,9 +1110,11 @@ function useStoreNodes(options = {}) {
1110
1110
  variables: {
1111
1111
  input: {
1112
1112
  ...input,
1113
+ // browseStore pages by offset and ignores the cursor, so passing
1114
+ // the cursor with offset 0 fetched the first page again (BOFF-11402).
1113
1115
  pagination: {
1114
1116
  ...input.pagination,
1115
- cursor: data.browseStore.nextCursor
1117
+ offset: data.browseStore.products.length
1116
1118
  }
1117
1119
  }
1118
1120
  },
@@ -1699,34 +1701,77 @@ function getWorkflowNodeTypes(nodes) {
1699
1701
  )
1700
1702
  ];
1701
1703
  }
1702
- async function fetchStoreNodeTypeMap() {
1703
- const storeClient = getGlobalStoreClient();
1704
- if (!storeClient) {
1705
- return /* @__PURE__ */ new Map();
1704
+ var STORE_NODE_PAGE_SIZE = 100;
1705
+ var STORE_NODE_MAX_PAGES = 50;
1706
+ function storeNodePageVariables(offset) {
1707
+ return {
1708
+ input: {
1709
+ filter: {
1710
+ type: "NODE",
1711
+ compatibleWith: "fluidgrids"
1712
+ },
1713
+ sortBy: "DOWNLOADS",
1714
+ pagination: { limit: STORE_NODE_PAGE_SIZE, offset }
1715
+ }
1716
+ };
1717
+ }
1718
+ async function fetchAllStoreNodes(fetchPage) {
1719
+ const byId = /* @__PURE__ */ new Map();
1720
+ let offset = 0;
1721
+ for (let page = 0; page < STORE_NODE_MAX_PAGES; page++) {
1722
+ const browse = await fetchPage(storeNodePageVariables(offset));
1723
+ const products = browse?.products ?? [];
1724
+ for (const product of products) {
1725
+ if (!byId.has(product.id)) byId.set(product.id, product);
1726
+ }
1727
+ if (!browse?.hasMore || products.length === 0) break;
1728
+ offset += products.length;
1706
1729
  }
1707
- const result = await storeClient.query({
1708
- query: BrowseWorkflowNodesDocument,
1709
- variables: {
1710
- input: {
1711
- filter: {
1712
- type: "NODE",
1713
- compatibleWith: "fluidgrids"
1714
- },
1715
- sortBy: "DOWNLOADS",
1716
- pagination: { limit: 200, offset: 0 }
1717
- }
1718
- },
1719
- fetchPolicy: "cache-first"
1720
- });
1721
- const storeNodes = result.data?.browseStore?.products ?? [];
1730
+ return [...byId.values()];
1731
+ }
1732
+ function publishedAtMs(product) {
1733
+ const ms = product.publishedAt ? Date.parse(product.publishedAt) : NaN;
1734
+ return Number.isNaN(ms) ? Number.NEGATIVE_INFINITY : ms;
1735
+ }
1736
+ function compareStoreNodeCandidates(a, b) {
1737
+ const aLinked = Boolean(a.productId);
1738
+ const bLinked = Boolean(b.productId);
1739
+ if (aLinked !== bLinked) return aLinked ? -1 : 1;
1740
+ const downloads = (b.downloads ?? 0) - (a.downloads ?? 0);
1741
+ if (downloads !== 0) return downloads;
1742
+ const aPublished = publishedAtMs(a);
1743
+ const bPublished = publishedAtMs(b);
1744
+ if (aPublished !== bPublished) return aPublished > bPublished ? -1 : 1;
1745
+ if (a.id === b.id) return 0;
1746
+ return a.id < b.id ? -1 : 1;
1747
+ }
1748
+ function buildStoreNodeTypeMap(products) {
1722
1749
  const nodeTypeToProduct = /* @__PURE__ */ new Map();
1723
- for (const product of storeNodes) {
1750
+ for (const product of products) {
1724
1751
  const nodeType = product.manifest?.nodeType;
1725
- if (typeof nodeType === "string" && nodeType)
1752
+ if (typeof nodeType !== "string" || !nodeType) continue;
1753
+ const current = nodeTypeToProduct.get(nodeType);
1754
+ if (!current || compareStoreNodeCandidates(product, current) < 0) {
1726
1755
  nodeTypeToProduct.set(nodeType, product);
1756
+ }
1727
1757
  }
1728
1758
  return nodeTypeToProduct;
1729
1759
  }
1760
+ async function fetchStoreNodeTypeMap() {
1761
+ const storeClient = getGlobalStoreClient();
1762
+ if (!storeClient) {
1763
+ return /* @__PURE__ */ new Map();
1764
+ }
1765
+ const products = await fetchAllStoreNodes(async (variables) => {
1766
+ const result = await storeClient.query({
1767
+ query: BrowseWorkflowNodesDocument,
1768
+ variables,
1769
+ fetchPolicy: "cache-first"
1770
+ });
1771
+ return result.data?.browseStore;
1772
+ });
1773
+ return buildStoreNodeTypeMap(products);
1774
+ }
1730
1775
  async function buildRequiredNodeTypes(nodes) {
1731
1776
  const workflowNodeTypes = getWorkflowNodeTypes(nodes);
1732
1777
  if (workflowNodeTypes.length === 0) return [];
@@ -4760,7 +4805,7 @@ function DesktopSidebarFragment({
4760
4805
  );
4761
4806
  if (nodesToInstall.length > 0) {
4762
4807
  const { getGlobalStoreClient: getStore } = await import('./global-client-PJ5LANJA.js');
4763
- const { InstallWorkflowNodeDocument: InstallWorkflowNodeDocument2 } = await import('./global-operations-BZDHTSYP.js');
4808
+ const { InstallWorkflowNodeDocument: InstallWorkflowNodeDocument2 } = await import('./global-operations-KADPYCYT.js');
4764
4809
  const { getFluidGridsConfig: getFluidGridsConfig3 } = await import('./config-66FUPSG5.js');
4765
4810
  const storeClient = getStore();
4766
4811
  const cfg = getFluidGridsConfig3();
@@ -4880,7 +4925,7 @@ function DesktopSidebarFragment({
4880
4925
  });
4881
4926
  try {
4882
4927
  const { getGlobalStoreClient: getStoreClient } = await import('./global-client-PJ5LANJA.js');
4883
- const { InstallWorkflowNodeDocument: InstallWorkflowNodeDocument2 } = await import('./global-operations-BZDHTSYP.js');
4928
+ const { InstallWorkflowNodeDocument: InstallWorkflowNodeDocument2 } = await import('./global-operations-KADPYCYT.js');
4884
4929
  const storeClient = getStoreClient();
4885
4930
  if (storeClient) {
4886
4931
  throwIfResultError(
@@ -20452,12 +20497,12 @@ function EditLeaseBanner() {
20452
20497
  );
20453
20498
  }
20454
20499
  var LazyNodeDetailView = lazy(
20455
- () => import('./node-detail-view-5NBIDBIK.js').then((m) => ({
20500
+ () => import('./node-detail-view-3M2UBEWP.js').then((m) => ({
20456
20501
  default: m.NodeDetailView
20457
20502
  }))
20458
20503
  );
20459
20504
  var LazyQuickConfigPanel = lazy(
20460
- () => import('./quick-config-panel-ETLKCV7H.js').then((m) => ({
20505
+ () => import('./quick-config-panel-MKCY2UG3.js').then((m) => ({
20461
20506
  default: m.QuickConfigPanel
20462
20507
  }))
20463
20508
  );
@@ -20519,7 +20564,7 @@ var FlowBuilder = ({ readOnly = false }) => {
20519
20564
  );
20520
20565
  useEffect(() => {
20521
20566
  let cancelled = false;
20522
- void import('./agentTools-73W5DJDQ.js').then(({ createBuilderAgentTools }) => {
20567
+ void import('./agentTools-KO3YDCWV.js').then(({ createBuilderAgentTools }) => {
20523
20568
  if (cancelled) return;
20524
20569
  setAgentTools(
20525
20570
  createBuilderAgentTools({
@@ -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-DDINUPO3.js';
2
+ import { useFluidGridsAnalytics, emitRunStarted, openRunQuotaUpgradePrompt, useFluidGridsFlag, FLUIDGRIDS_FLAGS } from './chunk-X7LWPPVE.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,6 +1,6 @@
1
- import { versionsOfWorkflow, VersionDiffDialog } from './chunk-X7XVRJK2.js';
1
+ import { versionsOfWorkflow, VersionDiffDialog } from './chunk-XSTTM74F.js';
2
2
  import { historyControls } from './chunk-FNZZ5JJL.js';
3
- import { useWorkflowDefinitions, useRestoreWorkflowVersion } from './chunk-K22NDWSD.js';
3
+ import { useWorkflowDefinitions, useRestoreWorkflowVersion } from './chunk-PHJBQCQS.js';
4
4
  import { useFluidGridsPageControls } from './chunk-PJAWNFJV.js';
5
5
  import { FluidGridsDocsLink } from './chunk-4VJ3MDOV.js';
6
6
  import { useTr } from './chunk-UULVIT25.js';
@@ -1,7 +1,7 @@
1
- import { structuredParameterType, parseParameterValue, liveInternalOperations, resolveNodeOperation, readDisplayOptions, getNodeDetail, fieldsFromIO, pathToExpression, NODE_CONFIGS, onNodeTypesUpdate, getNodeRegistryRevision, fieldsFromValue, declaredOutputFields, subscribeWorkflowSaved } from './chunk-DDINUPO3.js';
1
+ import { structuredParameterType, parseParameterValue, liveInternalOperations, resolveNodeOperation, readDisplayOptions, getNodeDetail, fieldsFromIO, pathToExpression, NODE_CONFIGS, onNodeTypesUpdate, getNodeRegistryRevision, fieldsFromValue, declaredOutputFields, subscribeWorkflowSaved } from './chunk-X7LWPPVE.js';
2
2
  import { useBuilderReadOnly } from './chunk-SDZEAIIE.js';
3
3
  import { useFlowStore } from './chunk-K2X63CR2.js';
4
- import { EventRegistrationsDocument } from './chunk-A6Q4FWB6.js';
4
+ import { EventRegistrationsDocument } from './chunk-UDS2FA24.js';
5
5
  import { useTr } from './chunk-UULVIT25.js';
6
6
  import { getFluidGridsClientSafe } from './chunk-PDODDDHY.js';
7
7
  import { useMemo, useState, useEffect, useSyncExternalStore, useRef, useCallback } from 'react';
@@ -1,17 +1,17 @@
1
- import { useDurableRunFields, useRunHistory, useDeterminismStatus, useRunStackTrace, RunHistoryView, SignalRunDialog, terminateDurableRun } from './chunk-G7BT24PD.js';
2
- import { useDurableParityRunFields, hasAgentNodeState, agentNodeTraces, orderNodesByExecution, useRunPending, useRunMetadata, ExecutionStatusBadge, NodeTimeline, RunLogViewer, NodeStatusBadge, setRunVersioningOverride } from './chunk-F4PAT5DP.js';
3
- import { useExecution, useExecutionActions, useAutoRefresh, runChainLinks, shortRunId, callbackTone, parseMetadataDefinition, overrideRequestOf } from './chunk-2DBAQR6F.js';
4
- import { fetchRunFailureClusters, OPEN_STATUSES, dismissRunFailureCluster, BUCKET_LABELS } from './chunk-L5MZ74DA.js';
1
+ import { useDurableRunFields, useRunHistory, useDeterminismStatus, useRunStackTrace, RunHistoryView, SignalRunDialog, terminateDurableRun } from './chunk-W5ZTQQUI.js';
2
+ import { useDurableParityRunFields, hasAgentNodeState, agentNodeTraces, orderNodesByExecution, useRunPending, useRunMetadata, ExecutionStatusBadge, NodeTimeline, RunLogViewer, NodeStatusBadge, setRunVersioningOverride } from './chunk-RVRLVDZA.js';
3
+ import { useExecution, useExecutionActions, useAutoRefresh, runChainLinks, shortRunId, callbackTone, parseMetadataDefinition, overrideRequestOf } from './chunk-7LMZZJQM.js';
4
+ import { fetchRunFailureClusters, OPEN_STATUSES, dismissRunFailureCluster, BUCKET_LABELS } from './chunk-GA3DS2ZJ.js';
5
5
  import { aiCost, formatTokens, modelLabel } from './chunk-NZAYYUQ4.js';
6
- import { useRunPolicyDecisions, RunPolicyDecisions, checkCodecServerUrl, containsEncodedPayload, isEncodedPayload, encodedPayloadBytes, decodePayloads, CodecServerError } from './chunk-OJHBCOBA.js';
7
- import { EntityTagPicker, canSaveRunAsTestCase, useWorkflowProposal, WorkflowProposalCard, MAX_CASE_NAME, saveRunAsTestCase } from './chunk-2H4XAES7.js';
8
- import { buildNodeDisplayMap, formatRunVersion, nodeDisplayTitle } from './chunk-DIIGFBYT.js';
6
+ import { useRunPolicyDecisions, RunPolicyDecisions, checkCodecServerUrl, containsEncodedPayload, formatBudgetUsd, isEncodedPayload, encodedPayloadBytes, decodePayloads, CodecServerError } from './chunk-5NZANNKX.js';
7
+ import { EntityTagPicker, canSaveRunAsTestCase, useWorkflowProposal, WorkflowProposalCard, MAX_CASE_NAME, saveRunAsTestCase } from './chunk-POCNK7FY.js';
8
+ import { buildNodeDisplayMap, formatRunVersion, nodeDisplayTitle } from './chunk-6NSPCR5C.js';
9
9
  import { AiCreditBalanceSlot } from './chunk-Y53CVZVV.js';
10
- import { useWorkflowVersions } from './chunk-K22NDWSD.js';
11
- import { readTyped, writeTyped, useResource, fetchCodecServerSettings, fetchRunControlFields, fetchPauseRules, RUN_CONTROL_DIALOG_STYLE, fetchRunHistoryArchive, parseJsonInput, NativeSelect, JsonField, FieldError, StatusPill, JsonBlock, fetchSignalTokens, parseJsonObjectInput, queryRun, revokeSignalToken, upsertRunSearchAttributes, newRunControlId, fetchRunUpdate, createSignalToken, pauseActivities, unpauseActivities, resetActivities, updateActivityOptions, completeActivityById, failActivityById, sendRunUpdate, resetRunToLastCleanTask, resetRun } from './chunk-42PMXPHK.js';
10
+ import { useWorkflowVersions } from './chunk-PHJBQCQS.js';
11
+ import { readTyped, writeTyped, useResource, fetchCodecServerSettings, fetchRunControlFields, fetchPauseRules, RUN_CONTROL_DIALOG_STYLE, fetchRunHistoryArchive, parseJsonInput, NativeSelect, JsonField, FieldError, StatusPill, JsonBlock, fetchSignalTokens, parseJsonObjectInput, queryRun, revokeSignalToken, upsertRunSearchAttributes, newRunControlId, fetchRunUpdate, createSignalToken, pauseActivities, unpauseActivities, resetActivities, updateActivityOptions, completeActivityById, failActivityById, sendRunUpdate, resetRunToLastCleanTask, resetRun } from './chunk-VXVLQ3LX.js';
12
12
  import { useFluidGridsPermission, FLUIDGRIDS_PERMISSIONS, SdkPermissionButton } from './chunk-ERT444RG.js';
13
- import { useDurableFunctionNodesEnabled, useDurableParityEnabled, usePhaseCFlags, runSignalTargets, canSignalRun, formatElapsedMs, runDurationMs, useWorkflowTestsEnabled, durableInterfaceOf } from './chunk-DDINUPO3.js';
14
- import { TaskQueuesDocument, TaskQueueStatsDocument, CreateTaskQueueDocument, UpdateTaskQueueDocument, DeleteTaskQueueDocument, WorkflowWorkersDocument, WorkerTokensDocument, CreateWorkerTokenDocument, RotateWorkerTokenDocument, DeleteWorkerTokenDocument, SetWorkerTokenConnectionAllowlistDocument, RunLogsDocument, RunLogAppendedDocument, ExplainRunDocument, RunAiUsageDocument } from './chunk-A6Q4FWB6.js';
13
+ import { useDurableFunctionNodesEnabled, useDurableParityEnabled, usePhaseCFlags, runSignalTargets, canSignalRun, formatElapsedMs, runDurationMs, useWorkflowTestsEnabled, durableInterfaceOf } from './chunk-X7LWPPVE.js';
14
+ import { TaskQueuesDocument, TaskQueueStatsDocument, CreateTaskQueueDocument, UpdateTaskQueueDocument, DeleteTaskQueueDocument, WorkflowWorkersDocument, WorkerTokensDocument, CreateWorkerTokenDocument, RotateWorkerTokenDocument, DeleteWorkerTokenDocument, SetWorkerTokenConnectionAllowlistDocument, RunLogsDocument, RunLogAppendedDocument, ExplainRunDocument, RunAiUsageDocument } from './chunk-UDS2FA24.js';
15
15
  import { useTr } from './chunk-UULVIT25.js';
16
16
  import { getFluidGridsClient, getFluidGridsClientSafe } from './chunk-PDODDDHY.js';
17
17
  import { throwIfResultError, describeOperationError } from './chunk-JKLZ6YZ3.js';
@@ -813,6 +813,153 @@ function RunQueuedBanner({
813
813
  }
814
814
  );
815
815
  }
816
+ var LIMIT_OF = {
817
+ STEPS: "maxSteps",
818
+ TOKENS: "maxTokens",
819
+ COST: "maxCostMicroUsd",
820
+ WALL_TIME: "maxWallTimeSec"
821
+ };
822
+ var ORDER = ["STEPS", "TOKENS", "COST", "WALL_TIME"];
823
+ function RunBudgetPanel({
824
+ budget
825
+ }) {
826
+ const tr = useTr();
827
+ if (!budget) return null;
828
+ const label = (dimension) => {
829
+ switch (dimension) {
830
+ case "STEPS":
831
+ return tr("fluidgrids.executions.budget.steps", "Model calls");
832
+ case "TOKENS":
833
+ return tr("fluidgrids.executions.budget.tokens", "Tokens");
834
+ case "COST":
835
+ return tr("fluidgrids.executions.budget.cost", "AI cost");
836
+ case "WALL_TIME":
837
+ return tr("fluidgrids.executions.budget.wallTime", "Running time");
838
+ }
839
+ };
840
+ const amount = (dimension, value) => {
841
+ switch (dimension) {
842
+ case "COST":
843
+ return `${formatBudgetUsd(value)} USD`;
844
+ case "WALL_TIME":
845
+ return `${Math.floor(value)} s`;
846
+ default:
847
+ return Math.floor(value).toLocaleString();
848
+ }
849
+ };
850
+ const used = (dimension) => {
851
+ switch (dimension) {
852
+ case "STEPS":
853
+ return budget.usage.steps;
854
+ case "TOKENS":
855
+ return budget.usage.tokens;
856
+ case "COST":
857
+ return budget.usage.costMicroUsd;
858
+ case "WALL_TIME":
859
+ return budget.usage.activeSeconds;
860
+ }
861
+ };
862
+ const rows = ORDER.flatMap((dimension) => {
863
+ const limit = budget.limits[LIMIT_OF[dimension]];
864
+ return limit ? [{ dimension, limit }] : [];
865
+ });
866
+ const stopped = budget.exceeded.find((event) => event.mode === "HARD");
867
+ const warned = budget.exceeded.filter((event) => event.mode === "SOFT");
868
+ return /* @__PURE__ */ jsxs(
869
+ "div",
870
+ {
871
+ className: "mb-6 rounded-lg border border-border-secondary bg-background-secondary p-4",
872
+ "data-testid": "run-budget-panel",
873
+ children: [
874
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-sm font-medium text-text-primary", children: [
875
+ /* @__PURE__ */ jsx(Icon, { icon: "mdi:gauge", width: 18 }),
876
+ tr("fluidgrids.executions.budget.heading", "AI budget")
877
+ ] }),
878
+ stopped && /* @__PURE__ */ jsx(
879
+ "p",
880
+ {
881
+ className: "mt-2 rounded-md border border-status-error-border bg-status-error-bg-subtle p-2 text-sm text-status-error-text",
882
+ role: "alert",
883
+ children: tr(
884
+ "fluidgrids.executions.budget.stopped",
885
+ "This run was stopped before its next model call: it reached its {{what}} limit of {{limit}} ({{observed}} used).",
886
+ {
887
+ what: label(stopped.dimension).toLowerCase(),
888
+ limit: amount(stopped.dimension, stopped.limit),
889
+ observed: amount(stopped.dimension, stopped.observed)
890
+ }
891
+ )
892
+ }
893
+ ),
894
+ warned.map((event) => /* @__PURE__ */ jsx(
895
+ "p",
896
+ {
897
+ className: "mt-2 rounded-md border border-status-warning-border bg-status-warning-bg-subtle p-2 text-sm text-status-warning-text",
898
+ children: tr(
899
+ "fluidgrids.executions.budget.warned",
900
+ "This run went over its {{what}} limit of {{limit}} ({{observed}} used). The limit only warns, so the run carried on.",
901
+ {
902
+ what: label(event.dimension).toLowerCase(),
903
+ limit: amount(event.dimension, event.limit),
904
+ observed: amount(event.dimension, event.observed)
905
+ }
906
+ )
907
+ },
908
+ event.dimension
909
+ )),
910
+ /* @__PURE__ */ jsx("dl", { className: "mt-3 grid grid-cols-1 gap-3 sm:grid-cols-2", children: rows.map(({ dimension, limit }) => {
911
+ const value = used(dimension);
912
+ const share = value === null || !(limit.limit > 0) ? 0 : Math.min(1, Math.max(0, value / limit.limit));
913
+ const over = budget.exceeded.some((e) => e.dimension === dimension);
914
+ return /* @__PURE__ */ jsxs("div", { "data-testid": `run-budget-${dimension}`, children: [
915
+ /* @__PURE__ */ jsxs("dt", { className: "flex items-center justify-between text-xs text-text-secondary", children: [
916
+ /* @__PURE__ */ jsx("span", { children: label(dimension) }),
917
+ /* @__PURE__ */ jsx("span", { children: limit.mode === "HARD" ? tr(
918
+ "fluidgrids.executions.budget.modeHard",
919
+ "Stops the run"
920
+ ) : tr("fluidgrids.executions.budget.modeSoft", "Warns only") })
921
+ ] }),
922
+ /* @__PURE__ */ jsxs("dd", { className: "mt-1", children: [
923
+ /* @__PURE__ */ jsxs("div", { className: "text-sm text-text-primary", children: [
924
+ value === null ? tr(
925
+ "fluidgrids.executions.budget.notPriced",
926
+ "Not priced yet"
927
+ ) : amount(dimension, value),
928
+ " ",
929
+ /* @__PURE__ */ jsxs("span", { className: "text-text-secondary", children: [
930
+ "/ ",
931
+ amount(dimension, limit.limit)
932
+ ] })
933
+ ] }),
934
+ /* @__PURE__ */ jsx(
935
+ "div",
936
+ {
937
+ className: "mt-1 h-1.5 w-full overflow-hidden rounded-full bg-background-tertiary",
938
+ role: "progressbar",
939
+ "aria-label": label(dimension),
940
+ "aria-valuemin": 0,
941
+ "aria-valuemax": 100,
942
+ "aria-valuenow": value === null ? void 0 : Math.round(share * 100),
943
+ children: /* @__PURE__ */ jsx(
944
+ "div",
945
+ {
946
+ className: over ? limit.mode === "HARD" ? "h-full bg-status-error" : "h-full bg-status-warning" : "h-full bg-primary",
947
+ style: { width: `${Math.round(share * 100)}%` }
948
+ }
949
+ )
950
+ }
951
+ )
952
+ ] })
953
+ ] }, dimension);
954
+ }) }),
955
+ rows.length > 0 && /* @__PURE__ */ jsx("p", { className: "mt-3 text-xs text-text-secondary", children: tr(
956
+ "fluidgrids.executions.budget.footnote",
957
+ "Usage is this run's own. Model calls, tokens and cost of sub-workflows also count against the top-level run's limits."
958
+ ) })
959
+ ]
960
+ }
961
+ );
962
+ }
816
963
  function RunAiAssistPanel({
817
964
  runId,
818
965
  status,
@@ -5730,6 +5877,7 @@ function ExecutionDetailPage() {
5730
5877
  ),
5731
5878
  /* @__PURE__ */ jsx(RunQueuedBanner, { status: execution.status, context: execution.context }),
5732
5879
  /* @__PURE__ */ jsx(RunDataPrunedNotice, { dataPrunedAt: execution.dataPrunedAt }),
5880
+ /* @__PURE__ */ jsx(RunBudgetPanel, { budget: execution.budget }),
5733
5881
  /* @__PURE__ */ jsx(RunHumanRequests, { requests: humanRequests }),
5734
5882
  /* @__PURE__ */ jsx(
5735
5883
  RunPolicyDecisions,
@@ -5815,18 +5963,21 @@ function ExecutionDetailPage() {
5815
5963
  onViewAgentTrace: (nodeId) => setActiveTab("agent", nodeId)
5816
5964
  }
5817
5965
  ) }),
5818
- activeTab === "agent" && hasAgent && /* @__PURE__ */ jsx("div", { className: "p-4 sm:p-6", children: /* @__PURE__ */ jsx(
5819
- AgentTracePanel,
5820
- {
5821
- traces: agentTraces,
5822
- nodeDisplay,
5823
- usage: runAiUsage.usage,
5824
- usageLoading: runAiUsage.loading,
5825
- usageError: runAiUsage.error,
5826
- onRefreshUsage: () => void runAiUsage.refetch(),
5827
- focusNodeId: agentFocusNodeId
5828
- }
5829
- ) }),
5966
+ activeTab === "agent" && hasAgent && /* @__PURE__ */ jsxs("div", { className: "p-4 sm:p-6", children: [
5967
+ /* @__PURE__ */ jsx(RunBudgetPanel, { budget: execution.budget }),
5968
+ /* @__PURE__ */ jsx(
5969
+ AgentTracePanel,
5970
+ {
5971
+ traces: agentTraces,
5972
+ nodeDisplay,
5973
+ usage: runAiUsage.usage,
5974
+ usageLoading: runAiUsage.loading,
5975
+ usageError: runAiUsage.error,
5976
+ onRefreshUsage: () => void runAiUsage.refetch(),
5977
+ focusNodeId: agentFocusNodeId
5978
+ }
5979
+ )
5980
+ ] }),
5830
5981
  activeTab === "history" && isDurableRun && /* @__PURE__ */ jsxs("div", { className: "space-y-4 p-4 sm:p-6", children: [
5831
5982
  phaseC.runArchival && /* @__PURE__ */ jsx(RunArchivedNotice, { runId: execution.id, enabled: true }),
5832
5983
  runCanChange && /* @__PURE__ */ jsx(
@@ -1,7 +1,7 @@
1
- import { TabButton, ReadOnlyFieldset, NodeSettingsPanel, NodeParamsForm, SchedulePanel, SCHEDULE_NODE_TYPE } from './chunk-XIB26SW6.js';
2
- import { nodeTitle, FieldTree } from './chunk-24VHW3ZF.js';
1
+ import { TabButton, ReadOnlyFieldset, NodeSettingsPanel, NodeParamsForm, SchedulePanel, SCHEDULE_NODE_TYPE } from './chunk-CVTQYGJD.js';
2
+ import { nodeTitle, FieldTree } from './chunk-LSRF7JLO.js';
3
3
  import { useFluidGridsPermission, FLUIDGRIDS_PERMISSIONS } from './chunk-ERT444RG.js';
4
- import { usePhaseCFlags } from './chunk-DDINUPO3.js';
4
+ import { usePhaseCFlags } from './chunk-X7LWPPVE.js';
5
5
  import { useFlowStore } from './chunk-K2X63CR2.js';
6
6
  import { useTr } from './chunk-UULVIT25.js';
7
7
  import { Icon } from '@iconify/react';
@@ -1,5 +1,5 @@
1
- import { useFluidGridsAnalytics, emitWorkflowLimitHit, emitUpgradeClicked, WORKFLOWS_QUOTA_NAME } from './chunk-DDINUPO3.js';
2
- import { ExportWorkflowCodeDocument, ShareWorkflowDocument, WorkflowSharingDocument } from './chunk-A6Q4FWB6.js';
1
+ import { useFluidGridsAnalytics, emitWorkflowLimitHit, emitUpgradeClicked, WORKFLOWS_QUOTA_NAME } from './chunk-X7LWPPVE.js';
2
+ import { ExportWorkflowCodeDocument, ShareWorkflowDocument, WorkflowSharingDocument } from './chunk-UDS2FA24.js';
3
3
  import { useTr } from './chunk-UULVIT25.js';
4
4
  import { getFluidGridsClient } from './chunk-PDODDDHY.js';
5
5
  import { describeOperationError, throwIfResultError } from './chunk-JKLZ6YZ3.js';
@@ -1,5 +1,5 @@
1
- import { useFluidGridsAnalytics, emitWorkflowCreated, emitRunStarted, runTriggerFromMode, openRunQuotaUpgradePrompt, emitWorkflowPublished } from './chunk-DDINUPO3.js';
2
- import { WorkflowDefinitionsDocument, WorkflowDefinitionDocument, WorkflowVersionsDocument, CreateWorkflowDefinitionDocument, ImportWorkflowDocument, PreviewN8nImportDocument, UpdateWorkflowDefinitionDocument, CreateWorkflowVersionDocument, DeleteWorkflowDefinitionDocument, DuplicateWorkflowDocument, RestoreWorkflowVersionDocument, TriggerWorkflowDocument, WorkflowRunsDocument, WorkflowRunDocument, DashboardSummaryDocument, ActivateWorkflowDefinitionDocument, DeactivateWorkflowDefinitionDocument } from './chunk-A6Q4FWB6.js';
1
+ import { useFluidGridsAnalytics, emitWorkflowCreated, emitRunStarted, runTriggerFromMode, openRunQuotaUpgradePrompt, emitWorkflowPublished } from './chunk-X7LWPPVE.js';
2
+ import { WorkflowDefinitionsDocument, WorkflowDefinitionDocument, WorkflowVersionsDocument, CreateWorkflowDefinitionDocument, ImportWorkflowDocument, PreviewN8nImportDocument, UpdateWorkflowDefinitionDocument, CreateWorkflowVersionDocument, DeleteWorkflowDefinitionDocument, DuplicateWorkflowDocument, RestoreWorkflowVersionDocument, TriggerWorkflowDocument, WorkflowRunsDocument, WorkflowRunDocument, DashboardSummaryDocument, ActivateWorkflowDefinitionDocument, DeactivateWorkflowDefinitionDocument } from './chunk-UDS2FA24.js';
3
3
  import { useTr } from './chunk-UULVIT25.js';
4
4
  import { getFluidGridsClient } from './chunk-PDODDDHY.js';
5
5
  import { throwIfResultError, emitFluidGridsEvent, emitOperationErrorEvent } from './chunk-JKLZ6YZ3.js';
@@ -1,8 +1,8 @@
1
1
  import { operatorSpec, normaliseAssertRules, describeAssertRuleProblem } from './chunk-JDLQ6QIB.js';
2
- import { useEntityTags, useTagEntity, useUntagEntity } from './chunk-DIIGFBYT.js';
2
+ import { useEntityTags, useTagEntity, useUntagEntity } from './chunk-6NSPCR5C.js';
3
3
  import { notifyFluidGridsAiCreditsUpdated } from './chunk-Y53CVZVV.js';
4
4
  import { ErrorType } from './chunk-6CPQVLHT.js';
5
- import { WorkflowProposalDocument, ProposeRunFixDocument, ProposeWorkflowChangeDocument, ApplyWorkflowProposalDocument, RejectWorkflowProposalDocument, CancelWorkflowProposalDocument, WorkflowTestCasesDocument, WorkflowTestRunsDocument, WorkflowTestRunDocument, CreateWorkflowTestCaseDocument, UpdateWorkflowTestCaseDocument, DeleteWorkflowTestCaseDocument, RunWorkflowTestsDocument, CreateWorkflowTestCaseFromRunDocument } from './chunk-A6Q4FWB6.js';
5
+ import { WorkflowProposalDocument, ProposeRunFixDocument, ProposeWorkflowChangeDocument, ApplyWorkflowProposalDocument, RejectWorkflowProposalDocument, CancelWorkflowProposalDocument, WorkflowTestCasesDocument, WorkflowTestRunsDocument, WorkflowTestRunDocument, CreateWorkflowTestCaseDocument, UpdateWorkflowTestCaseDocument, DeleteWorkflowTestCaseDocument, RunWorkflowTestsDocument, CreateWorkflowTestCaseFromRunDocument } from './chunk-UDS2FA24.js';
6
6
  import { useTr } from './chunk-UULVIT25.js';
7
7
  import { getFluidGridsClient } from './chunk-PDODDDHY.js';
8
8
  import { throwIfResultError, isForbiddenError } from './chunk-JKLZ6YZ3.js';
@@ -1,10 +1,10 @@
1
- import { validateDateRange, statusCountFilter, STATUS_COUNT_GROUP_BY, statusCountsOf } from './chunk-2DBAQR6F.js';
2
- import { useAvailableTags, formatRunVersion, nodeDisplayTitle } from './chunk-DIIGFBYT.js';
1
+ import { validateDateRange, statusCountFilter, STATUS_COUNT_GROUP_BY, statusCountsOf } from './chunk-7LMZZJQM.js';
2
+ import { useAvailableTags, formatRunVersion, nodeDisplayTitle } from './chunk-6NSPCR5C.js';
3
3
  import { executionsControls } from './chunk-FNZZ5JJL.js';
4
4
  import { useFluidGridsPageControls } from './chunk-PJAWNFJV.js';
5
- import { isAgentNodeType } from './chunk-42PMXPHK.js';
6
- import { useDurableParityEnabled, formatElapsedMs, runDurationMs, nodeStateDurationMs } from './chunk-DDINUPO3.js';
7
- import { SetWorkflowRunVersioningOverrideDocument, WorkflowRunsCountDocument, DurableParityRunFieldsDocument, WorkflowRunPendingDocument, WorkflowRunMetadataDocument } from './chunk-A6Q4FWB6.js';
5
+ import { isAgentNodeType } from './chunk-VXVLQ3LX.js';
6
+ import { useDurableParityEnabled, formatElapsedMs, runDurationMs, nodeStateDurationMs } from './chunk-X7LWPPVE.js';
7
+ import { SetWorkflowRunVersioningOverrideDocument, WorkflowRunsCountDocument, DurableParityRunFieldsDocument, WorkflowRunPendingDocument, WorkflowRunMetadataDocument } from './chunk-UDS2FA24.js';
8
8
  import { useTr } from './chunk-UULVIT25.js';
9
9
  import { getFluidGridsClient } from './chunk-PDODDDHY.js';
10
10
  import { throwIfResultError, describeOperationError } from './chunk-JKLZ6YZ3.js';
@@ -1,6 +1,6 @@
1
- import { emptyAgentForm, agentToForm, describeRule, formToInput, AgentFormError, DEFAULT_GRANT_DAYS, MAX_GRANT_DAYS, grantDays } from './chunk-42PMXPHK.js';
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-DDINUPO3.js';
3
+ import { replaceAdapterConnections, connectionsForAdapter, matchesAdapterProvider, newConnectionProviderKey, isOptionalAdapter } from './chunk-X7LWPPVE.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,10 +1,10 @@
1
- import { FailureTriagePanel } from './chunk-L5MZ74DA.js';
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-Z6D6YL7C.js';
3
+ import { useDataSinks, useDataSinkData, useInsightsData, useRunReplayActions } from './chunk-JGHDGMYV.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-DDINUPO3.js';
7
- import { SetContinuousOptimisationEnabledDocument, FgRunOptimisationScanDocument, ProposeOptimisationDocument, WorkflowProposalDocument, DismissOptimisationSuggestionDocument, SnoozeOptimisationSuggestionDocument, WorkspaceAiUsageDocument, OptimisationSuggestionsDocument, ContinuousOptimisationSettingsDocument } from './chunk-A6Q4FWB6.js';
6
+ import { useContinuousOptimisationEnabled } from './chunk-X7LWPPVE.js';
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';
10
10
  import { throwIfResultError } from './chunk-JKLZ6YZ3.js';
@@ -1,14 +1,14 @@
1
1
  import { firstWorkflowProgress, GUIDED_TOUR_STATE, builderPathFor } from './chunk-NRI7AUBH.js';
2
- import { useExecutions } from './chunk-2DBAQR6F.js';
3
- import { useExportWorkflowAs, WorkflowShareDialog, CreateWorkflowRefusalDialog, downloadWorkflowExport, importAcceptAttribute, canEditWorkflow, canShareWorkflow, QuotaExhaustedDialog, importFileKind, parseWorkflowImport, CODE_EXPORT_FORMATS, ImportSourceError, assertImportByteSize, MAX_IMPORT_ARCHIVE_BYTES, readProjectArchive, checkTypeScriptImport, MAX_IMPORT_SOURCE_BYTES, typeScriptModuleFile, typeScriptImportSource, workflowNameFromFile, primaryImportModule } from './chunk-QGRVYPQC.js';
2
+ import { useExecutions } from './chunk-7LMZZJQM.js';
3
+ import { useExportWorkflowAs, WorkflowShareDialog, CreateWorkflowRefusalDialog, downloadWorkflowExport, importAcceptAttribute, canEditWorkflow, canShareWorkflow, QuotaExhaustedDialog, importFileKind, parseWorkflowImport, CODE_EXPORT_FORMATS, ImportSourceError, assertImportByteSize, MAX_IMPORT_ARCHIVE_BYTES, readProjectArchive, checkTypeScriptImport, MAX_IMPORT_SOURCE_BYTES, typeScriptModuleFile, typeScriptImportSource, workflowNameFromFile, primaryImportModule } from './chunk-NK7IQUZF.js';
4
4
  import { workflowsListControls } from './chunk-FNZZ5JJL.js';
5
- import { useCreateWorkflow, useWorkflowDefinitions, useLazyWorkflowDefinition, useImportWorkflow, usePreviewN8nImport, useDuplicateWorkflow, useDeleteWorkflow } from './chunk-K22NDWSD.js';
5
+ import { useCreateWorkflow, useWorkflowDefinitions, useLazyWorkflowDefinition, useImportWorkflow, usePreviewN8nImport, useDuplicateWorkflow, useDeleteWorkflow } from './chunk-PHJBQCQS.js';
6
6
  import { useFluidGridsPageControls } from './chunk-PJAWNFJV.js';
7
7
  import { FluidGridsDocsLink } from './chunk-4VJ3MDOV.js';
8
8
  import { useFluidGridsPermission, FLUIDGRIDS_PERMISSIONS, SdkPermissionButton, SdkPermissionGate } from './chunk-ERT444RG.js';
9
- import { createThenOpen, FluidGridsContext, useFluidGridsFlag, FLUIDGRIDS_FLAGS, BILLING_PLANS_PATH, isQuotaExhaustedFailure } from './chunk-DDINUPO3.js';
9
+ import { createThenOpen, FluidGridsContext, useFluidGridsFlag, FLUIDGRIDS_FLAGS, BILLING_PLANS_PATH, isQuotaExhaustedFailure } from './chunk-X7LWPPVE.js';
10
10
  import { useFlowStore } from './chunk-K2X63CR2.js';
11
- import { WorkflowFoldersDocument, CreateWorkflowFolderDocument, RenameWorkflowFolderDocument, MoveWorkflowFolderDocument, DeleteWorkflowFolderDocument, WorkflowProjectsDocument, CreateWorkflowProjectDocument, RenameWorkflowProjectDocument, DeleteWorkflowProjectDocument, BulkMoveWorkflowsToFolderDocument, BulkAssignWorkflowsToProjectDocument, BulkDeleteWorkflowsDocument } from './chunk-A6Q4FWB6.js';
11
+ import { WorkflowFoldersDocument, CreateWorkflowFolderDocument, RenameWorkflowFolderDocument, MoveWorkflowFolderDocument, DeleteWorkflowFolderDocument, WorkflowProjectsDocument, CreateWorkflowProjectDocument, RenameWorkflowProjectDocument, DeleteWorkflowProjectDocument, BulkMoveWorkflowsToFolderDocument, BulkAssignWorkflowsToProjectDocument, BulkDeleteWorkflowsDocument } from './chunk-UDS2FA24.js';
12
12
  import { useTr } from './chunk-UULVIT25.js';
13
13
  import { getFluidGridsClient } from './chunk-PDODDDHY.js';
14
14
  import { describeOperationError, throwIfResultError } from './chunk-JKLZ6YZ3.js';