@burdenoff/fluidgrids-fe-sdk 2026.1111.21 → 2026.1111.22

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 (62) hide show
  1. package/README.md +13 -0
  2. package/dist/{AiStudioPage-CJdzRL26.js → AiStudioPage-DIfF4LhQ.js} +5 -5
  3. package/dist/{DataSinkDashboardPage-hrwQSvks.js → DataSinkDashboardPage-DDvNPS8Z.js} +1 -1
  4. package/dist/{DataTablesPage-BZy2z0LB.js → DataTablesPage-BpnF13UT.js} +9 -1
  5. package/dist/{ExecutionDetailPage-DKp421Fj.js → ExecutionDetailPage-DYLWtHRG.js} +5 -5
  6. package/dist/{ExecutionsListPage-DwJQfDPt.js → ExecutionsListPage-D63aCXJH.js} +4 -4
  7. package/dist/{FluidGridsProvider-CbY91ZQq.js → FluidGridsProvider-CWyQ8ziM.js} +2 -1
  8. package/dist/{HistoryPage-BLXZJDoJ.js → HistoryPage-CNXgUMb0.js} +1 -1
  9. package/dist/{InsightsPage-ChnoW5U4.js → InsightsPage-Duo83yAM.js} +1 -1
  10. package/dist/{MissingNodesInstallModal-mYFfy9Gg.js → MissingNodesInstallModal-Q3RYBvS8.js} +1 -1
  11. package/dist/{QuotaExhaustedDialog-DWm_YWL7.js → QuotaExhaustedDialog-ChBoJnRo.js} +3 -2
  12. package/dist/{SettingsPage-CXoKX0px.js → SettingsPage-DI_vIG7t.js} +2 -2
  13. package/dist/{TemplateCard-HIMsb47R.js → TemplateCard-6W2q2wiK.js} +4 -3
  14. package/dist/{TemplateConfigurationModal-BNtbJ2fv.js → TemplateConfigurationModal-qNQGP7cm.js} +1 -1
  15. package/dist/{TemplateDetailPanel-C6Zh2WRF.js → TemplateDetailPanel-CQvYqhVO.js} +1 -1
  16. package/dist/{TemplatePreview-_wUMSwh_.js → TemplatePreview-t3251W_n.js} +4 -4
  17. package/dist/{TemplatesPage-DBfL-ao9.js → TemplatesPage-Bvg6R2P9.js} +6 -5
  18. package/dist/{WorkflowBuilder-CYmpQtIQ.js → WorkflowBuilder-C-hgvww2.js} +3 -3
  19. package/dist/{WorkflowBuilder-CMZi6wQE.js → WorkflowBuilder-DdvSGsxr.js} +8 -8
  20. package/dist/{WorkflowSearchRedirect-iWzvY9Qo.js → WorkflowSearchRedirect-33Vs4FKc.js} +1 -1
  21. package/dist/{WorkflowsList-C8aoqtRE.js → WorkflowsList-C3bHLpSv.js} +147 -22
  22. package/dist/agent-tools.js +1 -1
  23. package/dist/{agentTools-CrEWQ5st.js → agentTools-BjhxAdlt.js} +3 -3
  24. package/dist/{canvasNoteTools-6BQYNCee.js → canvasNoteTools-CZEFFhRp.js} +2 -2
  25. package/dist/{code-editor-field-CoRq10k7.js → code-editor-field-CfP0QYUD.js} +1 -1
  26. package/dist/executions.js +2 -2
  27. package/dist/{flow-builder-Dwev-C_g.js → flow-builder-CE8cNXNi.js} +16 -73
  28. package/dist/fluidgridsEvents-Dm5CaHtr.js +162 -0
  29. package/dist/history.js +1 -1
  30. package/dist/{index-6JR2vD9J.d.ts → index-7eJQwsNS.d.ts} +3 -19
  31. package/dist/index.d.ts +2 -1
  32. package/dist/index.js +29 -27
  33. package/dist/{node-detail-view-BFBSKj5w.js → node-detail-view-BoR0vYZ3.js} +5 -5
  34. package/dist/{node-editor-tab-body-Cz9kOlxu.js → node-editor-tab-body-DxMbKspp.js} +2 -2
  35. package/dist/observability.d.ts +1 -1
  36. package/dist/observability.js +2 -2
  37. package/dist/{popover-xPh0iIzy.js → popover-B1aKz7DC.js} +1 -1
  38. package/dist/{quick-config-panel-Ym05lyGn.js → quick-config-panel-DXvLJdeW.js} +3 -3
  39. package/dist/quota-Cdt8yz7N.js +152 -0
  40. package/dist/quota.d.ts +3 -0
  41. package/dist/quota.js +4 -0
  42. package/dist/runsQuota-DsniKiSg.d.ts +20 -0
  43. package/dist/runsQuota-DvXR6mRN.js +100 -0
  44. package/dist/{schedule-panel-54D5W5Qk.js → schedule-panel-CY6S4JMd.js} +5 -5
  45. package/dist/settings.js +1 -1
  46. package/dist/{sidebar-node-editor-LL3ofDN7.js → sidebar-node-editor-FU3fvOjh.js} +3 -3
  47. package/dist/templates.js +2 -2
  48. package/dist/{uiMarkTools-nlmzsHQM.js → uiMarkTools-DZ6akjQK.js} +1 -1
  49. package/dist/useActionParam-B0ebTZmg.js +83 -0
  50. package/dist/{useDurableParity-BScby67i.js → useDurableParity-BApRraSO.js} +1 -1
  51. package/dist/{useExecutions-B0VzQcY2.js → useExecutions-C2a4EcvC.js} +2 -2
  52. package/dist/{useObservability-FfQGgW6W.js → useObservability-BmbeK5bG.js} +2 -2
  53. package/dist/{useRunHistory-BZJg72kd.js → useRunHistory-CqfDFRzr.js} +1 -1
  54. package/dist/{useWorkflowCodeExport-CUWMlJbi.js → useWorkflowCodeExport-DebpM48M.js} +1 -1
  55. package/dist/{useWorkflows-Czz5DlL0.js → useWorkflows-D1-rYzGK.js} +2 -2
  56. package/dist/workflow-builder.js +4 -4
  57. package/dist/workflow-pages.d.ts +1 -1
  58. package/dist/workflow-pages.js +14 -14
  59. package/dist/workflows-list.d.ts +6 -0
  60. package/dist/workflows-list.js +3 -2
  61. package/package.json +5 -1
  62. package/dist/fluidgridsEvents-CNdcrUNN.js +0 -310
package/README.md CHANGED
@@ -345,6 +345,19 @@ with the pages and the main entry.
345
345
  `./flags` carries only the FluidGrids feature flag hooks, for a shell that reads
346
346
  a flag on every page (for example to list a navigation item).
347
347
 
348
+ `./quota` carries only `readRunsQuota` and the `RunsQuota` type, for a host
349
+ surface (a plan or profile popup) that reads the workspace's run allowance
350
+ outside the builder:
351
+
352
+ ```ts
353
+ import {
354
+ readRunsQuota,
355
+ type RunsQuota,
356
+ } from "@burdenoff/fluidgrids-fe-sdk/quota";
357
+
358
+ const quota: RunsQuota | null = await readRunsQuota(apolloClient, workspaceId);
359
+ ```
360
+
348
361
  ## Agent tools (optional)
349
362
 
350
363
  `./agent-tools` carries FluidGrids' AI agent tools (`createFluidGridsAgentTools`)
@@ -1,15 +1,15 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
3
  import { t as ThemeProvider } from "./theme-provider-B3mIuz2d.js";
4
- import { a as useAiWorkflowTemplates, i as enrichDraftNodes, n as AI_DRAFT_MAX_PROMPT_LENGTH, r as draftToCanvas, t as FlowBuilderPage } from "./flow-builder-Dwev-C_g.js";
5
- import { Ot as builderPathOf, kt as classifyCreateRefusal, u as ensureNodeTypesLoaded, z as buildOperationSeed } from "./FluidGridsProvider-CbY91ZQq.js";
4
+ import { a as useAiWorkflowTemplates, i as enrichDraftNodes, n as AI_DRAFT_MAX_PROMPT_LENGTH, r as draftToCanvas, t as FlowBuilderPage } from "./flow-builder-CE8cNXNi.js";
5
+ import { Ot as builderPathOf, kt as classifyCreateRefusal, u as ensureNodeTypesLoaded, z as buildOperationSeed } from "./FluidGridsProvider-CWyQ8ziM.js";
6
6
  import { _ as throwIfResultError, n as getFluidGridsClient } from "./client-C9XSzSXr.js";
7
7
  import { a as notifyFluidGridsAiCreditsUpdated, t as AiCreditBalanceSlot } from "./aiCreditsBridge-BuE92tKo.js";
8
8
  import { Pr as WorkflowGenerationDocument, y as CancelWorkflowGenerationDocument, yt as GenerateWorkflowFromPromptDocument } from "./graphql-operation-types-kX-MMjgW.js";
9
- import { n as useCreateWorkflow } from "./useWorkflows-Czz5DlL0.js";
9
+ import { n as useCreateWorkflow } from "./useWorkflows-D1-rYzGK.js";
10
10
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
11
- import { f as BILLING_PLANS_PATH } from "./fluidgridsEvents-CNdcrUNN.js";
12
- import { T as CreateWorkflowRefusalDialog } from "./useWorkflowCodeExport-CUWMlJbi.js";
11
+ import { t as BILLING_PLANS_PATH } from "./quota-Cdt8yz7N.js";
12
+ import { T as CreateWorkflowRefusalDialog } from "./useWorkflowCodeExport-DebpM48M.js";
13
13
  import { s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-B2lhWNoN.js";
14
14
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
15
15
  import { useNavigate } from "react-router";
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
3
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
4
- import { n as useDataSinks, t as useDataSinkData } from "./useObservability-FfQGgW6W.js";
4
+ import { n as useDataSinks, t as useDataSinkData } from "./useObservability-BmbeK5bG.js";
5
5
  import { s as prettyJson, t as formatBytes } from "./utils-uaL5UVxb.js";
6
6
  import { useEffect, useMemo, useState } from "react";
7
7
  import { Icon } from "@iconify/react";
@@ -5,6 +5,7 @@ import { t as TagFilterSelect } from "./TagFilterSelect-DCBOH6Ou.js";
5
5
  import { _ as throwIfResultError, m as describeOperationError, n as getFluidGridsClient } from "./client-C9XSzSXr.js";
6
6
  import { a as useDataTableTagOverlay, n as tagLabel } from "./useEntityTags-DhnsZcTl.js";
7
7
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
8
+ import { i as useOpenRequest, n as ACTION_PARAM_VALUES, r as useActionParam } from "./useActionParam-B0ebTZmg.js";
8
9
  import { i as SdkPermissionButton, s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-B2lhWNoN.js";
9
10
  import { t as FluidGridsDocsLink } from "./FluidGridsDocsLink-JxkBpOeb.js";
10
11
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
@@ -1356,7 +1357,8 @@ function TableRowsPanel({ table, onTableChanged, onEditTable, onDeleteTable, del
1356
1357
  function DataTablesPage() {
1357
1358
  const tr = useTr();
1358
1359
  const navigate = useNavigate();
1359
- const { allowed: canCreateTable } = useFluidGridsPermission(FLUIDGRIDS_PERMISSIONS.DATA_TABLE_CREATE);
1360
+ const createTablePermission = useFluidGridsPermission(FLUIDGRIDS_PERMISSIONS.DATA_TABLE_CREATE);
1361
+ const canCreateTable = createTablePermission.allowed;
1360
1362
  const [searchInput, setSearchInput] = useState("");
1361
1363
  const [search, setSearch] = useState("");
1362
1364
  const [tagFilter, setTagFilter] = useState("");
@@ -1366,6 +1368,12 @@ function DataTablesPage() {
1366
1368
  const [selectedId, setSelectedId] = useState(null);
1367
1369
  const [tableDialogOpen, setTableDialogOpen] = useState(false);
1368
1370
  const [editingTable, setEditingTable] = useState(null);
1371
+ const newTableRequest = useActionParam(ACTION_PARAM_VALUES.new, createTablePermission);
1372
+ const openCreateTable = useCallback(() => {
1373
+ setEditingTable(null);
1374
+ setTableDialogOpen(true);
1375
+ }, []);
1376
+ useOpenRequest(newTableRequest.requested, openCreateTable, newTableRequest.handled);
1369
1377
  const selectedTable = useMemo(() => tables.find((table) => table.id === selectedId) ?? null, [selectedId, tables]);
1370
1378
  useEffect(() => {
1371
1379
  if (tables.length === 0) {
@@ -1,12 +1,12 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
- import { i as useRunPending, n as useDurableParityRunFields, o as ExecutionStatusBadge, r as useRunMetadata, s as NodeStatusBadge, t as setRunVersioningOverride } from "./useDurableParity-BScby67i.js";
3
+ import { i as useRunPending, n as useDurableParityRunFields, o as ExecutionStatusBadge, r as useRunMetadata, s as NodeStatusBadge, t as setRunVersioningOverride } from "./useDurableParity-BApRraSO.js";
4
4
  import { n as formatRunVersion, r as nodeDisplayTitle, t as buildNodeDisplayMap } from "./run-display-BycKYSU0.js";
5
5
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
6
6
  import { s as isAgentNodeType } from "./agent-form-Bfvm32j1.js";
7
- import { Cn as canSignalRun, I as describeRunError, L as describeRunStep, On as runSignalTargets, Tn as durableInterfaceOf, cn as nodeStateDurationMs, ln as runDurationMs, sn as formatElapsedMs } from "./FluidGridsProvider-CbY91ZQq.js";
7
+ import { Cn as canSignalRun, I as describeRunError, L as describeRunStep, On as runSignalTargets, Tn as durableInterfaceOf, cn as nodeStateDurationMs, ln as runDurationMs, sn as formatElapsedMs } from "./FluidGridsProvider-CWyQ8ziM.js";
8
8
  import { n as useFgAskable, r as useFgAskableSelection } from "./askAboutBridge-BV8m95kk.js";
9
- import { f as callbackTone, g as shortRunId, h as runChainLinks, m as parseMetadataDefinition, n as useExecution, p as overrideRequestOf, r as useExecutionActions, t as useAutoRefresh } from "./useExecutions-B0VzQcY2.js";
9
+ import { f as callbackTone, g as shortRunId, h as runChainLinks, m as parseMetadataDefinition, n as useExecution, p as overrideRequestOf, r as useExecutionActions, t as useAutoRefresh } from "./useExecutions-C2a4EcvC.js";
10
10
  import { _ as throwIfResultError, m as describeOperationError, n as getFluidGridsClient, r as getFluidGridsClientSafe, x as getFluidGridsConfig } from "./client-C9XSzSXr.js";
11
11
  import { Yr as WorkflowRunHierarchyDocument, dn as RunAiUsageDocument, o as AgentStepUpdatedDocument, s as AgentTraceDocument, ut as ExplainRunDocument, xn as RunLogsDocument, yn as RunLogAppendedDocument } from "./graphql-operation-types-kX-MMjgW.js";
12
12
  import { i as SdkPermissionButton, s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-B2lhWNoN.js";
@@ -16,14 +16,14 @@ import { a as encodedPayloadBytes, f as EffectBadge, h as useRunPolicyDecisions,
16
16
  import { n as useWorkflowProposal, o as canSaveRunAsTestCase, r as saveRunAsTestCase, t as WorkflowProposalCard } from "./WorkflowProposalCard-qrEeNyYG.js";
17
17
  import { t as AiCreditBalanceSlot } from "./aiCreditsBridge-BuE92tKo.js";
18
18
  import { a as fetchRunFailureClusters, i as dismissRunFailureCluster, r as OPEN_STATUSES, t as BUCKET_LABELS } from "./FailureTriagePanel-B9hDQymi.js";
19
- import { a as useDurableRunFields, i as useDeterminismStatus, n as SignalRunDialog, o as useRunStackTrace, r as terminateDurableRun, s as RunHistoryView, t as useRunHistory } from "./useRunHistory-BZJg72kd.js";
19
+ import { a as useDurableRunFields, i as useDeterminismStatus, n as SignalRunDialog, o as useRunStackTrace, r as terminateDurableRun, s as RunHistoryView, t as useRunHistory } from "./useRunHistory-CqfDFRzr.js";
20
20
  import { $u as ErrorType, L as AgentStepKind, LF as WorkflowQueryRejectCondition, tI as WorkflowUpdateWaitFor, yP as VersioningBehavior } from "./graphql-types-CDKVWH2R.js";
21
21
  import { a as formatTokens, d as formatMicroUsd, o as modelLabel, r as aiCost } from "./ai-usage-glCwHyQz.js";
22
22
  import { c as useDurableParityEnabled, f as usePhaseCFlags, m as useWorkflowTestsEnabled, s as useDurableFunctionNodesEnabled } from "./feature-flags-DM5myWaD.js";
23
23
  import { A as revokeSignalToken, B as updateActivityOptions, D as resetActivities, E as queryRun, N as sendRunUpdate, O as resetRun, R as unpauseActivities, S as fetchSignalTokens, V as upsertRunSearchAttributes, _ as fetchPauseRules, b as fetchRunUpdate, d as failActivityById, g as fetchCodecServerSettings, i as completeActivityById, k as resetRunToLastCleanTask, s as createSignalToken, v as fetchRunControlFields, w as pauseActivities, y as fetchRunHistoryArchive } from "./api-BrCHB5oA.js";
24
24
  import { a as fetchTaskQueueStats } from "./api-C8e0iV-Q.js";
25
25
  import { a as RUN_CONTROL_DIALOG_STYLE, c as parseJsonInput, i as NativeSelect, l as parseJsonObjectInput, n as JsonBlock, o as StatusPill, r as JsonField, s as newRunControlId, t as FieldError, u as useResource } from "./shared-CMfn30xT.js";
26
- import { v as useWorkflowVersions } from "./useWorkflows-Czz5DlL0.js";
26
+ import { v as useWorkflowVersions } from "./useWorkflows-D1-rYzGK.js";
27
27
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
28
28
  import { Link, useNavigate, useParams, useSearchParams } from "react-router";
29
29
  import { Icon } from "@iconify/react";
@@ -1,17 +1,17 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
3
  import { M as DEFAULT_EXECUTIONS_FILTER, N as useExecutionsStore, m as describeOperationError, n as getFluidGridsClient } from "./client-C9XSzSXr.js";
4
- import { c as OPERATORS_BY_TYPE, i as useExecutionStats, l as buildSearchAttributeFilter, o as useExecutionsWithStore, r as useExecutionActions, s as EMPTY_SEARCH_FILTER, t as useAutoRefresh, u as searchFilterConflicts, y as validateDateRange } from "./useExecutions-B0VzQcY2.js";
4
+ import { c as OPERATORS_BY_TYPE, i as useExecutionStats, l as buildSearchAttributeFilter, o as useExecutionsWithStore, r as useExecutionActions, s as EMPTY_SEARCH_FILTER, t as useAutoRefresh, u as searchFilterConflicts, y as validateDateRange } from "./useExecutions-C2a4EcvC.js";
5
5
  import { c as useDurableParityEnabled, f as usePhaseCFlags } from "./feature-flags-DM5myWaD.js";
6
6
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
7
7
  import { n as useFluidGridsPageControls } from "./pageControlsBridge-0pX9s-3k.js";
8
8
  import { t as executionsControls } from "./pageControlSpecs-DZJ9K37m.js";
9
9
  import { t as TagFilterSelect } from "./TagFilterSelect-DCBOH6Ou.js";
10
- import { a as useRunStatusCounts, c as runStatusLabels, l as RUN_STATUS_CONFIG, o as ExecutionStatusBadge } from "./useDurableParity-BScby67i.js";
10
+ import { a as useRunStatusCounts, c as runStatusLabels, l as RUN_STATUS_CONFIG, o as ExecutionStatusBadge } from "./useDurableParity-BApRraSO.js";
11
11
  import { n as formatRunVersion } from "./run-display-BycKYSU0.js";
12
- import { ln as runDurationMs, sn as formatElapsedMs } from "./FluidGridsProvider-CbY91ZQq.js";
12
+ import { ln as runDurationMs, sn as formatElapsedMs } from "./FluidGridsProvider-CWyQ8ziM.js";
13
13
  import { n as runListLinkKey, t as runListFilterFromSearch } from "./run-list-links-ByYC0OlV.js";
14
- import { h as useWorkflowDefinitions } from "./useWorkflows-Czz5DlL0.js";
14
+ import { h as useWorkflowDefinitions } from "./useWorkflows-D1-rYzGK.js";
15
15
  import { t as FluidGridsDocsLink } from "./FluidGridsDocsLink-JxkBpOeb.js";
16
16
  import { s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-B2lhWNoN.js";
17
17
  import { C as jsonArg, F as startBatchOperation, I as startBatchTerminate, P as startBatchExport, m as fetchBatchOperations, n as cancelBatchOperation, p as fetchBatchOperation, x as fetchSearchAttributes } from "./api-BrCHB5oA.js";
@@ -6,7 +6,8 @@ import { A as nodeAccent, C as nodeAdaptersOf, D as NodeCard, E as resolveOutput
6
6
  import { n as FluidGridsTranslationProvider, r as useTr, t as ENGLISH_FALLBACK_TRANSLATOR } from "./TranslationBridge-Da-TPgQm.js";
7
7
  import { s as useDurableFunctionNodesEnabled } from "./feature-flags-DM5myWaD.js";
8
8
  import { A as CreateWorkflowDefinitionDocument, At as NodePaletteEntriesDocument, Er as WorkflowDefinitionDocument, L as CreateWorkflowVersionDocument, Tn as SaveWorkflowDraftDocument, _n as RunFromNodeDocument, at as ExecuteStepDocument, it as EventRegistrationsDocument, kt as NodeManifestsDocument, ot as ExecutionDetailDocument, qn as TriggerWorkflowDocument, qr as WorkflowRunDocument } from "./graphql-operation-types-kX-MMjgW.js";
9
- import { _ as errorCodesOf, g as collectExtensions, i as emitRunStarted, m as RUNS_QUOTA_NAME, n as emitRunFailed, p as QUOTA_EXHAUSTED_CODE, r as emitRunLimitHit, s as emitWorkflowCreated, v as findQuotaRefusal } from "./fluidgridsEvents-CNdcrUNN.js";
9
+ import { a as collectExtensions, n as QUOTA_EXHAUSTED_CODE, o as errorCodesOf, r as RUNS_QUOTA_NAME, s as findQuotaRefusal } from "./quota-Cdt8yz7N.js";
10
+ import { i as emitRunStarted, n as emitRunFailed, r as emitRunLimitHit, s as emitWorkflowCreated } from "./fluidgridsEvents-Dm5CaHtr.js";
10
11
  import { n as useFgAskable } from "./askAboutBridge-BV8m95kk.js";
11
12
  import { t as fetchAllNodeEndpointConfigs } from "./node-endpoint-configs-B5bjNMDW.js";
12
13
  import { createContext, memo, useCallback, useContext, useEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
- import { d as useRestoreWorkflowVersion, h as useWorkflowDefinitions } from "./useWorkflows-Czz5DlL0.js";
3
+ import { d as useRestoreWorkflowVersion, h as useWorkflowDefinitions } from "./useWorkflows-D1-rYzGK.js";
4
4
  import { i as versionsOfWorkflow, t as VersionDiffDialog } from "./VersionDiffDialog-DSN0mU0f.js";
5
5
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
6
6
  import { x as getFluidGridsConfig } from "./client-C9XSzSXr.js";
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
3
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
4
- import { o as useRunReplayActions, r as useInsightsData } from "./useObservability-FfQGgW6W.js";
4
+ import { o as useRunReplayActions, r as useInsightsData } from "./useObservability-BmbeK5bG.js";
5
5
  import { a as getTopFailingWorkflows, i as getTopFailingNodes, n as formatDuration, o as percentage, r as getFailureBreakdown } from "./utils-uaL5UVxb.js";
6
6
  import { n as FailureTriagePanel } from "./FailureTriagePanel-B9hDQymi.js";
7
7
  import { o as useContinuousOptimisationEnabled } from "./feature-flags-DM5myWaD.js";
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { a as DialogFooter, i as DialogDescription, l as DialogTitle, o as DialogHeader, r as DialogContent, t as Dialog } from "./dialog-Cjb4lB4D.js";
3
3
  import { t as Button } from "./button-DG7y_FVJ.js";
4
- import { r as Badge } from "./TemplateCard-HIMsb47R.js";
4
+ import { r as Badge } from "./TemplateCard-6W2q2wiK.js";
5
5
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
6
6
  import { AlertTriangle, CheckCircle2, Download, ExternalLink, Loader2, Puzzle, ShoppingCart } from "lucide-react";
7
7
 
@@ -1,7 +1,8 @@
1
1
  "use client";
2
2
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
3
- import { gn as useFluidGridsAnalytics } from "./FluidGridsProvider-CbY91ZQq.js";
4
- import { c as emitWorkflowLimitHit, h as WORKFLOWS_QUOTA_NAME, o as emitUpgradeClicked } from "./fluidgridsEvents-CNdcrUNN.js";
3
+ import { gn as useFluidGridsAnalytics } from "./FluidGridsProvider-CWyQ8ziM.js";
4
+ import { c as emitWorkflowLimitHit, o as emitUpgradeClicked } from "./fluidgridsEvents-Dm5CaHtr.js";
5
+ import { i as WORKFLOWS_QUOTA_NAME } from "./quota-Cdt8yz7N.js";
5
6
  import { useEffect, useRef } from "react";
6
7
  import { jsx, jsxs } from "react/jsx-runtime";
7
8
  import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle } from "@burdenoff/fe-libs/ui";
@@ -11,8 +11,8 @@ import { M as saveCodecServerSettings, _ as fetchPauseRules, a as createPauseRul
11
11
  import { i as NativeSelect, o as StatusPill, t as FieldError, u as useResource } from "./shared-CMfn30xT.js";
12
12
  import { KF as WorkflowSearchAttributeType } from "./graphql-types-CDKVWH2R.js";
13
13
  import { H as useFlowStore } from "./node-operation-selection--oy-yEq_.js";
14
- import { Nt as useSaveStatusStore, tn as findSaveConflict } from "./FluidGridsProvider-CbY91ZQq.js";
15
- import { a as useLogStreamDestinations, i as useLogStreamDestinationActions } from "./useObservability-FfQGgW6W.js";
14
+ import { Nt as useSaveStatusStore, tn as findSaveConflict } from "./FluidGridsProvider-CWyQ8ziM.js";
15
+ import { a as useLogStreamDestinations, i as useLogStreamDestinationActions } from "./useObservability-BmbeK5bG.js";
16
16
  import { n as useConnections } from "./useConnections-Cs7LCWEM.js";
17
17
  import { Nt as useUpdateWorkflowDefinitionMutation, Rt as useWorkflowDefinitionQuery, Vt as useWorkflowDefinitionsQuery, n as useAgentDefinitions } from "./useAgentDefinitions-B0dam3_o.js";
18
18
  import { a as formToInput$2, i as emptyAgentForm, n as agentToForm, o as grantDays, r as describeRule, t as AgentFormError } from "./agent-form-Bfvm32j1.js";
@@ -1,9 +1,10 @@
1
1
  "use client";
2
2
  import { _ as throwIfResultError, n as getFluidGridsClient, x as getFluidGridsConfig } from "./client-C9XSzSXr.js";
3
3
  import { i as getGlobalStoreClient } from "./node-registry-refresh-Dy0uRg9f.js";
4
- import { A as StoreNodeProductsByTypeDocument, C as GetMyNodeInstallationsDocument, D as InstallWorkflowNodeDocument, c as ensureInstalledNodeTypesLoaded, d as ensureRegistryNodeTypesLoaded, gn as useFluidGridsAnalytics, i as AVAILABLE_NODES, o as NODE_CONFIGS, t as FluidGridsContext, x as BrowseWorkflowTemplatesDocument } from "./FluidGridsProvider-CbY91ZQq.js";
4
+ import { A as StoreNodeProductsByTypeDocument, C as GetMyNodeInstallationsDocument, D as InstallWorkflowNodeDocument, c as ensureInstalledNodeTypesLoaded, d as ensureRegistryNodeTypesLoaded, gn as useFluidGridsAnalytics, i as AVAILABLE_NODES, o as NODE_CONFIGS, t as FluidGridsContext, x as BrowseWorkflowTemplatesDocument } from "./FluidGridsProvider-CWyQ8ziM.js";
5
5
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
6
- import { a as emitTemplateUsed, s as emitWorkflowCreated, t as emitNodeInstalled, y as isQuotaExhaustedFailure } from "./fluidgridsEvents-CNdcrUNN.js";
6
+ import { c as isQuotaExhaustedFailure } from "./quota-Cdt8yz7N.js";
7
+ import { a as emitTemplateUsed, s as emitWorkflowCreated, t as emitNodeInstalled } from "./fluidgridsEvents-Dm5CaHtr.js";
7
8
  import { t as cn } from "./cn-QqidFIgr.js";
8
9
  import { t as Button } from "./button-DG7y_FVJ.js";
9
10
  import { i as SdkPermissionButton, t as FLUIDGRIDS_PERMISSIONS } from "./constants-B2lhWNoN.js";
@@ -1079,7 +1080,7 @@ async function dismissToastWhenShown(id) {
1079
1080
  }
1080
1081
 
1081
1082
  // src/hooks/store/useTemplateImportFlow.tsx
1082
- const LazyTemplateConfigurationModal = lazy(() => import("./TemplateConfigurationModal-BNtbJ2fv.js").then((m) => ({ default: m.TemplateConfigurationModal })));
1083
+ const LazyTemplateConfigurationModal = lazy(() => import("./TemplateConfigurationModal-qNQGP7cm.js").then((m) => ({ default: m.TemplateConfigurationModal })));
1083
1084
  /**
1084
1085
  * "Use this template", the same everywhere it is offered: the builder's
1085
1086
  * template panel, the Templates page and the template preview page
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { a as DialogFooter, d as Input, i as DialogDescription, l as DialogTitle, o as DialogHeader, r as DialogContent, t as Dialog } from "./dialog-Cjb4lB4D.js";
3
3
  import { t as Button } from "./button-DG7y_FVJ.js";
4
- import { r as Badge } from "./TemplateCard-HIMsb47R.js";
4
+ import { r as Badge } from "./TemplateCard-6W2q2wiK.js";
5
5
  import { t as Label } from "./label-CDy86rIZ.js";
6
6
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
7
7
  import { useEffect, useMemo, useState } from "react";
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { t as Button } from "./button-DG7y_FVJ.js";
3
- import { n as templatePreview, r as Badge } from "./TemplateCard-HIMsb47R.js";
3
+ import { n as templatePreview, r as Badge } from "./TemplateCard-6W2q2wiK.js";
4
4
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
5
5
  import { i as SdkPermissionButton, t as FLUIDGRIDS_PERMISSIONS } from "./constants-B2lhWNoN.js";
6
6
  import { Icon } from "@iconify/react";
@@ -1,12 +1,12 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
3
  import { t as ThemeProvider } from "./theme-provider-B3mIuz2d.js";
4
- import { t as FlowBuilderPage } from "./flow-builder-Dwev-C_g.js";
5
- import { a as useTemplateImportFlow, l as useImportWorkflowTemplate } from "./TemplateCard-HIMsb47R.js";
6
- import { t as QuotaExhaustedDialog } from "./QuotaExhaustedDialog-DWm_YWL7.js";
4
+ import { t as FlowBuilderPage } from "./flow-builder-CE8cNXNi.js";
5
+ import { a as useTemplateImportFlow, l as useImportWorkflowTemplate } from "./TemplateCard-6W2q2wiK.js";
6
+ import { t as QuotaExhaustedDialog } from "./QuotaExhaustedDialog-ChBoJnRo.js";
7
7
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
8
8
  import { i as SdkPermissionButton, t as FLUIDGRIDS_PERMISSIONS } from "./constants-B2lhWNoN.js";
9
- import { f as BILLING_PLANS_PATH } from "./fluidgridsEvents-CNdcrUNN.js";
9
+ import { t as BILLING_PLANS_PATH } from "./quota-Cdt8yz7N.js";
10
10
  import { useEffect, useState } from "react";
11
11
  import { useNavigate, useParams } from "react-router";
12
12
  import { Icon } from "@iconify/react";
@@ -1,15 +1,16 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
- import { h as useWorkflowDefinitions, l as useLazyWorkflowDefinition, s as useDuplicateWorkflow } from "./useWorkflows-Czz5DlL0.js";
4
- import { a as useTemplateImportFlow, t as TemplateCard, u as useWorkflowTemplates, y as useGlobalStoreClient } from "./TemplateCard-HIMsb47R.js";
3
+ import { h as useWorkflowDefinitions, l as useLazyWorkflowDefinition, s as useDuplicateWorkflow } from "./useWorkflows-D1-rYzGK.js";
4
+ import { a as useTemplateImportFlow, t as TemplateCard, u as useWorkflowTemplates, y as useGlobalStoreClient } from "./TemplateCard-6W2q2wiK.js";
5
5
  import { YF as WorkflowStatus } from "./graphql-types-CDKVWH2R.js";
6
6
  import { i as SdkPermissionButton, t as FLUIDGRIDS_PERMISSIONS } from "./constants-B2lhWNoN.js";
7
- import { t as QuotaExhaustedDialog } from "./QuotaExhaustedDialog-DWm_YWL7.js";
7
+ import { t as QuotaExhaustedDialog } from "./QuotaExhaustedDialog-ChBoJnRo.js";
8
8
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
9
- import { O as MyWorkflowTemplateSubmissionsDocument, P as WithdrawWorkflowTemplateSubmissionDocument, gn as useFluidGridsAnalytics, j as SubmitWorkflowTemplateDocument } from "./FluidGridsProvider-CbY91ZQq.js";
10
- import { a as emitTemplateUsed, f as BILLING_PLANS_PATH, y as isQuotaExhaustedFailure } from "./fluidgridsEvents-CNdcrUNN.js";
9
+ import { O as MyWorkflowTemplateSubmissionsDocument, P as WithdrawWorkflowTemplateSubmissionDocument, gn as useFluidGridsAnalytics, j as SubmitWorkflowTemplateDocument } from "./FluidGridsProvider-CWyQ8ziM.js";
10
+ import { a as emitTemplateUsed } from "./fluidgridsEvents-Dm5CaHtr.js";
11
11
  import { n as useFluidGridsPageControls } from "./pageControlsBridge-0pX9s-3k.js";
12
12
  import { r as templatesControls } from "./pageControlSpecs-DZJ9K37m.js";
13
+ import { c as isQuotaExhaustedFailure, t as BILLING_PLANS_PATH } from "./quota-Cdt8yz7N.js";
13
14
  import { t as FluidGridsDocsLink } from "./FluidGridsDocsLink-JxkBpOeb.js";
14
15
  import { _ as throwIfResultError, m as describeOperationError } from "./client-C9XSzSXr.js";
15
16
  import { useCallback, useEffect, useMemo, useState } from "react";
@@ -1,12 +1,12 @@
1
1
  "use client";
2
- import { n as FluidGridsProvider, vn as useCanvasEdges } from "./FluidGridsProvider-CbY91ZQq.js";
2
+ import { n as FluidGridsProvider, vn as useCanvasEdges } from "./FluidGridsProvider-CWyQ8ziM.js";
3
3
  import { H as useFlowStore } from "./node-operation-selection--oy-yEq_.js";
4
4
  import { t as Button } from "./button-DG7y_FVJ.js";
5
5
  import { d as Input } from "./dialog-Cjb4lB4D.js";
6
- import { b as Card } from "./TemplateCard-HIMsb47R.js";
6
+ import { b as Card } from "./TemplateCard-6W2q2wiK.js";
7
7
  import { t as cn } from "./cn-QqidFIgr.js";
8
8
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
9
- import { b as useNodeSelectedEvent, x as FluidGridsMark } from "./flow-builder-Dwev-C_g.js";
9
+ import { _ as useNodeSelectedEvent, v as FluidGridsMark } from "./flow-builder-CE8cNXNi.js";
10
10
  import { useCallback, useEffect, useRef, useState } from "react";
11
11
  import { Background, Controls, Handle, MarkerType, MiniMap, Position, ReactFlow, ReactFlowProvider, useReactFlow } from "@xyflow/react";
12
12
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -1,18 +1,18 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
- import { h as useWorkflowReloadStore, m as releaseLeaseKeptForReload, t as FlowBuilderPage } from "./flow-builder-Dwev-C_g.js";
3
+ import { d as releaseLeaseKeptForReload, f as useWorkflowReloadStore, t as FlowBuilderPage } from "./flow-builder-CE8cNXNi.js";
4
4
  import { n as registerLiveCanvasHandler } from "./liveCanvas-D5ytXDp8.js";
5
5
  import { _ as throwIfResultError, n as getFluidGridsClient, x as getFluidGridsConfig } from "./client-C9XSzSXr.js";
6
6
  import { Er as WorkflowDefinitionDocument } from "./graphql-operation-types-kX-MMjgW.js";
7
7
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
8
- import { B as createConfiguredNode, Dt as blankWorkflowCreateInput, Nt as useSaveStatusStore, Xt as rememberRevision, Z as paramsFromOperation, an as workflowFingerprint, en as codeBuildIdOf, g as registerWorkflowNodeTypes, h as registerNodeManifests, kt as classifyCreateRefusal, m as refetchStoreNodes, mn as resolveNodeOperation, o as NODE_CONFIGS, u as ensureNodeTypesLoaded } from "./FluidGridsProvider-CbY91ZQq.js";
8
+ import { B as createConfiguredNode, Dt as blankWorkflowCreateInput, Nt as useSaveStatusStore, Xt as rememberRevision, Z as paramsFromOperation, an as workflowFingerprint, en as codeBuildIdOf, g as registerWorkflowNodeTypes, h as registerNodeManifests, kt as classifyCreateRefusal, m as refetchStoreNodes, mn as resolveNodeOperation, o as NODE_CONFIGS, u as ensureNodeTypesLoaded } from "./FluidGridsProvider-CWyQ8ziM.js";
9
9
  import { F as mergeStickyNotes, H as useFlowStore } from "./node-operation-selection--oy-yEq_.js";
10
10
  import { t as canvasFromDefinition } from "./definition-canvas--3MPHoP-.js";
11
- import { l as useLazyWorkflowDefinition, n as useCreateWorkflow } from "./useWorkflows-Czz5DlL0.js";
12
- import { c as getWorkflowNodeTypes, o as buildNodeCheck, s as buildRequiredNodeTypes, v as useInstalledNodes } from "./TemplateCard-HIMsb47R.js";
11
+ import { l as useLazyWorkflowDefinition, n as useCreateWorkflow } from "./useWorkflows-D1-rYzGK.js";
12
+ import { c as getWorkflowNodeTypes, o as buildNodeCheck, s as buildRequiredNodeTypes, v as useInstalledNodes } from "./TemplateCard-6W2q2wiK.js";
13
13
  import { c as withoutGuidedTourIntent, l as decideMissingWorkflow, o as isGuidedTourIntent, s as pickGuidedTour, u as isCreateIntent } from "./firstWorkflow-C_h0KMB2.js";
14
- import { f as BILLING_PLANS_PATH } from "./fluidgridsEvents-CNdcrUNN.js";
15
- import { T as CreateWorkflowRefusalDialog } from "./useWorkflowCodeExport-CUWMlJbi.js";
14
+ import { t as BILLING_PLANS_PATH } from "./quota-Cdt8yz7N.js";
15
+ import { T as CreateWorkflowRefusalDialog } from "./useWorkflowCodeExport-DebpM48M.js";
16
16
  import { Suspense, lazy, useCallback, useEffect, useMemo, useRef, useState } from "react";
17
17
  import { useLocation, useNavigate, useParams } from "react-router";
18
18
  import { Icon } from "@iconify/react";
@@ -1088,7 +1088,7 @@ function GuidedTourStarter({ ready }) {
1088
1088
  }
1089
1089
 
1090
1090
  // src/builder/app/workflow/work/page.tsx
1091
- const LazyMissingNodesInstallModal = lazy(() => import("./MissingNodesInstallModal-mYFfy9Gg.js").then((m) => ({ default: m.MissingNodesInstallModal })));
1091
+ const LazyMissingNodesInstallModal = lazy(() => import("./MissingNodesInstallModal-Q3RYBvS8.js").then((m) => ({ default: m.MissingNodesInstallModal })));
1092
1092
  function WorkflowItem({ readonly = false }) {
1093
1093
  if (readonly) {
1094
1094
  const queryParams = new URLSearchParams(window.location.search);
@@ -1160,7 +1160,7 @@ function WorkflowItem({ readonly = false }) {
1160
1160
  setInstallErrors([]);
1161
1161
  try {
1162
1162
  const { getGlobalStoreClient } = await import("./node-registry-refresh-Dy0uRg9f.js").then((n) => n.a);
1163
- const { InstallWorkflowNodeDocument } = await import("./FluidGridsProvider-CbY91ZQq.js").then((n) => n.y);
1163
+ const { InstallWorkflowNodeDocument } = await import("./FluidGridsProvider-CWyQ8ziM.js").then((n) => n.y);
1164
1164
  const { getFluidGridsConfig } = await import("./client-C9XSzSXr.js").then((n) => n.b);
1165
1165
  const storeClient = getGlobalStoreClient();
1166
1166
  const cfg = getFluidGridsConfig();
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
- import { m as useWorkflowDefinition } from "./useWorkflows-Czz5DlL0.js";
3
+ import { m as useWorkflowDefinition } from "./useWorkflows-D1-rYzGK.js";
4
4
  import { Navigate, useParams } from "react-router";
5
5
  import { Icon } from "@iconify/react";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";