@burdenoff/fluidgrids-fe-sdk 2026.1031.5 → 2026.1031.6

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 (36) hide show
  1. package/dist/{ExecutionDetailPage-RZZJHBK3.js → ExecutionDetailPage-GKX4OUUR.js} +9 -8
  2. package/dist/{ExecutionsListPage-QXYQ5YEE.js → ExecutionsListPage-ZZOUZQBS.js} +6 -5
  3. package/dist/{TemplateDetailPanel-MTKW3SPM.js → TemplateDetailPanel-WH74G7PF.js} +18 -7
  4. package/dist/{WorkflowBuilder-KZKWWJZO.js → WorkflowBuilder-4QEJNKVE.js} +9 -8
  5. package/dist/{WorkflowsList-EHQTSSJY.js → WorkflowsList-4CTHUYM7.js} +7 -6
  6. package/dist/{chunk-YBJOZDR6.js → chunk-34HHBNZE.js} +1 -1
  7. package/dist/{chunk-6YGBRJNV.js → chunk-34XK5BC7.js} +2 -2
  8. package/dist/{chunk-XLAH4NWJ.js → chunk-35N3PEO6.js} +1 -1
  9. package/dist/{chunk-KUSE5B2O.js → chunk-3KKGE7CE.js} +8 -7
  10. package/dist/{chunk-NVAXIB4O.js → chunk-5XQMYHJ7.js} +1 -1
  11. package/dist/{chunk-H5HYJUUS.js → chunk-CAZHE2MQ.js} +5 -4
  12. package/dist/{chunk-X3WUWLRX.js → chunk-E7AQAPZN.js} +33 -22
  13. package/dist/{chunk-OXLYHOSQ.js → chunk-EPYTVCYH.js} +3 -183
  14. package/dist/{chunk-VILOIOPD.js → chunk-FUYHCONW.js} +24 -13
  15. package/dist/{chunk-BWQW6YSJ.js → chunk-GMVXPC5N.js} +1 -1
  16. package/dist/{chunk-3B2VD4N4.js → chunk-GREPXIXS.js} +1 -1
  17. package/dist/{chunk-UHG27FEH.js → chunk-HCKYGGUU.js} +4 -4
  18. package/dist/{chunk-S2I6ABXE.js → chunk-I5BPMBIV.js} +1 -1
  19. package/dist/{chunk-7SUFXFQN.js → chunk-IJBT25CS.js} +3 -3
  20. package/dist/{chunk-4VAPV7YT.js → chunk-JUHSLK7C.js} +4 -4
  21. package/dist/{chunk-YQNL73BB.js → chunk-NLRQSHRS.js} +1 -1
  22. package/dist/{chunk-JQUFGF5P.js → chunk-P4R4ACCC.js} +1 -1
  23. package/dist/{chunk-4OOE56HK.js → chunk-PP62ABIG.js} +1 -1
  24. package/dist/{chunk-QLE7GSOQ.js → chunk-RYUSWVIR.js} +3 -3
  25. package/dist/{chunk-E3KE67MX.js → chunk-VWFA3RQR.js} +1 -1
  26. package/dist/{chunk-AWQCF6GS.js → chunk-ZEHMJURX.js} +6 -5
  27. package/dist/chunk-ZUVFD5KV.js +186 -0
  28. package/dist/executions.js +10 -9
  29. package/dist/history.js +4 -3
  30. package/dist/index.js +39 -34
  31. package/dist/observability.js +5 -4
  32. package/dist/settings.js +6 -5
  33. package/dist/templates.js +8 -7
  34. package/dist/workflow-builder.js +10 -9
  35. package/dist/workflows-list.js +7 -6
  36. package/package.json +1 -1
@@ -1,17 +1,18 @@
1
- export { ExecutionDetailPage } from './chunk-KUSE5B2O.js';
2
- import './chunk-6YGBRJNV.js';
3
- import './chunk-NVAXIB4O.js';
4
- import './chunk-YQNL73BB.js';
5
- import './chunk-YBJOZDR6.js';
1
+ export { ExecutionDetailPage } from './chunk-3KKGE7CE.js';
2
+ import './chunk-34XK5BC7.js';
3
+ import './chunk-5XQMYHJ7.js';
4
+ import './chunk-NLRQSHRS.js';
5
+ import './chunk-34HHBNZE.js';
6
6
  import './chunk-5ERAJC2I.js';
7
- import './chunk-BWQW6YSJ.js';
7
+ import './chunk-GMVXPC5N.js';
8
8
  import './chunk-TVOXRODW.js';
9
9
  import './chunk-Y53CVZVV.js';
10
10
  import './chunk-FNZZ5JJL.js';
11
- import './chunk-E3KE67MX.js';
11
+ import './chunk-VWFA3RQR.js';
12
12
  import './chunk-PJAWNFJV.js';
13
13
  import './chunk-HQX7JZLY.js';
14
- import './chunk-OXLYHOSQ.js';
14
+ import './chunk-EPYTVCYH.js';
15
+ import './chunk-ZUVFD5KV.js';
15
16
  import './chunk-JL7CASN5.js';
16
17
  import './chunk-PXIFUMLA.js';
17
18
  import './chunk-6AMNEX2Y.js';
@@ -1,14 +1,15 @@
1
- export { ExecutionsListPage } from './chunk-UHG27FEH.js';
2
- import './chunk-6YGBRJNV.js';
3
- import './chunk-NVAXIB4O.js';
1
+ export { ExecutionsListPage } from './chunk-HCKYGGUU.js';
2
+ import './chunk-34XK5BC7.js';
3
+ import './chunk-5XQMYHJ7.js';
4
4
  import './chunk-5ERAJC2I.js';
5
5
  import './chunk-TVOXRODW.js';
6
6
  import './chunk-FNZZ5JJL.js';
7
- import './chunk-E3KE67MX.js';
7
+ import './chunk-VWFA3RQR.js';
8
8
  import './chunk-PJAWNFJV.js';
9
9
  import './chunk-HQX7JZLY.js';
10
10
  import './chunk-4VJ3MDOV.js';
11
- import './chunk-OXLYHOSQ.js';
11
+ import './chunk-EPYTVCYH.js';
12
+ import './chunk-ZUVFD5KV.js';
12
13
  import './chunk-JL7CASN5.js';
13
14
  import './chunk-PXIFUMLA.js';
14
15
  import './chunk-6AMNEX2Y.js';
@@ -1,5 +1,6 @@
1
1
  import { templatePreview } from './chunk-B6CCE2RW.js';
2
2
  import { Button, Badge } from './chunk-BQXVT32O.js';
3
+ import { SdkPermissionButton, FLUIDGRIDS_PERMISSIONS } from './chunk-ZUVFD5KV.js';
3
4
  import './chunk-JL7CASN5.js';
4
5
  import { useTr } from './chunk-UULVIT25.js';
5
6
  import './chunk-62GWEYJ5.js';
@@ -188,13 +189,23 @@ function TemplateDetailPanel({
188
189
  )) })
189
190
  ] }),
190
191
  /* @__PURE__ */ jsxs("div", { className: "pt-2 space-y-2", children: [
191
- /* @__PURE__ */ jsxs(Button, { className: "w-full", onClick: () => onUseTemplate(template), children: [
192
- /* @__PURE__ */ jsx(Sparkles, { className: "size-4 mr-2" }),
193
- tr(
194
- "fluidgrids.builder.templateDetailPanel.useTemplateButton",
195
- "Use This Template"
196
- )
197
- ] }),
192
+ /* @__PURE__ */ jsx(
193
+ SdkPermissionButton,
194
+ {
195
+ permission: FLUIDGRIDS_PERMISSIONS.WORKFLOW_CREATE,
196
+ deniedTooltip: tr(
197
+ "fluidgrids.templates.useDeniedTooltip",
198
+ "You don't have permission to create workflows from templates"
199
+ ),
200
+ children: /* @__PURE__ */ jsxs(Button, { className: "w-full", onClick: () => onUseTemplate(template), children: [
201
+ /* @__PURE__ */ jsx(Sparkles, { className: "size-4 mr-2" }),
202
+ tr(
203
+ "fluidgrids.builder.templateDetailPanel.useTemplateButton",
204
+ "Use This Template"
205
+ )
206
+ ] })
207
+ }
208
+ ),
198
209
  template.publisher?.websiteUrl && /* @__PURE__ */ jsx(Button, { variant: "outline", className: "w-full", asChild: true, children: /* @__PURE__ */ jsxs(
199
210
  "a",
200
211
  {
@@ -1,21 +1,22 @@
1
- export { WorkflowBuilder } from './chunk-4VAPV7YT.js';
2
- import './chunk-JQUFGF5P.js';
1
+ export { WorkflowBuilder } from './chunk-JUHSLK7C.js';
2
+ import './chunk-P4R4ACCC.js';
3
3
  import './chunk-PIKYQE7P.js';
4
- import './chunk-VILOIOPD.js';
4
+ import './chunk-FUYHCONW.js';
5
5
  import './chunk-GEMNVFPK.js';
6
6
  import './chunk-B6CCE2RW.js';
7
7
  import './chunk-IEVSFCFS.js';
8
8
  import './chunk-YXMFRQYV.js';
9
9
  import './chunk-BQXVT32O.js';
10
- import './chunk-3B2VD4N4.js';
11
- import './chunk-BWQW6YSJ.js';
10
+ import './chunk-GREPXIXS.js';
11
+ import './chunk-GMVXPC5N.js';
12
12
  import './chunk-TVOXRODW.js';
13
13
  import './chunk-Y53CVZVV.js';
14
- import './chunk-E3KE67MX.js';
14
+ import './chunk-VWFA3RQR.js';
15
15
  import './chunk-HQX7JZLY.js';
16
- import './chunk-XLAH4NWJ.js';
16
+ import './chunk-35N3PEO6.js';
17
17
  import './chunk-4VJ3MDOV.js';
18
- import './chunk-OXLYHOSQ.js';
18
+ import './chunk-EPYTVCYH.js';
19
+ import './chunk-ZUVFD5KV.js';
19
20
  import './chunk-JL7CASN5.js';
20
21
  import './chunk-PXIFUMLA.js';
21
22
  import './chunk-6AMNEX2Y.js';
@@ -1,14 +1,15 @@
1
- export { WorkflowsList } from './chunk-AWQCF6GS.js';
2
- import './chunk-JQUFGF5P.js';
3
- import './chunk-NVAXIB4O.js';
1
+ export { WorkflowsList } from './chunk-ZEHMJURX.js';
2
+ import './chunk-P4R4ACCC.js';
3
+ import './chunk-5XQMYHJ7.js';
4
4
  import './chunk-5ERAJC2I.js';
5
- import './chunk-3B2VD4N4.js';
5
+ import './chunk-GREPXIXS.js';
6
6
  import './chunk-FNZZ5JJL.js';
7
- import './chunk-E3KE67MX.js';
7
+ import './chunk-VWFA3RQR.js';
8
8
  import './chunk-PJAWNFJV.js';
9
9
  import './chunk-HQX7JZLY.js';
10
10
  import './chunk-4VJ3MDOV.js';
11
- import './chunk-OXLYHOSQ.js';
11
+ import './chunk-EPYTVCYH.js';
12
+ import './chunk-ZUVFD5KV.js';
12
13
  import './chunk-JL7CASN5.js';
13
14
  import './chunk-PXIFUMLA.js';
14
15
  import './chunk-6AMNEX2Y.js';
@@ -1,4 +1,4 @@
1
- import { throwIfResultError, describeOperationError } from './chunk-OXLYHOSQ.js';
1
+ import { throwIfResultError, describeOperationError } from './chunk-EPYTVCYH.js';
2
2
  import { useTr } from './chunk-UULVIT25.js';
3
3
  import { getFluidGridsClient } from './chunk-NTWG3CJX.js';
4
4
  import { useState, useCallback, useEffect, useMemo } from 'react';
@@ -1,8 +1,8 @@
1
- import { validateDateRange, statusCountFilter, STATUS_COUNT_GROUP_BY, statusCountsOf } from './chunk-NVAXIB4O.js';
1
+ import { validateDateRange, statusCountFilter, STATUS_COUNT_GROUP_BY, statusCountsOf } from './chunk-5XQMYHJ7.js';
2
2
  import { useAvailableTags, formatRunVersion, nodeDisplayTitle } from './chunk-TVOXRODW.js';
3
3
  import { executionsControls } from './chunk-FNZZ5JJL.js';
4
4
  import { useFluidGridsPageControls } from './chunk-PJAWNFJV.js';
5
- import { useDurableParityEnabled, throwIfResultError, describeOperationError } from './chunk-OXLYHOSQ.js';
5
+ import { useDurableParityEnabled, throwIfResultError, describeOperationError } from './chunk-EPYTVCYH.js';
6
6
  import { useExecutionsStore } from './chunk-6AMNEX2Y.js';
7
7
  import { SetWorkflowRunVersioningOverrideDocument, WorkflowRunsCountDocument, DurableParityRunFieldsDocument, WorkflowRunPendingDocument, WorkflowRunMetadataDocument } from './chunk-KEYKB4E7.js';
8
8
  import { useTr } from './chunk-UULVIT25.js';
@@ -1,4 +1,4 @@
1
- import { useAgentDefinitions, useAgentDefinitionList, useConnections, describeOperationError } from './chunk-OXLYHOSQ.js';
1
+ import { useAgentDefinitions, useAgentDefinitionList, useConnections, describeOperationError } from './chunk-EPYTVCYH.js';
2
2
  import { useTr } from './chunk-UULVIT25.js';
3
3
  import { useState, useCallback, useEffect } from 'react';
4
4
  import { Icon } from '@iconify/react';
@@ -1,12 +1,13 @@
1
- import { useDurableParityRunFields, useRunMetadata, useRunPending, ExecutionStatusBadge, NodeTimeline, RunLogViewer, setRunVersioningOverride } from './chunk-6YGBRJNV.js';
2
- import { useExecution, useExecutionActions, useAutoRefresh, runChainLinks, shortRunId, callbackTone, parseMetadataDefinition, overrideRequestOf } from './chunk-NVAXIB4O.js';
3
- import { fetchRunFailureClusters, OPEN_STATUSES, dismissRunFailureCluster, BUCKET_LABELS } from './chunk-YQNL73BB.js';
4
- import { useRunPolicyDecisions, RunPolicyDecisions } from './chunk-YBJOZDR6.js';
5
- import { useDurableRunFields, useRunHistory, useDeterminismStatus, useRunStackTrace, EntityTagPicker, RunHistoryView, SignalRunDialog, terminateDurableRun, canSaveRunAsTestCase, useWorkflowProposal, WorkflowProposalCard, MAX_CASE_NAME, saveRunAsTestCase } from './chunk-BWQW6YSJ.js';
1
+ import { useDurableParityRunFields, useRunMetadata, useRunPending, ExecutionStatusBadge, NodeTimeline, RunLogViewer, setRunVersioningOverride } from './chunk-34XK5BC7.js';
2
+ import { useExecution, useExecutionActions, useAutoRefresh, runChainLinks, shortRunId, callbackTone, parseMetadataDefinition, overrideRequestOf } from './chunk-5XQMYHJ7.js';
3
+ import { fetchRunFailureClusters, OPEN_STATUSES, dismissRunFailureCluster, BUCKET_LABELS } from './chunk-NLRQSHRS.js';
4
+ import { useRunPolicyDecisions, RunPolicyDecisions } from './chunk-34HHBNZE.js';
5
+ import { useDurableRunFields, useRunHistory, useDeterminismStatus, useRunStackTrace, EntityTagPicker, RunHistoryView, SignalRunDialog, terminateDurableRun, canSaveRunAsTestCase, useWorkflowProposal, WorkflowProposalCard, MAX_CASE_NAME, saveRunAsTestCase } from './chunk-GMVXPC5N.js';
6
6
  import { buildNodeDisplayMap, formatRunVersion } from './chunk-TVOXRODW.js';
7
7
  import { AiCreditBalanceSlot } from './chunk-Y53CVZVV.js';
8
- import { useWorkflowVersions } from './chunk-E3KE67MX.js';
9
- import { throwIfResultError, useFluidGridsPermission, FLUIDGRIDS_PERMISSIONS, useDurableFunctionNodesEnabled, useDurableParityEnabled, runSignalTargets, canSignalRun, useWorkflowTestsEnabled, SdkPermissionButton, describeOperationError } from './chunk-OXLYHOSQ.js';
8
+ import { useWorkflowVersions } from './chunk-VWFA3RQR.js';
9
+ import { throwIfResultError, useDurableFunctionNodesEnabled, useDurableParityEnabled, runSignalTargets, canSignalRun, useWorkflowTestsEnabled, describeOperationError } from './chunk-EPYTVCYH.js';
10
+ import { useFluidGridsPermission, FLUIDGRIDS_PERMISSIONS, SdkPermissionButton } from './chunk-ZUVFD5KV.js';
10
11
  import { getFluidGridsConfig } from './chunk-6AMNEX2Y.js';
11
12
  import { RunLogsDocument, RunLogAppendedDocument, ExplainRunDocument } from './chunk-KEYKB4E7.js';
12
13
  import { useTr } from './chunk-UULVIT25.js';
@@ -1,5 +1,5 @@
1
1
  import { REPLAY_WORKFLOW_RUN, RETRY_WORKFLOW_RUNS } from './chunk-5ERAJC2I.js';
2
- import { useFluidGridsAnalytics, throwIfResultError, emitRunStarted, openRunQuotaUpgradePrompt } from './chunk-OXLYHOSQ.js';
2
+ import { useFluidGridsAnalytics, throwIfResultError, emitRunStarted, openRunQuotaUpgradePrompt } from './chunk-EPYTVCYH.js';
3
3
  import { useExecutionsStore } from './chunk-6AMNEX2Y.js';
4
4
  import { ExecutionsListDocument, ExecutionDetailDocument, ExecutionStatsDocument, PauseExecutionDocument, ResumeExecutionDocument, CancelExecutionDocument, RetryNodeDocument, TriggerWorkflowDocument, TerminateExecutionDocument } from './chunk-KEYKB4E7.js';
5
5
  import { useTr } from './chunk-UULVIT25.js';
@@ -1,8 +1,9 @@
1
- import { ActionPoliciesTab } from './chunk-YBJOZDR6.js';
2
- import { LogStreamingTab } from './chunk-4OOE56HK.js';
3
- import { AgentsTab } from './chunk-XLAH4NWJ.js';
1
+ import { ActionPoliciesTab } from './chunk-34HHBNZE.js';
2
+ import { LogStreamingTab } from './chunk-PP62ABIG.js';
3
+ import { AgentsTab } from './chunk-35N3PEO6.js';
4
4
  import { FluidGridsDocsLink } from './chunk-4VJ3MDOV.js';
5
- import { useFlowStore, useFluidGridsFlag, FLUIDGRIDS_FLAGS, useSaveStatusStore, useFluidGridsPermission, FLUIDGRIDS_PERMISSIONS, findSaveConflict, useDurableParityEnabled, throwIfResultError, describeOperationError, useConnections } from './chunk-OXLYHOSQ.js';
5
+ import { useFlowStore, useFluidGridsFlag, FLUIDGRIDS_FLAGS, useSaveStatusStore, findSaveConflict, useDurableParityEnabled, throwIfResultError, describeOperationError, useConnections } from './chunk-EPYTVCYH.js';
6
+ import { useFluidGridsPermission, FLUIDGRIDS_PERMISSIONS } from './chunk-ZUVFD5KV.js';
6
7
  import { getGlobalStoreClient } from './chunk-PXIFUMLA.js';
7
8
  import { getFluidGridsConfig } from './chunk-6AMNEX2Y.js';
8
9
  import { useWorkflowDefinitionQuery, useUpdateWorkflowDefinitionMutation, useWorkflowDefinitionsQuery, DurableHistoryCapsDocument, UpdateDurableHistoryCapsDocument } from './chunk-KEYKB4E7.js';
@@ -1,10 +1,11 @@
1
- import { useImportWorkflowTemplate, FlowBuilderPage, useWorkflowTemplates, TEMPLATE_STORE_CATEGORIES, TemplateCard, useTemplateSubmissions, usePublishToStore } from './chunk-VILOIOPD.js';
2
- import { QuotaExhaustedDialog } from './chunk-3B2VD4N4.js';
1
+ import { useImportWorkflowTemplate, FlowBuilderPage, useWorkflowTemplates, TEMPLATE_STORE_CATEGORIES, TemplateCard, useTemplateSubmissions, usePublishToStore } from './chunk-FUYHCONW.js';
2
+ import { QuotaExhaustedDialog } from './chunk-GREPXIXS.js';
3
3
  import { templatesControls } from './chunk-FNZZ5JJL.js';
4
- import { useWorkflowDefinitions, useDuplicateWorkflow, useLazyWorkflowDefinition } from './chunk-E3KE67MX.js';
4
+ import { useWorkflowDefinitions, useDuplicateWorkflow, useLazyWorkflowDefinition } from './chunk-VWFA3RQR.js';
5
5
  import { useFluidGridsPageControls } from './chunk-PJAWNFJV.js';
6
6
  import { FluidGridsDocsLink } from './chunk-4VJ3MDOV.js';
7
- import { BILLING_PLANS_PATH, useFluidGridsAnalytics, emitTemplateUsed, isQuotaExhaustedFailure, SdkPermissionButton, FLUIDGRIDS_PERMISSIONS } from './chunk-OXLYHOSQ.js';
7
+ import { BILLING_PLANS_PATH, useFluidGridsAnalytics, emitTemplateUsed, isQuotaExhaustedFailure } from './chunk-EPYTVCYH.js';
8
+ import { SdkPermissionButton, FLUIDGRIDS_PERMISSIONS } from './chunk-ZUVFD5KV.js';
8
9
  import { useTr } from './chunk-UULVIT25.js';
9
10
  import { useState, useEffect, useCallback, useMemo } from 'react';
10
11
  import { useParams, useNavigate } from 'react-router';
@@ -217,25 +218,35 @@ function TemplatePreview() {
217
218
  template?.description ? /* @__PURE__ */ jsx("span", { className: "block truncate text-xs text-muted-foreground", children: template.description }) : null
218
219
  ] })
219
220
  ] }),
220
- /* @__PURE__ */ jsxs(
221
- Button,
221
+ /* @__PURE__ */ jsx(
222
+ SdkPermissionButton,
222
223
  {
223
- onClick: handleUse,
224
- disabled: importing || !template,
225
- className: "shrink-0 gap-2",
226
- children: [
227
- /* @__PURE__ */ jsx(
228
- Icon,
229
- {
230
- icon: importing ? "svg-spinners:ring-resize" : "mdi:plus",
231
- className: "size-4"
232
- }
233
- ),
234
- tr(
235
- "fluidgrids.pages.templatePreview.useThisTemplate",
236
- "Use this template"
237
- )
238
- ]
224
+ permission: FLUIDGRIDS_PERMISSIONS.WORKFLOW_CREATE,
225
+ deniedTooltip: tr(
226
+ "fluidgrids.templates.useDeniedTooltip",
227
+ "You don't have permission to create workflows from templates"
228
+ ),
229
+ children: /* @__PURE__ */ jsxs(
230
+ Button,
231
+ {
232
+ onClick: handleUse,
233
+ disabled: importing || !template,
234
+ className: "shrink-0 gap-2",
235
+ children: [
236
+ /* @__PURE__ */ jsx(
237
+ Icon,
238
+ {
239
+ icon: importing ? "svg-spinners:ring-resize" : "mdi:plus",
240
+ className: "size-4"
241
+ }
242
+ ),
243
+ tr(
244
+ "fluidgrids.pages.templatePreview.useThisTemplate",
245
+ "Use this template"
246
+ )
247
+ ]
248
+ }
249
+ )
239
250
  }
240
251
  )
241
252
  ] }),
@@ -1,4 +1,4 @@
1
- import { cn as cn$1 } from './chunk-JL7CASN5.js';
1
+ import { SdkPermissionGate, FLUIDGRIDS_PERMISSIONS } from './chunk-ZUVFD5KV.js';
2
2
  import { getGlobalStoreClient, createGlobalStoreClient, setGlobalStoreClient, resetGlobalStoreClient } from './chunk-PXIFUMLA.js';
3
3
  import { getFluidGridsConfig, validateTrustedOrigin, resetFluidGridsExecutionState, setFluidGridsConfig, resetFluidGridsConfig } from './chunk-6AMNEX2Y.js';
4
4
  import { GetMyNodeInstallationsDocument } from './chunk-G77IGC3Y.js';
@@ -6,7 +6,7 @@ import { fetchAllNodeEndpointConfigs, NodeManifestDocument, UpdateWorkflowDefini
6
6
  import { useTr, ENGLISH_FALLBACK_TRANSLATOR, FluidGridsTranslationProvider } from './chunk-UULVIT25.js';
7
7
  import { waitForFluidGridsClient, getFluidGridsClient, getFluidGridsClientSafe, createFluidGridsClient, setFluidGridsClient, resetFluidGridsClient } from './chunk-NTWG3CJX.js';
8
8
  import * as React2 from 'react';
9
- import { forwardRef, useState, useImperativeHandle, useRef, useEffect, useMemo, createContext, memo, useCallback, useContext, useSyncExternalStore, cloneElement } from 'react';
9
+ import { forwardRef, useState, useImperativeHandle, useRef, useEffect, useMemo, createContext, memo, useCallback, useContext, useSyncExternalStore } from 'react';
10
10
  import { useOptionalFeatureFlags } from '@burdenoff/fe-libs/shared/feature-flags';
11
11
  import { CombinedGraphQLErrors, ServerError } from '@apollo/client/errors';
12
12
  import { dispatchUpgradePrompt } from '@burdenoff/fe-libs/shared/components';
@@ -21,7 +21,6 @@ import { Icon } from '@iconify/react';
21
21
  import * as AdaptiveCards from 'adaptivecards';
22
22
  import { gql } from '@apollo/client';
23
23
  import { ProviderIcon, ConnectionDialog } from '@burdenoff/fe-libs/connections';
24
- import * as TooltipPrimitive from '@radix-ui/react-tooltip';
25
24
  import { formatDistanceToNow } from 'date-fns';
26
25
  import { useEventBus } from '@burdenoff/fe-libs/shared/events';
27
26
  import { ApolloProvider } from '@apollo/client/react';
@@ -3717,185 +3716,6 @@ function ConnectionFormDialog({
3717
3716
  }
3718
3717
  );
3719
3718
  }
3720
- var TooltipProvider = TooltipPrimitive.Provider;
3721
- var Tooltip = TooltipPrimitive.Root;
3722
- var TooltipTrigger = TooltipPrimitive.Trigger;
3723
- var TooltipContent = forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(
3724
- TooltipPrimitive.Content,
3725
- {
3726
- ref,
3727
- sideOffset,
3728
- className: cn$1(
3729
- "z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
3730
- className
3731
- ),
3732
- ...props
3733
- }
3734
- ));
3735
- TooltipContent.displayName = TooltipPrimitive.Content.displayName;
3736
- var ALLOW_ALL_PERMISSIONS = {
3737
- hasPermission: () => true,
3738
- isLoading: false,
3739
- enforced: false
3740
- };
3741
- var FluidGridsPermissionsContext = createContext(
3742
- ALLOW_ALL_PERMISSIONS
3743
- );
3744
- function FluidGridsPermissionsProvider({
3745
- hasPermission,
3746
- isLoading = false,
3747
- children
3748
- }) {
3749
- const value = useMemo(
3750
- () => ({ hasPermission, isLoading, enforced: true }),
3751
- [hasPermission, isLoading]
3752
- );
3753
- return /* @__PURE__ */ jsx(FluidGridsPermissionsContext.Provider, { value, children });
3754
- }
3755
- function evaluatePermissionCheck(ctx, permission) {
3756
- const permissions = typeof permission === "string" ? [permission] : permission;
3757
- return {
3758
- allowed: ctx.isLoading ? false : permissions.some((p) => ctx.hasPermission(p)),
3759
- isLoading: ctx.isLoading,
3760
- enforced: ctx.enforced
3761
- };
3762
- }
3763
- function useFluidGridsPermission(permission) {
3764
- return evaluatePermissionCheck(
3765
- useContext(FluidGridsPermissionsContext),
3766
- permission
3767
- );
3768
- }
3769
- var DEFAULT_DENIED_TOOLTIP = "You don't have permission to perform this action";
3770
- function SdkPermissionButton({
3771
- permission,
3772
- deniedBehavior = "disable",
3773
- deniedTooltip = DEFAULT_DENIED_TOOLTIP,
3774
- deniedTooltipClassName,
3775
- children
3776
- }) {
3777
- const { allowed, isLoading } = useFluidGridsPermission(permission);
3778
- if (allowed) return children;
3779
- if (deniedBehavior === "hide") return null;
3780
- const disabledChild = cloneElement(children, {
3781
- disabled: true,
3782
- onClick: void 0
3783
- });
3784
- if (isLoading) return disabledChild;
3785
- return /* @__PURE__ */ jsx(TooltipProvider, { children: /* @__PURE__ */ jsxs(Tooltip, { children: [
3786
- /* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx("span", { className: "inline-flex cursor-not-allowed", children: disabledChild }) }),
3787
- /* @__PURE__ */ jsx(TooltipContent, { className: deniedTooltipClassName, children: deniedTooltip })
3788
- ] }) });
3789
- }
3790
- function SdkPermissionGate({
3791
- permission,
3792
- fallback = null,
3793
- children
3794
- }) {
3795
- const { allowed } = useFluidGridsPermission(permission);
3796
- return /* @__PURE__ */ jsx(Fragment, { children: allowed ? children : fallback });
3797
- }
3798
-
3799
- // src/permissions/constants.ts
3800
- var FLUIDGRIDS_PERMISSIONS = {
3801
- // Workflow resources
3802
- WORKFLOW_LIST: "workflow:list",
3803
- WORKFLOW_READ: "workflow:read",
3804
- WORKFLOW_CREATE: "workflow:create",
3805
- WORKFLOW_UPDATE: "workflow:update",
3806
- WORKFLOW_DELETE: "workflow:delete",
3807
- WORKFLOW_EXECUTE: "workflow:execute",
3808
- /** Activating workflows; also turns failure triage on and off (BOFF-3698). */
3809
- WORKFLOW_PUBLISH: "workflow:publish",
3810
- // Workflow run resources
3811
- WORKFLOW_RUN_LIST: "workflow-run:list",
3812
- WORKFLOW_RUN_READ: "workflow-run:read",
3813
- WORKFLOW_RUN_EXECUTE: "workflow-run:execute",
3814
- /** Terminating a durable-function run (terminateWorkflowRun, BOFF-9905). */
3815
- WORKFLOW_RUN_DELETE: "workflow-run:delete",
3816
- // Node resources
3817
- NODE_LIST: "node:list",
3818
- NODE_READ: "node:read",
3819
- NODE_CREATE: "node:create",
3820
- NODE_DELETE: "node:delete",
3821
- // Node installation resources
3822
- NODE_INSTALLATION_LIST: "node-installation:list",
3823
- NODE_INSTALLATION_READ: "node-installation:read",
3824
- NODE_INSTALLATION_CREATE: "node-installation:create",
3825
- NODE_INSTALLATION_UPDATE: "node-installation:update",
3826
- NODE_INSTALLATION_DELETE: "node-installation:delete",
3827
- // Node endpoint config resources
3828
- NODE_ENDPOINT_CONFIG_LIST: "node-endpoint-config:list",
3829
- NODE_ENDPOINT_CONFIG_READ: "node-endpoint-config:read",
3830
- NODE_ENDPOINT_CONFIG_UPDATE: "node-endpoint-config:update",
3831
- NODE_ENDPOINT_CONFIG_DELETE: "node-endpoint-config:delete",
3832
- // Scheduled job resources
3833
- SCHEDULED_JOB_LIST: "scheduled-job:list",
3834
- SCHEDULED_JOB_READ: "scheduled-job:read",
3835
- SCHEDULED_JOB_CREATE: "scheduled-job:create",
3836
- SCHEDULED_JOB_UPDATE: "scheduled-job:update",
3837
- SCHEDULED_JOB_DELETE: "scheduled-job:delete",
3838
- // AI workflow resources
3839
- AI_WORKFLOW_EXECUTE: "ai-workflow:execute",
3840
- AI_WORKFLOW_CREATE: "ai-workflow:create",
3841
- // Artifact resources
3842
- ARTIFACT_LIST: "artifact:list",
3843
- ARTIFACT_READ: "artifact:read",
3844
- ARTIFACT_DELETE: "artifact:delete",
3845
- // Chat resources
3846
- CHAT_SESSION_LIST: "chat-session:list",
3847
- CHAT_SESSION_READ: "chat-session:read",
3848
- CHAT_SESSION_CREATE: "chat-session:create",
3849
- CHAT_SESSION_DELETE: "chat-session:delete",
3850
- // Submission resources
3851
- SUBMISSION_LIST: "submission:list",
3852
- SUBMISSION_READ: "submission:read",
3853
- SUBMISSION_DELETE: "submission:delete",
3854
- SUBMISSION_EXECUTE: "submission:execute",
3855
- // Event registration resources
3856
- EVENT_REGISTRATION_LIST: "event-registration:list",
3857
- EVENT_REGISTRATION_READ: "event-registration:read",
3858
- EVENT_REGISTRATION_CREATE: "event-registration:create",
3859
- EVENT_REGISTRATION_UPDATE: "event-registration:update",
3860
- EVENT_REGISTRATION_DELETE: "event-registration:delete",
3861
- // Usage resources
3862
- USAGE_LIST: "usage:list",
3863
- USAGE_READ: "usage:read",
3864
- // Dashboard resources
3865
- DASHBOARD_READ: "dashboard:read",
3866
- // System config resources
3867
- SYSTEM_CONFIG_READ: "system-config:read",
3868
- SYSTEM_CONFIG_UPDATE: "system-config:update",
3869
- // Workflow variable resources (BOFF-7517)
3870
- VARIABLE_READ: "workflow-variable:read",
3871
- VARIABLE_CREATE: "workflow-variable:create",
3872
- VARIABLE_UPDATE: "workflow-variable:update",
3873
- VARIABLE_DELETE: "workflow-variable:delete",
3874
- VARIABLE_REVEAL: "workflow-variable:reveal",
3875
- // External secrets provider config resources (BOFF-7517)
3876
- SECRETS_PROVIDER_CONFIG_READ: "secrets-provider-config:read",
3877
- SECRETS_PROVIDER_CONFIG_UPDATE: "secrets-provider-config:update",
3878
- SECRETS_PROVIDER_CONFIG_TEST: "secrets-provider-config:test",
3879
- // Integrations (wspace-integrations-svc)
3880
- INTEGRATION_CONNECTION_CREATE: "integration-connection:create",
3881
- // Self-hosted runners (wspace-sandbox-svc; @rbac resource "sandbox")
3882
- SANDBOX_READ: "sandbox:read",
3883
- SANDBOX_CREATE: "sandbox:create",
3884
- /** Rotating a runner's registration token (rotateSandboxRunnerToken). */
3885
- SANDBOX_UPDATE: "sandbox:update",
3886
- SANDBOX_DELETE: "sandbox:delete",
3887
- // Data tables (wspace-workflow-svc; @rbac resources "data-table" and
3888
- // "data-table-row", BOFF-10105)
3889
- DATA_TABLE_CREATE: "data-table:create",
3890
- DATA_TABLE_UPDATE: "data-table:update",
3891
- DATA_TABLE_DELETE: "data-table:delete",
3892
- DATA_TABLE_ROW_CREATE: "data-table-row:create",
3893
- DATA_TABLE_ROW_UPDATE: "data-table-row:update",
3894
- DATA_TABLE_ROW_DELETE: "data-table-row:delete",
3895
- // AI Agent tool-call approvals (pendingToolApprovals, decideToolApproval)
3896
- TOOL_APPROVAL_REQUEST_READ: "tool-approval-request:read",
3897
- TOOL_APPROVAL_REQUEST_EXECUTE: "tool-approval-request:execute"
3898
- };
3899
3719
  var AGENT_FIELDS = `
3900
3720
  id
3901
3721
  name
@@ -9998,4 +9818,4 @@ function useNodeExecution() {
9998
9818
  };
9999
9819
  }
10000
9820
 
10001
- export { ALLOW_ALL_PERMISSIONS, AUTOSAVE_DEBOUNCE_MS, AUTOSAVE_RETRY_DELAYS_MS, AVAILABLE_NODES, BILLING_PLANS_PATH, BuilderReadOnlyProvider, CODE_WORKFLOW_NODE_TYPE, ConnectionFormDialog, ConnectionSelector, DURABLE_FUNCTION_NODE_TYPES, EDIT_SESSION_ID, ExpressionEditor, FLUIDGRIDS_FLAGS, FLUIDGRIDS_FLAG_DEFAULTS, FLUIDGRIDS_PERMISSIONS, FluidGridsContext, FluidGridsPermissionsProvider, FluidGridsProvider, NODES, NODES_METADATA, NODE_CONFIGS, NODE_OPERATION_DRAG_DATA_FORMAT, NODE_TYPES, NODE_TYPE_DRAG_DATA_FORMAT, NodePropertyPanel, NodeTypeIcon, PHASE_C_FLAGS_OFF, RUNS_QUOTA_NAME, RUN_CONTROL_NODE_TYPES, STICKY_NOTE_TYPE, SdkPermissionButton, SdkPermissionGate, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, WORKFLOWS_QUOTA_NAME, WORKFLOW_TEST_NODE_TYPES, bannerOf, blankWorkflowCreateInput, buildOperationSeed, buildStickyNode, builderPathOf, canAutosave, canRenderOperationPanel, canSignalRun, changedSourceFiles, childRunIdOf, classifyCreateRefusal, clearCodeWorkflowDefinitionCache, codeBuildIdOf, components_default, createConfiguredNode, createThenOpen, declaredOutputFields, declaredSignals, defaultSourcePath, describeOperationError, diagnosticsByPath, editStateOf, emitNodeInstalled, emitRunFailed, emitRunLimitHit, emitRunStarted, emitTemplateUsed, emitUpgradeClicked, emitWorkflowCreated, emitWorkflowLimitHit, emitWorkflowPublished, ensureNodeConfigsLoaded, evaluatePermissionCheck, fieldsFromIO, fieldsFromValue, filterPaletteNodes, findQuotaRefusal, findSaveConflict, forgetSessionForReload, formatParameterValue, getNodeDetail, getNodeMetadata, inAppLeaveTarget, interfaceFields, interfaceHandlers, isDurableFunctionNodeType, isEditableSourcePath, isForbiddenError, isImageIcon, isLocked, isNodeConfigsInitialized, isNodeTrigger, isNodeTypeHiddenFromPalette, isParamVisible, isQuotaExhaustedFailure, isRunControlNodeType, isTriggerOperation, leaseCallQueue, leaveNeedsConfirmation, listCustomBlocks, liveInternalOperations, loadDefinitionJson, mergeStickyNotes, nodeAccent, nodesOf, onNodeTypesUpdate, openRunQuotaUpgradePrompt, parseParameterValue, parseRawSignalPayload, pathToExpression, payloadFromCardValues, phaseAfterAcquire, phaseAfterTakeOver, projectLanguage, readCodeWorkflowState, readDisplayOptions, refetchStoreNodes, registerCustomBlock, registerWorkflowNodeTypes, releasesOnClose, rememberOwnStatusChange, rememberRevision, rememberSessionForReload, resolveInputHandles, resolveNodeOperation, resolveOperationName, resolveOutputHandles, resolvePhaseCFlags, resolveUiSpec, runPreparationOf, runSignalTargets, runTriggerFromMode, saveIndicatorOf, savesInPlace, sessionBeforeReload, shouldReleaseForIdle, signalPayloadCard, snapshotForSave, sourceLanguageOf, stripSubmitActions, structuredParameterType, subscribeWorkflowSaved, synchronizeOperationUpdate, throwIfResultError, tickAction, toCodeMirrorDiagnostics, useAgentDefinitionList, useAgentDefinitions, useBuilderReadOnly, useCodeWorkflowInterface, useConnection, useConnections, useConnectionsByProvider, useCreateConnection, useDurableFunctionNodesEnabled, useDurableParityEnabled, useEditLeaseLocked, useEditLeaseStore, useFlowStore, useFluidGridsAnalytics, useFluidGridsContext, useFluidGridsFlag, useFluidGridsPermission, useInitiateOAuth, useInsertNode, useIsValidConnection, useNodeExecution, useNodeRegistryRevision, usePaletteGates, usePhaseCFlags, useProviders, useSaveStatusStore, useSaveWorkflow, useSelfHostedWorkersEnabled, useWorkflowTestsEnabled, workflowFingerprint };
9821
+ export { AUTOSAVE_DEBOUNCE_MS, AUTOSAVE_RETRY_DELAYS_MS, AVAILABLE_NODES, BILLING_PLANS_PATH, BuilderReadOnlyProvider, CODE_WORKFLOW_NODE_TYPE, ConnectionFormDialog, ConnectionSelector, DURABLE_FUNCTION_NODE_TYPES, EDIT_SESSION_ID, ExpressionEditor, FLUIDGRIDS_FLAGS, FLUIDGRIDS_FLAG_DEFAULTS, FluidGridsContext, FluidGridsProvider, NODES, NODES_METADATA, NODE_CONFIGS, NODE_OPERATION_DRAG_DATA_FORMAT, NODE_TYPES, NODE_TYPE_DRAG_DATA_FORMAT, NodePropertyPanel, NodeTypeIcon, PHASE_C_FLAGS_OFF, RUNS_QUOTA_NAME, RUN_CONTROL_NODE_TYPES, STICKY_NOTE_TYPE, WORKFLOWS_QUOTA_NAME, WORKFLOW_TEST_NODE_TYPES, bannerOf, blankWorkflowCreateInput, buildOperationSeed, buildStickyNode, builderPathOf, canAutosave, canRenderOperationPanel, canSignalRun, changedSourceFiles, childRunIdOf, classifyCreateRefusal, clearCodeWorkflowDefinitionCache, codeBuildIdOf, components_default, createConfiguredNode, createThenOpen, declaredOutputFields, declaredSignals, defaultSourcePath, describeOperationError, diagnosticsByPath, editStateOf, emitNodeInstalled, emitRunFailed, emitRunLimitHit, emitRunStarted, emitTemplateUsed, emitUpgradeClicked, emitWorkflowCreated, emitWorkflowLimitHit, emitWorkflowPublished, ensureNodeConfigsLoaded, fieldsFromIO, fieldsFromValue, filterPaletteNodes, findQuotaRefusal, findSaveConflict, forgetSessionForReload, formatParameterValue, getNodeDetail, getNodeMetadata, inAppLeaveTarget, interfaceFields, interfaceHandlers, isDurableFunctionNodeType, isEditableSourcePath, isForbiddenError, isImageIcon, isLocked, isNodeConfigsInitialized, isNodeTrigger, isNodeTypeHiddenFromPalette, isParamVisible, isQuotaExhaustedFailure, isRunControlNodeType, isTriggerOperation, leaseCallQueue, leaveNeedsConfirmation, listCustomBlocks, liveInternalOperations, loadDefinitionJson, mergeStickyNotes, nodeAccent, nodesOf, onNodeTypesUpdate, openRunQuotaUpgradePrompt, parseParameterValue, parseRawSignalPayload, pathToExpression, payloadFromCardValues, phaseAfterAcquire, phaseAfterTakeOver, projectLanguage, readCodeWorkflowState, readDisplayOptions, refetchStoreNodes, registerCustomBlock, registerWorkflowNodeTypes, releasesOnClose, rememberOwnStatusChange, rememberRevision, rememberSessionForReload, resolveInputHandles, resolveNodeOperation, resolveOperationName, resolveOutputHandles, resolvePhaseCFlags, resolveUiSpec, runPreparationOf, runSignalTargets, runTriggerFromMode, saveIndicatorOf, savesInPlace, sessionBeforeReload, shouldReleaseForIdle, signalPayloadCard, snapshotForSave, sourceLanguageOf, stripSubmitActions, structuredParameterType, subscribeWorkflowSaved, synchronizeOperationUpdate, throwIfResultError, tickAction, toCodeMirrorDiagnostics, useAgentDefinitionList, useAgentDefinitions, useBuilderReadOnly, useCodeWorkflowInterface, useConnection, useConnections, useConnectionsByProvider, useCreateConnection, useDurableFunctionNodesEnabled, useDurableParityEnabled, useEditLeaseLocked, useEditLeaseStore, useFlowStore, useFluidGridsAnalytics, useFluidGridsContext, useFluidGridsFlag, useInitiateOAuth, useInsertNode, useIsValidConnection, useNodeExecution, useNodeRegistryRevision, usePaletteGates, usePhaseCFlags, useProviders, useSaveStatusStore, useSaveWorkflow, useSelfHostedWorkersEnabled, useWorkflowTestsEnabled, workflowFingerprint };
@@ -3,14 +3,15 @@ import { templatePreview } from './chunk-B6CCE2RW.js';
3
3
  import { Input } from './chunk-IEVSFCFS.js';
4
4
  import { Dialog as Dialog$1, DialogContent as DialogContent$1, DialogHeader as DialogHeader$1, DialogTitle as DialogTitle$1, DialogDescription as DialogDescription$1, DialogFooter as DialogFooter$1 } from './chunk-YXMFRQYV.js';
5
5
  import { Badge as Badge$1, Button } from './chunk-BQXVT32O.js';
6
- import { QuotaExhaustedDialog, useWorkflowCodeExport, orderedExportFiles, fileBaseName, downloadWorkflowCodeExport, isLosslessReport, sortFidelityItems, isLossyFidelityItem, lineOfNode } from './chunk-3B2VD4N4.js';
7
- import { emptyTestCaseDraft, EntityTagPicker, useWorkflowProposal, WorkflowProposalCard, useRunHistory, RunHistoryView, SignalRunDialog, readAssertRulesSetting, rowsFromRules, normaliseAssertRules, ruleFromRow, describeAssertRuleProblem, operatorSpec, ASSERT_OPERATORS, emptyAssertRuleRow, useWorkflowTests, pinnedOutputsFromCanvas, enabledCaseIds, isTestRunOpen, MAX_TEST_CASES, draftFromTestCase, testRunSummaryText, testStatusLabel, TEST_STATUS_TONE_CLASS, testStatusTone, MAX_CASE_NAME, nextSortOrder, draftToInput } from './chunk-BWQW6YSJ.js';
6
+ import { QuotaExhaustedDialog, useWorkflowCodeExport, orderedExportFiles, fileBaseName, downloadWorkflowCodeExport, isLosslessReport, sortFidelityItems, isLossyFidelityItem, lineOfNode } from './chunk-GREPXIXS.js';
7
+ import { emptyTestCaseDraft, EntityTagPicker, useWorkflowProposal, WorkflowProposalCard, useRunHistory, RunHistoryView, SignalRunDialog, readAssertRulesSetting, rowsFromRules, normaliseAssertRules, ruleFromRow, describeAssertRuleProblem, operatorSpec, ASSERT_OPERATORS, emptyAssertRuleRow, useWorkflowTests, pinnedOutputsFromCanvas, enabledCaseIds, isTestRunOpen, MAX_TEST_CASES, draftFromTestCase, testRunSummaryText, testStatusLabel, TEST_STATUS_TONE_CLASS, testStatusTone, MAX_CASE_NAME, nextSortOrder, draftToInput } from './chunk-GMVXPC5N.js';
8
8
  import { buildNodeDisplayMap } from './chunk-TVOXRODW.js';
9
9
  import { AiCreditBalanceSlot } from './chunk-Y53CVZVV.js';
10
- import { useRestoreWorkflowVersion, useWorkflowVersions, useActivateWorkflow, useDeleteWorkflow, useLazyWorkflowDefinition, useDeactivateWorkflow } from './chunk-E3KE67MX.js';
11
- import { isAgentNodeType, AgentDefinitionSelectField } from './chunk-XLAH4NWJ.js';
10
+ import { useRestoreWorkflowVersion, useWorkflowVersions, useActivateWorkflow, useDeleteWorkflow, useLazyWorkflowDefinition, useDeactivateWorkflow } from './chunk-VWFA3RQR.js';
11
+ import { isAgentNodeType, AgentDefinitionSelectField } from './chunk-35N3PEO6.js';
12
12
  import { FluidGridsDocsLink } from './chunk-4VJ3MDOV.js';
13
- import { leaseCallQueue, NODE_CONFIGS, createConfiguredNode, resolveOutputHandles, resolveInputHandles, isNodeConfigsInitialized, useFlowStore, getNodeDetail, useSaveStatusStore, isNodeTypeHiddenFromPalette, liveInternalOperations, resolveNodeOperation, readDisplayOptions, parseParameterValue, canAutosave, STICKY_NOTE_TYPE, isNodeTrigger, resolveUiSpec, RUNS_QUOTA_NAME, throwIfResultError, BILLING_PLANS_PATH, emitUpgradeClicked, FluidGridsContext, emitWorkflowCreated, emitTemplateUsed, describeOperationError, ensureNodeConfigsLoaded, useEditLeaseStore, useEditLeaseLocked, registerWorkflowNodeTypes, emitNodeInstalled, useNodeExecution, usePaletteGates, onNodeTypesUpdate, NODE_TYPES, getNodeMetadata, useIsValidConnection, BuilderReadOnlyProvider, refetchStoreNodes, AVAILABLE_NODES, EDIT_SESSION_ID, useFluidGridsPermission, FLUIDGRIDS_PERMISSIONS, useInsertNode, NODE_TYPE_DRAG_DATA_FORMAT, NODE_OPERATION_DRAG_DATA_FORMAT, useDurableFunctionNodesEnabled, CODE_WORKFLOW_NODE_TYPE, SdkPermissionButton, bannerOf, useSaveWorkflow, useBuilderReadOnly, fieldsFromValue, filterPaletteNodes, useFluidGridsAnalytics, sessionBeforeReload, forgetSessionForReload, releasesOnClose, editStateOf, workflowFingerprint, isLocked, buildStickyNode, useNodeRegistryRevision, fieldsFromIO, readCodeWorkflowState, useCodeWorkflowInterface, clearCodeWorkflowDefinitionCache, isParamVisible, ConnectionSelector, structuredParameterType, nodeAccent, NodeTypeIcon, NODES_METADATA, shouldReleaseForIdle, tickAction, rememberSessionForReload, buildOperationSeed, useDurableParityEnabled, useConnections, ConnectionFormDialog, useWorkflowTestsEnabled, useFluidGridsFlag, FLUIDGRIDS_FLAGS, saveIndicatorOf, inAppLeaveTarget, declaredOutputFields, subscribeWorkflowSaved, pathToExpression, diagnosticsByPath, interfaceHandlers, declaredSignals, ExpressionEditor, toCodeMirrorDiagnostics, formatParameterValue, leaveNeedsConfirmation, phaseAfterAcquire, rememberOwnStatusChange, snapshotForSave, childRunIdOf, defaultSourcePath, projectLanguage, changedSourceFiles, isEditableSourcePath, sourceLanguageOf, interfaceFields, isImageIcon, NODES, synchronizeOperationUpdate, NodePropertyPanel, loadDefinitionJson, openRunQuotaUpgradePrompt, isTriggerOperation, canRenderOperationPanel, runPreparationOf, resolveOperationName, savesInPlace, AUTOSAVE_RETRY_DELAYS_MS, AUTOSAVE_DEBOUNCE_MS, rememberRevision, phaseAfterTakeOver } from './chunk-OXLYHOSQ.js';
13
+ import { leaseCallQueue, NODE_CONFIGS, createConfiguredNode, resolveOutputHandles, resolveInputHandles, isNodeConfigsInitialized, useFlowStore, getNodeDetail, useSaveStatusStore, isNodeTypeHiddenFromPalette, liveInternalOperations, resolveNodeOperation, readDisplayOptions, parseParameterValue, canAutosave, STICKY_NOTE_TYPE, isNodeTrigger, resolveUiSpec, RUNS_QUOTA_NAME, throwIfResultError, BILLING_PLANS_PATH, emitUpgradeClicked, FluidGridsContext, emitWorkflowCreated, emitTemplateUsed, describeOperationError, ensureNodeConfigsLoaded, useEditLeaseStore, useEditLeaseLocked, registerWorkflowNodeTypes, emitNodeInstalled, useNodeExecution, usePaletteGates, onNodeTypesUpdate, NODE_TYPES, getNodeMetadata, useIsValidConnection, BuilderReadOnlyProvider, refetchStoreNodes, AVAILABLE_NODES, EDIT_SESSION_ID, useInsertNode, NODE_TYPE_DRAG_DATA_FORMAT, NODE_OPERATION_DRAG_DATA_FORMAT, useDurableFunctionNodesEnabled, CODE_WORKFLOW_NODE_TYPE, bannerOf, useSaveWorkflow, useBuilderReadOnly, fieldsFromValue, filterPaletteNodes, useFluidGridsAnalytics, sessionBeforeReload, forgetSessionForReload, releasesOnClose, editStateOf, workflowFingerprint, isLocked, buildStickyNode, useNodeRegistryRevision, fieldsFromIO, readCodeWorkflowState, useCodeWorkflowInterface, clearCodeWorkflowDefinitionCache, isParamVisible, ConnectionSelector, structuredParameterType, nodeAccent, NodeTypeIcon, NODES_METADATA, shouldReleaseForIdle, tickAction, rememberSessionForReload, buildOperationSeed, useDurableParityEnabled, useConnections, ConnectionFormDialog, useWorkflowTestsEnabled, useFluidGridsFlag, FLUIDGRIDS_FLAGS, saveIndicatorOf, inAppLeaveTarget, declaredOutputFields, subscribeWorkflowSaved, pathToExpression, diagnosticsByPath, interfaceHandlers, declaredSignals, ExpressionEditor, toCodeMirrorDiagnostics, formatParameterValue, leaveNeedsConfirmation, phaseAfterAcquire, rememberOwnStatusChange, snapshotForSave, childRunIdOf, defaultSourcePath, projectLanguage, changedSourceFiles, isEditableSourcePath, sourceLanguageOf, interfaceFields, isImageIcon, NODES, synchronizeOperationUpdate, NodePropertyPanel, loadDefinitionJson, openRunQuotaUpgradePrompt, isTriggerOperation, canRenderOperationPanel, runPreparationOf, resolveOperationName, savesInPlace, AUTOSAVE_RETRY_DELAYS_MS, AUTOSAVE_DEBOUNCE_MS, rememberRevision, phaseAfterTakeOver } from './chunk-EPYTVCYH.js';
14
+ import { SdkPermissionButton, FLUIDGRIDS_PERMISSIONS, useFluidGridsPermission } from './chunk-ZUVFD5KV.js';
14
15
  import { cn } from './chunk-JL7CASN5.js';
15
16
  import { getGlobalStoreClient } from './chunk-PXIFUMLA.js';
16
17
  import { getFluidGridsConfig } from './chunk-6AMNEX2Y.js';
@@ -1943,13 +1944,23 @@ function TemplateCard({
1943
1944
  template.tags.length - 2
1944
1945
  ] })
1945
1946
  ] }),
1946
- /* @__PURE__ */ jsxs(Button, { size: "sm", className: "w-full mt-2", onClick: handleUseTemplate, children: [
1947
- /* @__PURE__ */ jsx(Sparkles, { className: "size-3 mr-1" }),
1948
- tr(
1949
- "fluidgrids.builder.templateCard.useTemplateButton",
1950
- "Use Template"
1951
- )
1952
- ] })
1947
+ /* @__PURE__ */ jsx(
1948
+ SdkPermissionButton,
1949
+ {
1950
+ permission: FLUIDGRIDS_PERMISSIONS.WORKFLOW_CREATE,
1951
+ deniedTooltip: tr(
1952
+ "fluidgrids.templates.useDeniedTooltip",
1953
+ "You don't have permission to create workflows from templates"
1954
+ ),
1955
+ children: /* @__PURE__ */ jsxs(Button, { size: "sm", className: "w-full mt-2", onClick: handleUseTemplate, children: [
1956
+ /* @__PURE__ */ jsx(Sparkles, { className: "size-3 mr-1" }),
1957
+ tr(
1958
+ "fluidgrids.builder.templateCard.useTemplateButton",
1959
+ "Use Template"
1960
+ )
1961
+ ] })
1962
+ }
1963
+ )
1953
1964
  ] })
1954
1965
  ]
1955
1966
  }
@@ -25504,7 +25515,7 @@ function TemplatesGrid({
25504
25515
  ] });
25505
25516
  }
25506
25517
  var LazyTemplateDetailPanel = lazy$1(
25507
- () => import('./TemplateDetailPanel-MTKW3SPM.js').then((m) => ({
25518
+ () => import('./TemplateDetailPanel-WH74G7PF.js').then((m) => ({
25508
25519
  default: m.TemplateDetailPanel
25509
25520
  }))
25510
25521
  );
@@ -1,7 +1,7 @@
1
1
  import { useEntityTags, useTagEntity, useUntagEntity } from './chunk-TVOXRODW.js';
2
2
  import { notifyFluidGridsAiCreditsUpdated } from './chunk-Y53CVZVV.js';
3
3
  import { ErrorType } from './chunk-HQX7JZLY.js';
4
- import { throwIfResultError, describeOperationError, signalPayloadCard, components_default, isForbiddenError, payloadFromCardValues, parseRawSignalPayload } from './chunk-OXLYHOSQ.js';
4
+ import { throwIfResultError, describeOperationError, signalPayloadCard, components_default, isForbiddenError, payloadFromCardValues, parseRawSignalPayload } from './chunk-EPYTVCYH.js';
5
5
  import { getFluidGridsConfig } from './chunk-6AMNEX2Y.js';
6
6
  import { TerminateWorkflowRunDocument, WorkflowRunHistoryDocument, RunEventAppendedDocument, WorkflowProposalDocument, ProposeRunFixDocument, ProposeWorkflowChangeDocument, ApplyWorkflowProposalDocument, RejectWorkflowProposalDocument, CancelWorkflowProposalDocument, WorkflowTestCasesDocument, WorkflowTestRunsDocument, WorkflowTestRunDocument, CreateWorkflowTestCaseDocument, UpdateWorkflowTestCaseDocument, DeleteWorkflowTestCaseDocument, RunWorkflowTestsDocument, CreateWorkflowTestCaseFromRunDocument, DurableRunFieldsDocument, WorkflowRunDeterminismStatusDocument, WorkflowRunStackTraceDocument, SignalWorkflowRunDocument } from './chunk-KEYKB4E7.js';
7
7
  import { useTr } from './chunk-UULVIT25.js';
@@ -1,4 +1,4 @@
1
- import { describeOperationError, useFluidGridsAnalytics, emitWorkflowLimitHit, emitUpgradeClicked, WORKFLOWS_QUOTA_NAME, throwIfResultError } from './chunk-OXLYHOSQ.js';
1
+ import { describeOperationError, useFluidGridsAnalytics, emitWorkflowLimitHit, emitUpgradeClicked, WORKFLOWS_QUOTA_NAME, throwIfResultError } from './chunk-EPYTVCYH.js';
2
2
  import { ExportWorkflowCodeDocument } from './chunk-KEYKB4E7.js';
3
3
  import { useTr } from './chunk-UULVIT25.js';
4
4
  import { getFluidGridsClient } from './chunk-NTWG3CJX.js';
@@ -1,8 +1,8 @@
1
- import { useRunStatusCounts, ExecutionStats, ExecutionFilters, ExecutionTable, ExecutionCards, ExecutionTimeline, Pagination, runStatusLabels } from './chunk-6YGBRJNV.js';
2
- import { useExecutionsWithStore, useExecutionStats, useExecutionActions, useAutoRefresh, WORKFLOW_ID_MAX_LENGTH } from './chunk-NVAXIB4O.js';
3
- import { useWorkflowDefinitions } from './chunk-E3KE67MX.js';
1
+ import { useRunStatusCounts, ExecutionStats, ExecutionFilters, ExecutionTable, ExecutionCards, ExecutionTimeline, Pagination, runStatusLabels } from './chunk-34XK5BC7.js';
2
+ import { useExecutionsWithStore, useExecutionStats, useExecutionActions, useAutoRefresh, WORKFLOW_ID_MAX_LENGTH } from './chunk-5XQMYHJ7.js';
3
+ import { useWorkflowDefinitions } from './chunk-VWFA3RQR.js';
4
4
  import { FluidGridsDocsLink } from './chunk-4VJ3MDOV.js';
5
- import { useDurableParityEnabled } from './chunk-OXLYHOSQ.js';
5
+ import { useDurableParityEnabled } from './chunk-EPYTVCYH.js';
6
6
  import { useExecutionsStore } from './chunk-6AMNEX2Y.js';
7
7
  import { useTr } from './chunk-UULVIT25.js';
8
8
  import { useRef, useCallback, useMemo, useState, useEffect } from 'react';
@@ -1,5 +1,5 @@
1
1
  import { historyControls } from './chunk-FNZZ5JJL.js';
2
- import { useWorkflowDefinitions } from './chunk-E3KE67MX.js';
2
+ import { useWorkflowDefinitions } from './chunk-VWFA3RQR.js';
3
3
  import { useFluidGridsPageControls } from './chunk-PJAWNFJV.js';
4
4
  import { FluidGridsDocsLink } from './chunk-4VJ3MDOV.js';
5
5
  import { getFluidGridsConfig } from './chunk-6AMNEX2Y.js';