@burdenoff/fluidgrids-fe-sdk 2026.1113.2 → 2026.1113.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/{AiStudioPage-5KYZ8r8-.js → AiStudioPage-DmgLQG62.js} +4 -4
  2. package/dist/{DataSinkDashboardPage-8ZDn85e2.js → DataSinkDashboardPage-iBalc66y.js} +1 -1
  3. package/dist/{ExecutionDetailPage-BXDF2eoT.js → ExecutionDetailPage-D1E_Rf3U.js} +9 -9
  4. package/dist/{ExecutionsListPage--4BthM8L.js → ExecutionsListPage-LsqVMwck.js} +6 -6
  5. package/dist/{FailureTriagePanel-B5WCSRFo.js → FailureTriagePanel-CM-vmvbA.js} +1 -1
  6. package/dist/{FluidGridsProvider-Dc_Jhtch.js → FluidGridsProvider-BgP5c-hH.js} +33 -4
  7. package/dist/{HistoryPage-BvFk2m1m.js → HistoryPage-BTAkQ7O1.js} +1 -1
  8. package/dist/{InsightsPage-Dwmb02F6.js → InsightsPage-CVSoyuat.js} +5 -5
  9. package/dist/{OpenTemplateAsCodeButton-8MZHih6I.js → OpenTemplateAsCodeButton-BdcTxemq.js} +1 -1
  10. package/dist/{PaidTemplateConfirm-0G-gv29n.js → PaidTemplateConfirm-DfFrr1pk.js} +1 -1
  11. package/dist/{QuotaExhaustedDialog-wvu_-WJ-.js → QuotaExhaustedDialog-BHZm4tQy.js} +1 -1
  12. package/dist/{SettingsPage-CfjXiGpb.js → SettingsPage-DPWog4BR.js} +108 -4
  13. package/dist/{TaskQueuesPage--Mmn36b-.js → TaskQueuesPage-BwnNad_J.js} +1 -1
  14. package/dist/{TemplateCard-BA_9em22.js → TemplateCard-trfaDJLe.js} +4 -4
  15. package/dist/{TemplateConfigurationModal-BT3PaR0O.js → TemplateConfigurationModal-CxUEsjbr.js} +1 -1
  16. package/dist/{TemplatePreview-Bagja6WN.js → TemplatePreview-BuEMVZiI.js} +5 -5
  17. package/dist/{TemplatesPage-CAajpJ5w.js → TemplatesPage-UISz_6vU.js} +7 -7
  18. package/dist/{WorkflowBuilder-v8h8skwG.js → WorkflowBuilder-Cmj59UU-.js} +3 -3
  19. package/dist/{WorkflowBuilder-DMpSPElu.js → WorkflowBuilder-nnSlI7Fd.js} +5 -5
  20. package/dist/{WorkflowSearchRedirect-G78lINAE.js → WorkflowSearchRedirect-pEIU2nvw.js} +1 -1
  21. package/dist/{WorkflowShareDialog-B7VOgr4-.js → WorkflowShareDialog-BcfzZDOj.js} +1 -1
  22. package/dist/{WorkflowVersionsDocument-CfPMloRW.js → WorkflowVersionsDocument-DRVOp8Uj.js} +18 -0
  23. package/dist/{WorkflowsList-CPYzfE4K.js → WorkflowsList-B6ASopzn.js} +129 -16
  24. package/dist/{agentTools-DTXUqtfu.js → agentTools-7CFfwySg.js} +1 -1
  25. package/dist/{ai-usage-bmUn-gJP.js → ai-usage-D7SjIkUZ.js} +1 -1
  26. package/dist/{assert-rules-CPNrO44K.js → assert-rules-C5739QR0.js} +1 -1
  27. package/dist/{canvasNoteTools-DmfZwtnL.js → canvasNoteTools-BikeF-pN.js} +1 -1
  28. package/dist/executions.js +2 -2
  29. package/dist/{flow-builder-Dv5fWJ6F.js → flow-builder-CksAvhgV.js} +45 -22
  30. package/dist/{graphql-types-v6CTGwA0.js → graphql-types-C5Tr6508.js} +35 -1
  31. package/dist/history.js +1 -1
  32. package/dist/{index-DtMUtXNq.d.ts → index-Df6NgmmH.d.ts} +18 -2
  33. package/dist/{index-f_Nl7Ons.d.ts → index-RWAuYE2j.d.ts} +3 -0
  34. package/dist/index.d.ts +3 -3
  35. package/dist/index.js +34 -34
  36. package/dist/{node-detail-view-BKI_2kM6.js → node-detail-view-BgmxkGJe.js} +5 -5
  37. package/dist/{node-editor-tab-body-Cc1MWEFR.js → node-editor-tab-body-2Y-lqY4_.js} +2 -2
  38. package/dist/observability.d.ts +1 -1
  39. package/dist/observability.js +2 -2
  40. package/dist/{popover-DDv7J1Kl.js → popover-DL7fSPgH.js} +2 -2
  41. package/dist/{quick-config-panel-BPCRfqWI.js → quick-config-panel-nmIRDTFB.js} +3 -3
  42. package/dist/{run-list-links-eUhZB1ju.js → run-list-links-DZ8Q5l35.js} +1 -1
  43. package/dist/run-mode-BMxym0mD.js +82 -0
  44. package/dist/{schedule-panel-C1KwfLCE.js → schedule-panel-Bk5MJumG.js} +6 -6
  45. package/dist/settings.js +1 -1
  46. package/dist/{sidebar-node-editor-d9Rlq5pU.js → sidebar-node-editor-BnUjER8A.js} +3 -3
  47. package/dist/{template-code-dqRunGOv.js → template-code-CobAYaeH.js} +1 -1
  48. package/dist/templates.js +2 -2
  49. package/dist/{useAgentDefinitions-ZKX2N9aP.js → useAgentDefinitions-BmyWUoyo.js} +2 -2
  50. package/dist/{useDurableParity-BgLH_SCF.js → useDurableParity-AowXKgBZ.js} +1 -1
  51. package/dist/{useExecutions-Bm7q_UwN.js → useExecutions-BemEN_Zb.js} +2 -2
  52. package/dist/{useGlobalStoreClient-DMTrywdX.js → useGlobalStoreClient-BmjWfAjc.js} +1 -1
  53. package/dist/{useObservability-DPATdbw7.js → useObservability-BGrwZS5X.js} +1 -1
  54. package/dist/{useRunHistory-CGfjCsJ3.js → useRunHistory-GzyLco45.js} +2 -2
  55. package/dist/{useWorkflowCodeExport-D_mCuhKP.js → useWorkflowCodeExport-ej7y3Gi3.js} +3 -3
  56. package/dist/{useWorkflowProposal-Bh2_qjmM.js → useWorkflowProposal-UtJYycLv.js} +2 -2
  57. package/dist/{useWorkflows-aqVD7kGa.js → useWorkflows-DwDzP-AD.js} +2 -2
  58. package/dist/workflow-builder.d.ts +1 -1
  59. package/dist/workflow-builder.js +4 -4
  60. package/dist/{workflow-code-transfer-5C0HUzae.js → workflow-code-transfer-Dbnvw5fc.js} +1 -1
  61. package/dist/workflow-pages.d.ts +2 -2
  62. package/dist/workflow-pages.js +14 -14
  63. package/dist/workflows-list.js +1 -1
  64. package/package.json +1 -1
@@ -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-Dv5fWJ6F.js";
5
- import { T as buildOperationSeed, ht as classifyCreateRefusal, mt as builderPathOf, u as ensureNodeTypesLoaded } from "./FluidGridsProvider-Dc_Jhtch.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-CksAvhgV.js";
5
+ import { T as buildOperationSeed, ht as classifyCreateRefusal, mt as builderPathOf, u as ensureNodeTypesLoaded } from "./FluidGridsProvider-BgP5c-hH.js";
6
6
  import { n as getFluidGridsClient } from "./client-Ctl4jmY3.js";
7
7
  import { o as throwIfResultError } from "./errors-xPZ-IbQd.js";
8
8
  import { a as notifyFluidGridsAiCreditsUpdated, t as AiCreditBalanceSlot } from "./aiCreditsBridge-BuE92tKo.js";
9
- import { n as useCreateWorkflow } from "./useWorkflows-aqVD7kGa.js";
9
+ import { n as useCreateWorkflow } from "./useWorkflows-DwDzP-AD.js";
10
10
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
11
11
  import { t as BILLING_PLANS_PATH } from "./quota-Cdt8yz7N.js";
12
- import { c as CreateWorkflowRefusalDialog } from "./useWorkflowCodeExport-D_mCuhKP.js";
12
+ import { c as CreateWorkflowRefusalDialog } from "./useWorkflowCodeExport-ej7y3Gi3.js";
13
13
  import { s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-dcxg6zG6.js";
14
14
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
15
15
  import { useNavigate } from "react-router";
@@ -2,7 +2,7 @@
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
3
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
4
4
  import { n as useNavigationV2 } from "./useNavigationV2-C2WeqN7d.js";
5
- import { n as useDataSinks, t as useDataSinkData } from "./useObservability-DPATdbw7.js";
5
+ import { n as useDataSinks, t as useDataSinkData } from "./useObservability-BGrwZS5X.js";
6
6
  import { c as prettyJson, r as formatTimestamp, t as formatBytes } from "./utils-C0dtnN4R.js";
7
7
  import { useEffect, useMemo, useState } from "react";
8
8
  import { Icon } from "@iconify/react";
@@ -1,14 +1,14 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
- import { c as errorAdvice, d as NodeStatusBadge, i as useRunPending, l as needsReconnect, n as useDurableParityRunFields, o as ConfirmStopRunDialog, r as useRunMetadata, t as setRunVersioningOverride, u as ExecutionStatusBadge } from "./useDurableParity-BgLH_SCF.js";
3
+ import { c as errorAdvice, d as NodeStatusBadge, i as useRunPending, l as needsReconnect, n as useDurableParityRunFields, o as ConfirmStopRunDialog, r as useRunMetadata, t as setRunVersioningOverride, u as ExecutionStatusBadge } from "./useDurableParity-AowXKgBZ.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 { c as RunLogAppendedDocument, l as RunLogsDocument, s as isAgentNodeType } from "./agent-form-D0uLvzx4.js";
7
- import { C as describeRunStep, S as describeRunError, Xt as nodeStateDurationMs, Yt as formatElapsedMs, Zt as runDurationMs, dn as canSignalRun, gn as runSignalTargets, pn as durableInterfaceOf } from "./FluidGridsProvider-Dc_Jhtch.js";
7
+ import { C as describeRunStep, S as describeRunError, Xt as nodeStateDurationMs, Yt as formatElapsedMs, Zt as runDurationMs, dn as canSignalRun, gn as runSignalTargets, pn as durableInterfaceOf } from "./FluidGridsProvider-BgP5c-hH.js";
8
8
  import { n as useFgAskable, r as useFgAskableSelection } from "./askAboutBridge-BV8m95kk.js";
9
9
  import { n as useNavigationV2 } from "./useNavigationV2-C2WeqN7d.js";
10
10
  import { t as TechnicalDetails } from "./TechnicalDetails-D4xGy201.js";
11
- import { _ as shortRunId, g as runChainLinks, h as parseMetadataDefinition, m as overrideRequestOf, n as useExecution, p as callbackTone, r as useExecutionActions, s as buildRetryTriggerInput, t as useAutoRefresh } from "./useExecutions-Bm7q_UwN.js";
11
+ import { _ as shortRunId, g as runChainLinks, h as parseMetadataDefinition, m as overrideRequestOf, n as useExecution, p as callbackTone, r as useExecutionActions, s as buildRetryTriggerInput, t as useAutoRefresh } from "./useExecutions-BemEN_Zb.js";
12
12
  import { t as RunActionsMenu } from "./RunActionsMenu-BE_1r3bF.js";
13
13
  import { n as getFluidGridsClient, r as getFluidGridsClientSafe } from "./client-Ctl4jmY3.js";
14
14
  import { o as throwIfResultError, t as describeOperationError } from "./errors-xPZ-IbQd.js";
@@ -18,18 +18,18 @@ import { t as EntityTagPicker } from "./EntityTagPicker-BppBSEJk.js";
18
18
  import { a as useRecipientLabel, n as ApprovalApprovers, t as channelLabel } from "./channel-DtF1n_ab.js";
19
19
  import { r as useRunHumanRequests } from "./useHumanRequests-DwG2tQ3f.js";
20
20
  import { a as encodedPayloadBytes, f as EffectBadge, h as useRunPolicyDecisions, i as decodePayloads, l as formatBudgetUsd, n as checkCodecServerUrl, o as isEncodedPayload, r as containsEncodedPayload, t as CodecServerError } from "./codec-client-CAYl6j46.js";
21
- import { _ as agentLiveReplyState, a as canSaveRunAsTestCase, g as useAgentTokenStream, n as saveRunAsTestCase, t as useWorkflowProposal, v as agentTokenStreamsFor } from "./useWorkflowProposal-Bh2_qjmM.js";
21
+ import { _ as agentLiveReplyState, a as canSaveRunAsTestCase, g as useAgentTokenStream, n as saveRunAsTestCase, t as useWorkflowProposal, v as agentTokenStreamsFor } from "./useWorkflowProposal-UtJYycLv.js";
22
22
  import { t as WorkflowProposalCard } from "./WorkflowProposalCard-zCdUpCk8.js";
23
23
  import { t as AiCreditBalanceSlot } from "./aiCreditsBridge-BuE92tKo.js";
24
- import { a as fetchRunFailureClusters, i as dismissRunFailureCluster, r as OPEN_STATUSES, t as BUCKET_LABELS } from "./FailureTriagePanel-B5WCSRFo.js";
25
- import { a as useDurableRunFields, i as useDeterminismStatus, n as SignalRunDialog, o as useRunStackTrace, r as terminateDurableRun, s as RunHistoryView, t as useRunHistory } from "./useRunHistory-CGfjCsJ3.js";
26
- import { $P as VersioningBehavior, FI as WorkflowUpdateWaitFor, L as AgentStepKind, _I as WorkflowQueryRejectCondition, jd as ErrorType } from "./graphql-types-v6CTGwA0.js";
27
- import { a as formatTokens, d as formatMicroUsd, o as modelLabel, r as aiCost } from "./ai-usage-bmUn-gJP.js";
24
+ import { a as fetchRunFailureClusters, i as dismissRunFailureCluster, r as OPEN_STATUSES, t as BUCKET_LABELS } from "./FailureTriagePanel-CM-vmvbA.js";
25
+ import { a as useDurableRunFields, i as useDeterminismStatus, n as SignalRunDialog, o as useRunStackTrace, r as terminateDurableRun, s as RunHistoryView, t as useRunHistory } from "./useRunHistory-GzyLco45.js";
26
+ import { $P as VersioningBehavior, L as AgentStepKind, LI as WorkflowUpdateWaitFor, jd as ErrorType, yI as WorkflowQueryRejectCondition } from "./graphql-types-C5Tr6508.js";
27
+ import { a as formatTokens, d as formatMicroUsd, o as modelLabel, r as aiCost } from "./ai-usage-D7SjIkUZ.js";
28
28
  import { _ as useWorkflowTestsEnabled, l as useDurableFunctionNodesEnabled, m as usePhaseCFlags, u as useDurableParityEnabled } from "./feature-flags-B_b8PJ6Z.js";
29
29
  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-BqA-f-AD.js";
30
30
  import { a as fetchTaskQueueStats } from "./api-BZVyX5d2.js";
31
31
  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-Ctl9ZHo1.js";
32
- import { v as useWorkflowVersions } from "./useWorkflows-aqVD7kGa.js";
32
+ import { v as useWorkflowVersions } from "./useWorkflows-DwDzP-AD.js";
33
33
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
34
34
  import { Link, useNavigate, useParams, useSearchParams } from "react-router";
35
35
  import { Icon } from "@iconify/react";
@@ -1,29 +1,29 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
3
  import { g as useExecutionsStore, h as DEFAULT_EXECUTIONS_FILTER } from "./config-X97zrIvn.js";
4
- import { b as validateDateRange, c as EMPTY_SEARCH_FILTER, d as searchFilterConflicts, i as useExecutionStats, l as OPERATORS_BY_TYPE, o as useExecutionsWithStore, r as useExecutionActions, t as useAutoRefresh, u as buildSearchAttributeFilter } from "./useExecutions-Bm7q_UwN.js";
4
+ import { b as validateDateRange, c as EMPTY_SEARCH_FILTER, d as searchFilterConflicts, i as useExecutionStats, l as OPERATORS_BY_TYPE, o as useExecutionsWithStore, r as useExecutionActions, t as useAutoRefresh, u as buildSearchAttributeFilter } from "./useExecutions-BemEN_Zb.js";
5
5
  import { m as usePhaseCFlags, u as useDurableParityEnabled } from "./feature-flags-B_b8PJ6Z.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-CAShgvbS.js";
10
10
  import { n as useNavigationV2 } from "./useNavigationV2-C2WeqN7d.js";
11
- import { a as useRunStatusCounts, c as errorAdvice, f as runStatusLabels, o as ConfirmStopRunDialog, p as RUN_STATUS_CONFIG, s as ADVICE_ERROR_TYPES, u as ExecutionStatusBadge } from "./useDurableParity-BgLH_SCF.js";
11
+ import { a as useRunStatusCounts, c as errorAdvice, f as runStatusLabels, o as ConfirmStopRunDialog, p as RUN_STATUS_CONFIG, s as ADVICE_ERROR_TYPES, u as ExecutionStatusBadge } from "./useDurableParity-AowXKgBZ.js";
12
12
  import { t as Disclosure } from "./Disclosure-DQiUKrqd.js";
13
13
  import { n as formatRunVersion } from "./run-display-BycKYSU0.js";
14
- import { Yt as formatElapsedMs, Zt as runDurationMs } from "./FluidGridsProvider-Dc_Jhtch.js";
14
+ import { Yt as formatElapsedMs, Zt as runDurationMs } from "./FluidGridsProvider-BgP5c-hH.js";
15
15
  import { r as useRunHumanRequests } from "./useHumanRequests-DwG2tQ3f.js";
16
- import { n as runListLinkKey, t as runListFilterFromSearch } from "./run-list-links-eUhZB1ju.js";
16
+ import { n as runListLinkKey, t as runListFilterFromSearch } from "./run-list-links-DZ8Q5l35.js";
17
17
  import { t as TechnicalDetails } from "./TechnicalDetails-D4xGy201.js";
18
18
  import { t as RunActionsMenu } from "./RunActionsMenu-BE_1r3bF.js";
19
- import { h as useWorkflowDefinitions } from "./useWorkflows-aqVD7kGa.js";
19
+ import { h as useWorkflowDefinitions } from "./useWorkflows-DwDzP-AD.js";
20
20
  import { t as FluidGridsDocsLink } from "./FluidGridsDocsLink-JxkBpOeb.js";
21
21
  import { s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-dcxg6zG6.js";
22
22
  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-BqA-f-AD.js";
23
23
  import { a as RUN_CONTROL_DIALOG_STYLE, c as parseJsonInput, i as NativeSelect, o as StatusPill, r as JsonField, t as FieldError, u as useResource } from "./shared-Ctl9ZHo1.js";
24
24
  import { t as describeOperationError } from "./errors-xPZ-IbQd.js";
25
25
  import { n as getFluidGridsClient } from "./client-Ctl4jmY3.js";
26
- import { $F as WorkflowBatchOperationType, vI as WorkflowResetType } from "./graphql-types-v6CTGwA0.js";
26
+ import { bI as WorkflowResetType, eI as WorkflowBatchOperationType } from "./graphql-types-C5Tr6508.js";
27
27
  import { Fragment, useCallback, useEffect, useMemo, useRef, useState } from "react";
28
28
  import { useNavigate, useSearchParams } from "react-router";
29
29
  import { Icon } from "@iconify/react";
@@ -2,7 +2,7 @@
2
2
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
3
3
  import { n as getFluidGridsClient } from "./client-Ctl4jmY3.js";
4
4
  import { o as throwIfResultError } from "./errors-xPZ-IbQd.js";
5
- import { qD as RunFailureClusterStatus } from "./graphql-types-v6CTGwA0.js";
5
+ import { qD as RunFailureClusterStatus } from "./graphql-types-C5Tr6508.js";
6
6
  import { useCallback, useEffect, useState } from "react";
7
7
  import { Icon } from "@iconify/react";
8
8
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -4681,6 +4681,8 @@ var RunNodeDetailsLoader = class {
4681
4681
  this.attempts.set(id, attempts);
4682
4682
  return attempts < MAX_DETAIL_ATTEMPTS;
4683
4683
  });
4684
+ const givenUp = ids.filter((id) => !retry.includes(id));
4685
+ if (givenUp.length > 0) this.options.onGiveUp?.(runId, givenUp);
4684
4686
  if (retry.length === 0) return;
4685
4687
  (this.options.schedule ?? ((callback, ms) => {
4686
4688
  setTimeout(callback, ms);
@@ -4763,6 +4765,12 @@ function useNodeExecution() {
4763
4765
  /** Node id → the node state whose status and details the builder shows. */
4764
4766
  const shownNodeStatesRef = useRef(/* @__PURE__ */ new Map());
4765
4767
  /**
4768
+ * Log line id → `<node state id>:<status>` of the details last put on it
4769
+ * (BOFF-9938), so a status change the details already answered for does
4770
+ * not mark the line loading again (the loader would not read it twice).
4771
+ */
4772
+ const appliedDetailsRef = useRef(/* @__PURE__ */ new Map());
4773
+ /**
4766
4774
  * Puts a details read's inputs and outputs on the run's log lines. Item
4767
4775
  * counts on the canvas come from a completed node's output.
4768
4776
  */
@@ -4775,14 +4783,30 @@ function useNodeExecution() {
4775
4783
  const logId = `${runId}-${detail.nodeId}`;
4776
4784
  const log = logsById.get(logId);
4777
4785
  if (!log) continue;
4786
+ appliedDetailsRef.current.set(logId, `${detail.id}:${toRunLogStatus(detail.status)}`);
4778
4787
  actions.execution.updateLog(logId, {
4779
4788
  inputArgs: detail.inputArgs ?? log.inputArgs,
4780
4789
  output: detail.output ?? log.output,
4781
- error: detail.error ?? log.error
4790
+ error: detail.error ?? log.error,
4791
+ ...toRunLogStatus(detail.status) === log.status ? { outputState: "loaded" } : {}
4782
4792
  });
4783
4793
  if (toRunLogStatus(detail.status) === "completed" && detail.output) actions.execution.setNodeItemCount(detail.nodeId, calculateItemCount(detail.output));
4784
4794
  }
4785
4795
  }, []);
4796
+ /**
4797
+ * Marks the log lines of node states whose details could not be read, so
4798
+ * nothing waits for them any longer (BOFF-9938).
4799
+ */
4800
+ const markNodeDetailsUnavailable = useCallback((runId, ids) => {
4801
+ const { execution, actions } = useFlowStore.getState();
4802
+ if (execution.currentRunId !== runId) return;
4803
+ const givenUp = new Set(ids);
4804
+ for (const [nodeId, nodeStateId] of shownNodeStatesRef.current) {
4805
+ if (!givenUp.has(nodeStateId)) continue;
4806
+ const logId = `${runId}-${nodeId}`;
4807
+ if (execution.logs.find((entry) => entry.id === logId)?.outputState === "loading") actions.execution.updateLog(logId, { outputState: "unavailable" });
4808
+ }
4809
+ }, []);
4786
4810
  const detailsLoaderRef = useRef(null);
4787
4811
  const detailsLoader = useCallback(() => {
4788
4812
  detailsLoaderRef.current ??= new RunNodeDetailsLoader({
@@ -4800,10 +4824,11 @@ function useNodeExecution() {
4800
4824
  apply: applyNodeDetails,
4801
4825
  onError: (error) => {
4802
4826
  console.error("[useNodeExecution] Node details read failed:", error);
4803
- }
4827
+ },
4828
+ onGiveUp: markNodeDetailsUnavailable
4804
4829
  });
4805
4830
  return detailsLoaderRef.current;
4806
- }, [applyNodeDetails]);
4831
+ }, [applyNodeDetails, markNodeDetailsUnavailable]);
4807
4832
  /**
4808
4833
  * Stop any active polling
4809
4834
  */
@@ -4844,6 +4869,7 @@ function useNodeExecution() {
4844
4869
  * the node states that changed.
4845
4870
  */
4846
4871
  const processNodeStates = useCallback((runId, nodeStates) => {
4872
+ const outputStateFor = (logId, nodeStateId, status) => appliedDetailsRef.current.get(logId) === `${nodeStateId}:${status}` ? "loaded" : "loading";
4847
4873
  const latest = latestNodeStates(nodeStates);
4848
4874
  shownNodeStatesRef.current = new Map(latest.map((nodeState) => [nodeState.nodeId, nodeState.id]));
4849
4875
  const { execution } = useFlowStore.getState();
@@ -4870,11 +4896,13 @@ function useNodeExecution() {
4870
4896
  startTime: nodeState.startTime ?? (/* @__PURE__ */ new Date()).toISOString(),
4871
4897
  endTime: nodeState.endTime ?? null,
4872
4898
  usedPinnedData: nodeState.usedPinnedData ?? false,
4873
- reusedFromRunId: nodeState.reusedFromRunId ?? null
4899
+ reusedFromRunId: nodeState.reusedFromRunId ?? null,
4900
+ outputState: outputStateFor(logId, nodeState.id, status)
4874
4901
  };
4875
4902
  addLog(newLog);
4876
4903
  } else if (existingLog.status !== status) updateLog(logId, {
4877
4904
  status,
4905
+ outputState: outputStateFor(logId, nodeState.id, status),
4878
4906
  error: nodeState.error ?? existingLog.error,
4879
4907
  duration: nodeState.duration ?? existingLog.duration,
4880
4908
  endTime: nodeState.endTime ?? existingLog.endTime,
@@ -4901,6 +4929,7 @@ function useNodeExecution() {
4901
4929
  pollStartRef.current = Date.now();
4902
4930
  activeRunIdRef.current = runId;
4903
4931
  shownNodeStatesRef.current = /* @__PURE__ */ new Map();
4932
+ if (detailsLoader().followedRunId !== runId) appliedDetailsRef.current.clear();
4904
4933
  detailsLoader().follow(runId);
4905
4934
  let poll = 0;
4906
4935
  const scheduleNext = (startedAt) => {
@@ -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-aqVD7kGa.js";
3
+ import { d as useRestoreWorkflowVersion, h as useWorkflowDefinitions } from "./useWorkflows-DwDzP-AD.js";
4
4
  import { t as VersionDiffDialog } from "./VersionDiffDialog-D9W5Fm56.js";
5
5
  import { c as versionsOfWorkflow } from "./VersionLifecycleBar-DuphLOT0.js";
6
6
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
@@ -3,17 +3,17 @@ import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
3
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
4
4
  import { n as useNavigationV2 } from "./useNavigationV2-C2WeqN7d.js";
5
5
  import { t as TechnicalDetails } from "./TechnicalDetails-D4xGy201.js";
6
- import { o as useRunReplayActions, r as useInsightsData } from "./useObservability-DPATdbw7.js";
6
+ import { o as useRunReplayActions, r as useInsightsData } from "./useObservability-BGrwZS5X.js";
7
7
  import { a as getTopFailingNodes, i as getFailureBreakdown, l as rankedFailingWorkflows, n as formatDuration, o as getTopFailingWorkflows, s as percentage, u as summarySuccessRate } from "./utils-C0dtnN4R.js";
8
- import { n as FailureTriagePanel } from "./FailureTriagePanel-B5WCSRFo.js";
8
+ import { n as FailureTriagePanel } from "./FailureTriagePanel-CM-vmvbA.js";
9
9
  import { c as useContinuousOptimisationEnabled } from "./feature-flags-B_b8PJ6Z.js";
10
10
  import { i as SdkPermissionButton, s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-dcxg6zG6.js";
11
- import { Cw as OptimisationSuggestionStatus, Sw as OptimisationKind, xw as OptimisationDismissReason } from "./graphql-types-v6CTGwA0.js";
11
+ import { Cw as OptimisationSuggestionStatus, Sw as OptimisationKind, xw as OptimisationDismissReason } from "./graphql-types-C5Tr6508.js";
12
12
  import { n as getFluidGridsClient } from "./client-Ctl4jmY3.js";
13
13
  import { o as throwIfResultError } from "./errors-xPZ-IbQd.js";
14
14
  import { t as WorkflowProposalDocument } from "./WorkflowProposalDocument-BdUbsrd0.js";
15
- import { a as formatTokens, c as DISMISS_REASONS, f as monthlySavingLabel, i as aiSpendPeriod, l as evidenceFacts, p as shortRunId, r as aiCost, s as runsOfWorkflowPath, t as AI_SPEND_RANGE_DAYS, u as evidenceWindowDays } from "./ai-usage-bmUn-gJP.js";
16
- import { i as utcDay, r as runListPath } from "./run-list-links-eUhZB1ju.js";
15
+ import { a as formatTokens, c as DISMISS_REASONS, f as monthlySavingLabel, i as aiSpendPeriod, l as evidenceFacts, p as shortRunId, r as aiCost, s as runsOfWorkflowPath, t as AI_SPEND_RANGE_DAYS, u as evidenceWindowDays } from "./ai-usage-D7SjIkUZ.js";
16
+ import { i as utcDay, r as runListPath } from "./run-list-links-DZ8Q5l35.js";
17
17
  import { t as proposalCanvasPath } from "./useRequestedProposal-B7uPXfZB.js";
18
18
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
19
19
  import { Link, useNavigate } from "react-router";
@@ -3,7 +3,7 @@ import { h as usePhaseDFlags } from "./feature-flags-B_b8PJ6Z.js";
3
3
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
4
4
  import { t as describeOperationError } from "./errors-xPZ-IbQd.js";
5
5
  import { t as downloadBlob } from "./workflow-transfer-CQnQC-ke.js";
6
- import { n as readTemplateCode, t as buildTemplateCodeDownload } from "./template-code-dqRunGOv.js";
6
+ import { n as readTemplateCode, t as buildTemplateCodeDownload } from "./template-code-CobAYaeH.js";
7
7
  import { useState } from "react";
8
8
  import { Icon } from "@iconify/react";
9
9
  import { cn } from "@burdenoff/fe-libs/utils";
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
3
- import { n as formatTemplatePrice } from "./TemplateCard-BA_9em22.js";
3
+ import { n as formatTemplatePrice } from "./TemplateCard-trfaDJLe.js";
4
4
  import { t as ConfirmActionDialog } from "./ConfirmActionDialog-D9Pir3bc.js";
5
5
  import { jsx } from "react/jsx-runtime";
6
6
 
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
3
- import { in as useFluidGridsAnalytics } from "./FluidGridsProvider-Dc_Jhtch.js";
3
+ import { in as useFluidGridsAnalytics } from "./FluidGridsProvider-BgP5c-hH.js";
4
4
  import { c as emitWorkflowLimitHit, o as emitUpgradeClicked } from "./fluidgridsEvents-Dm5CaHtr.js";
5
5
  import { i as WORKFLOWS_QUOTA_NAME } from "./quota-Cdt8yz7N.js";
6
6
  import { useEffect, useRef } from "react";
@@ -4,17 +4,18 @@ import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
4
4
  import { s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-dcxg6zG6.js";
5
5
  import { n as useManagedAiPolicyAuthority } from "./ManagedAiPolicyAuthorityContext-CNkxIOZ1.js";
6
6
  import { c as budgetInputValue, d as withBudgetMode, f as EffectBadge, m as useActionPolicies, n as checkCodecServerUrl, p as effectLabel, s as BUDGET_DIMENSIONS, u as withBudgetLimit } from "./codec-client-CAYl6j46.js";
7
+ import { i as isAutonomyLevel, o as useAutonomyLevelCopy, t as AUTONOMY_LEVELS } from "./run-mode-BMxym0mD.js";
7
8
  import { n as getFluidGridsClient } from "./client-Ctl4jmY3.js";
8
9
  import { o as throwIfResultError, t as describeOperationError } from "./errors-xPZ-IbQd.js";
9
10
  import { d as useFluidGridsFlag, m as usePhaseCFlags, t as FLUIDGRIDS_FLAGS, u as useDurableParityEnabled } from "./feature-flags-B_b8PJ6Z.js";
10
11
  import { M as saveCodecServerSettings, _ as fetchPauseRules, a as createPauseRule, c as deletePauseRule, f as fetchArchiveSettings, g as fetchCodecServerSettings, j as saveArchiveSettings, l as deleteSearchAttribute, o as createSearchAttribute, r as clearArchiveSettings, x as fetchSearchAttributes } from "./api-BqA-f-AD.js";
11
12
  import { i as NativeSelect, o as StatusPill, t as FieldError, u as useResource } from "./shared-Ctl9ZHo1.js";
12
- import { EI as WorkflowSearchAttributeType } from "./graphql-types-v6CTGwA0.js";
13
+ import { OI as WorkflowSearchAttributeType } from "./graphql-types-C5Tr6508.js";
13
14
  import { M as useFlowStore } from "./node-operation-selection-Czeeb2D4.js";
14
- import { Ut as findSaveConflict, yt as useSaveStatusStore } from "./FluidGridsProvider-Dc_Jhtch.js";
15
- import { a as useLogStreamDestinations, i as useLogStreamDestinationActions } from "./useObservability-DPATdbw7.js";
15
+ import { Ut as findSaveConflict, yt as useSaveStatusStore } from "./FluidGridsProvider-BgP5c-hH.js";
16
+ import { a as useLogStreamDestinations, i as useLogStreamDestinationActions } from "./useObservability-BGrwZS5X.js";
16
17
  import { n as useConnections } from "./useConnections-BlB0gbOB.js";
17
- import { Nt as useUpdateWorkflowDefinitionMutation, Rt as useWorkflowDefinitionQuery, Vt as useWorkflowDefinitionsQuery, n as useAgentDefinitions } from "./useAgentDefinitions-ZKX2N9aP.js";
18
+ import { Nt as useUpdateWorkflowDefinitionMutation, Rt as useWorkflowDefinitionQuery, Vt as useWorkflowDefinitionsQuery, n as useAgentDefinitions } from "./useAgentDefinitions-BmyWUoyo.js";
18
19
  import { a as formToInput$2, i as emptyAgentForm, n as agentToForm, o as grantDays, r as describeRule, t as AgentFormError } from "./agent-form-D0uLvzx4.js";
19
20
  import { r as getFluidGridsConfig } from "./config-X97zrIvn.js";
20
21
  import { n as getGlobalStoreClient } from "./global-client-DP_Wxe5t.js";
@@ -2151,6 +2152,101 @@ function RunBudgetSettings({ budget, disabled, onChange }) {
2151
2152
  }) });
2152
2153
  }
2153
2154
 
2155
+ // src/modules/settings/components/AutonomyLevelSetting.tsx
2156
+ /**
2157
+ * The autonomy level of a workflow (BOFF-9955): how much an AI agent in it may do on its own,
2158
+ * from L0 (suggest only) to L3 (act within the run's AI budget), or not chosen. Saved in the
2159
+ * workflow's `config.autonomyLevel` with the other execution settings. The service records the
2160
+ * level and every change to it; agent approvals do not follow it yet, which the notice says.
2161
+ */
2162
+ function AutonomyLevelSetting({ value, disabled, onChange }) {
2163
+ const tr = useTr();
2164
+ const levels = useAutonomyLevelCopy();
2165
+ const options = [{
2166
+ value: null,
2167
+ label: tr("fluidgrids.autonomy.notChosen", "Not chosen"),
2168
+ hint: tr("fluidgrids.autonomy.notChosenHint", "No level is set. Each AI Agent node's own approval settings apply.")
2169
+ }, ...AUTONOMY_LEVELS.map((level) => ({
2170
+ value: level,
2171
+ ...levels[level]
2172
+ }))];
2173
+ const buttons = useRef([]);
2174
+ const selectedIndex = Math.max(0, options.findIndex((option) => option.value === value));
2175
+ function handleKeyDown(event, index) {
2176
+ const step = event.key === "ArrowDown" || event.key === "ArrowRight" ? 1 : event.key === "ArrowUp" || event.key === "ArrowLeft" ? -1 : 0;
2177
+ if (step === 0) return;
2178
+ event.preventDefault();
2179
+ const next = (index + step + options.length) % options.length;
2180
+ const option = options[next];
2181
+ if (!option) return;
2182
+ onChange(option.value);
2183
+ buttons.current[next]?.focus();
2184
+ }
2185
+ return /* @__PURE__ */ jsxs("div", {
2186
+ className: "py-4",
2187
+ "data-testid": "autonomy-level-setting",
2188
+ children: [
2189
+ /* @__PURE__ */ jsx("h3", {
2190
+ className: "text-sm font-semibold text-text-primary",
2191
+ children: tr("fluidgrids.settings.execution.autonomy.heading", "Agent autonomy")
2192
+ }),
2193
+ /* @__PURE__ */ jsx("p", {
2194
+ className: "mt-0.5 text-xs text-text-secondary",
2195
+ children: tr("fluidgrids.settings.execution.autonomy.intro", "How much an AI agent in this workflow may do on its own.")
2196
+ }),
2197
+ /* @__PURE__ */ jsxs("div", {
2198
+ className: "mt-3 flex items-start gap-2 rounded-lg border border-status-info-border bg-status-info-bg-subtle p-3",
2199
+ "data-testid": "autonomy-level-not-enforced",
2200
+ children: [/* @__PURE__ */ jsx(Icon, {
2201
+ icon: "mdi:information-outline",
2202
+ width: 16,
2203
+ className: "mt-0.5 shrink-0 text-status-info-text"
2204
+ }), /* @__PURE__ */ jsx("p", {
2205
+ className: "text-xs text-status-info-text",
2206
+ children: tr("fluidgrids.settings.execution.autonomy.notEnforced", "Coming later: the level is saved and every change is logged, but agent approvals do not follow it yet. Until then, each AI Agent node's own approval settings apply.")
2207
+ })]
2208
+ }),
2209
+ /* @__PURE__ */ jsx("div", {
2210
+ role: "radiogroup",
2211
+ "aria-label": tr("fluidgrids.settings.execution.autonomy.heading", "Agent autonomy"),
2212
+ className: "mt-3 grid gap-2",
2213
+ children: options.map((option, index) => {
2214
+ const selected = option.value === value;
2215
+ return /* @__PURE__ */ jsxs("button", {
2216
+ ref: (element) => {
2217
+ buttons.current[index] = element;
2218
+ },
2219
+ type: "button",
2220
+ role: "radio",
2221
+ "aria-checked": selected,
2222
+ tabIndex: index === selectedIndex ? 0 : -1,
2223
+ disabled,
2224
+ "data-level": option.value ?? "none",
2225
+ onClick: () => onChange(option.value),
2226
+ onKeyDown: (event) => handleKeyDown(event, index),
2227
+ className: cn("flex items-start gap-3 rounded-lg border p-3 text-left transition-colors disabled:cursor-not-allowed disabled:opacity-60", selected ? "border-primary bg-primary/5" : "border-border-secondary hover:bg-background-secondary"),
2228
+ children: [/* @__PURE__ */ jsx(Icon, {
2229
+ icon: selected ? "mdi:radiobox-marked" : "mdi:radiobox-blank",
2230
+ width: 16,
2231
+ className: cn("mt-0.5 shrink-0", selected ? "text-primary" : "text-text-secondary"),
2232
+ "aria-hidden": "true"
2233
+ }), /* @__PURE__ */ jsxs("span", {
2234
+ className: "min-w-0",
2235
+ children: [/* @__PURE__ */ jsx("span", {
2236
+ className: "block text-sm font-medium text-text-primary",
2237
+ children: option.label
2238
+ }), /* @__PURE__ */ jsx("span", {
2239
+ className: "block text-xs text-text-secondary",
2240
+ children: option.hint
2241
+ })]
2242
+ })]
2243
+ }, option.value ?? "none");
2244
+ })
2245
+ })
2246
+ ]
2247
+ });
2248
+ }
2249
+
2154
2250
  // src/modules/settings/hooks/useRunDataSettings.ts
2155
2251
  /**
2156
2252
  * The workspace's run-data settings (BOFF-7514): which finished runs keep their data and how long
@@ -6160,6 +6256,14 @@ function ExecutionTab({ workflowKey }) {
6160
6256
  budget
6161
6257
  }))
6162
6258
  }),
6259
+ /* @__PURE__ */ jsx(AutonomyLevelSetting, {
6260
+ value: isAutonomyLevel(form.autonomyLevel) ? form.autonomyLevel : null,
6261
+ disabled: locked,
6262
+ onChange: (autonomyLevel) => setForm((f) => ({
6263
+ ...f,
6264
+ autonomyLevel
6265
+ }))
6266
+ }),
6163
6267
  /* @__PURE__ */ jsx(SettingRow, {
6164
6268
  label: tr("fluidgrids.settings.execution.onErrorLabel", "On workflow error"),
6165
6269
  description: tr("fluidgrids.settings.execution.onErrorDescription", "What to do when this workflow's execution fails"),
@@ -6,7 +6,7 @@ import { g as useSelfHostedWorkersEnabled } from "./feature-flags-B_b8PJ6Z.js";
6
6
  import { s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-dcxg6zG6.js";
7
7
  import { a as RUN_CONTROL_DIALOG_STYLE, i as NativeSelect, o as StatusPill, t as FieldError, u as useResource } from "./shared-Ctl9ZHo1.js";
8
8
  import { a as fetchTaskQueueStats, c as fetchWorkflowWorkers, d as updateTaskQueue, i as deleteWorkerToken, l as rotateWorkerToken, n as createWorkerToken, o as fetchTaskQueues, r as deleteTaskQueue, s as fetchWorkerTokens, t as createTaskQueue, u as setWorkerTokenConnectionAllowlist } from "./api-BZVyX5d2.js";
9
- import { nI as WorkflowEnvironment } from "./graphql-types-v6CTGwA0.js";
9
+ import { rI as WorkflowEnvironment } from "./graphql-types-C5Tr6508.js";
10
10
  import { useState } from "react";
11
11
  import { Icon } from "@iconify/react";
12
12
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -3,7 +3,7 @@ import { r as getFluidGridsConfig } from "./config-X97zrIvn.js";
3
3
  import { o as throwIfResultError } from "./errors-xPZ-IbQd.js";
4
4
  import { n as getFluidGridsClient } from "./client-Ctl4jmY3.js";
5
5
  import { n as getGlobalStoreClient } from "./global-client-DP_Wxe5t.js";
6
- import { c as ensureInstalledNodeTypesLoaded, d as ensureRegistryNodeTypesLoaded, i as AVAILABLE_NODES, in as useFluidGridsAnalytics, o as NODE_CONFIGS, t as FluidGridsContext, y as GetMyNodeInstallationsDocument } from "./FluidGridsProvider-Dc_Jhtch.js";
6
+ import { c as ensureInstalledNodeTypesLoaded, d as ensureRegistryNodeTypesLoaded, i as AVAILABLE_NODES, in as useFluidGridsAnalytics, o as NODE_CONFIGS, t as FluidGridsContext, y as GetMyNodeInstallationsDocument } from "./FluidGridsProvider-BgP5c-hH.js";
7
7
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
8
8
  import { o as isNodeTypeHiddenFromPalette } from "./durable-nodes-DXCCQYWD.js";
9
9
  import { h as usePhaseDFlags } from "./feature-flags-B_b8PJ6Z.js";
@@ -13,8 +13,8 @@ import { n as InstallWorkflowNodeDocument } from "./global-operations-7pvXw_j9.j
13
13
  import { t as cn } from "./cn-QqidFIgr.js";
14
14
  import { t as Button } from "./button-DG7y_FVJ.js";
15
15
  import { i as SdkPermissionButton, t as FLUIDGRIDS_PERMISSIONS } from "./constants-dcxg6zG6.js";
16
- import { t as useGlobalStoreClient } from "./useGlobalStoreClient-DMTrywdX.js";
17
- import { r as templateInstallSource } from "./template-code-dqRunGOv.js";
16
+ import { t as useGlobalStoreClient } from "./useGlobalStoreClient-BmjWfAjc.js";
17
+ import { r as templateInstallSource } from "./template-code-CobAYaeH.js";
18
18
  import { t as Badge } from "./badge-CXfPhoMH.js";
19
19
  import { t as templatePreview } from "./template-preview-C01KV277.js";
20
20
  import { n as useNavigationV2 } from "./useNavigationV2-C2WeqN7d.js";
@@ -1621,7 +1621,7 @@ async function dismissToastWhenShown(id) {
1621
1621
  }
1622
1622
 
1623
1623
  // src/hooks/store/useTemplateImportFlow.tsx
1624
- const LazyTemplateConfigurationModal = lazy(() => import("./TemplateConfigurationModal-BT3PaR0O.js").then((m) => ({ default: m.TemplateConfigurationModal })));
1624
+ const LazyTemplateConfigurationModal = lazy(() => import("./TemplateConfigurationModal-CxUEsjbr.js").then((m) => ({ default: m.TemplateConfigurationModal })));
1625
1625
  /**
1626
1626
  * "Use this template", the same everywhere it is offered: the builder's
1627
1627
  * template panel, the Templates page and the template preview page
@@ -5,7 +5,7 @@ import { t as Button } from "./button-DG7y_FVJ.js";
5
5
  import { t as Badge } from "./badge-CXfPhoMH.js";
6
6
  import { t as Label } from "./label-CDy86rIZ.js";
7
7
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
8
- import { t as OpenTemplateAsCodeButton } from "./OpenTemplateAsCodeButton-8MZHih6I.js";
8
+ import { t as OpenTemplateAsCodeButton } from "./OpenTemplateAsCodeButton-BdcTxemq.js";
9
9
  import { useEffect, useMemo, useState } from "react";
10
10
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
11
11
  import { AlertTriangle, CheckCircle2, Download, ExternalLink, KeyRound, Loader2, ShoppingCart, Sparkles } from "lucide-react";
@@ -1,10 +1,10 @@
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-Dv5fWJ6F.js";
5
- import { _ as useInstalledNodes, a as buildNodeCheck, c as useImportWorkflowTemplate, i as useTemplateImportFlow, n as formatTemplatePrice, o as buildRequiredNodeTypes, r as isPaidTemplate } from "./TemplateCard-BA_9em22.js";
6
- import { t as QuotaExhaustedDialog } from "./QuotaExhaustedDialog-wvu_-WJ-.js";
7
- import { n as WithOpenTemplateAsCode } from "./OpenTemplateAsCodeButton-8MZHih6I.js";
4
+ import { t as FlowBuilderPage } from "./flow-builder-CksAvhgV.js";
5
+ import { _ as useInstalledNodes, a as buildNodeCheck, c as useImportWorkflowTemplate, i as useTemplateImportFlow, n as formatTemplatePrice, o as buildRequiredNodeTypes, r as isPaidTemplate } from "./TemplateCard-trfaDJLe.js";
6
+ import { t as QuotaExhaustedDialog } from "./QuotaExhaustedDialog-BHZm4tQy.js";
7
+ import { n as WithOpenTemplateAsCode } from "./OpenTemplateAsCodeButton-BdcTxemq.js";
8
8
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
9
9
  import { i as SdkPermissionButton, s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-dcxg6zG6.js";
10
10
  import { t as BILLING_PLANS_PATH } from "./quota-Cdt8yz7N.js";
@@ -12,7 +12,7 @@ import { n as useNavigationV2 } from "./useNavigationV2-C2WeqN7d.js";
12
12
  import { t as describeOperationError } from "./errors-xPZ-IbQd.js";
13
13
  import { t as Disclosure } from "./Disclosure-DQiUKrqd.js";
14
14
  import { c as useVariables, t as useCreateVariable } from "./useVariables-DFdZofLQ.js";
15
- import { t as PaidTemplateConfirm } from "./PaidTemplateConfirm-0G-gv29n.js";
15
+ import { t as PaidTemplateConfirm } from "./PaidTemplateConfirm-DfFrr1pk.js";
16
16
  import { useEffect, useMemo, useState } from "react";
17
17
  import { useLocation, useNavigate, useParams } from "react-router";
18
18
  import { Icon } from "@iconify/react";
@@ -1,23 +1,23 @@
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-aqVD7kGa.js";
4
- import { i as useTemplateImportFlow, l as useWorkflowTemplates, r as isPaidTemplate, t as TemplateCard } from "./TemplateCard-BA_9em22.js";
5
- import { kI as WorkflowStatus } from "./graphql-types-v6CTGwA0.js";
3
+ import { h as useWorkflowDefinitions, l as useLazyWorkflowDefinition, s as useDuplicateWorkflow } from "./useWorkflows-DwDzP-AD.js";
4
+ import { i as useTemplateImportFlow, l as useWorkflowTemplates, r as isPaidTemplate, t as TemplateCard } from "./TemplateCard-trfaDJLe.js";
5
+ import { jI as WorkflowStatus } from "./graphql-types-C5Tr6508.js";
6
6
  import { i as SdkPermissionButton, t as FLUIDGRIDS_PERMISSIONS } from "./constants-dcxg6zG6.js";
7
- import { t as QuotaExhaustedDialog } from "./QuotaExhaustedDialog-wvu_-WJ-.js";
7
+ import { t as QuotaExhaustedDialog } from "./QuotaExhaustedDialog-BHZm4tQy.js";
8
8
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
9
- import { in as useFluidGridsAnalytics, t as FluidGridsContext } from "./FluidGridsProvider-Dc_Jhtch.js";
9
+ import { in as useFluidGridsAnalytics, t as FluidGridsContext } from "./FluidGridsProvider-BgP5c-hH.js";
10
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
13
  import { c as isQuotaExhaustedFailure, t as BILLING_PLANS_PATH } from "./quota-Cdt8yz7N.js";
14
14
  import { t as FluidGridsDocsLink } from "./FluidGridsDocsLink-JxkBpOeb.js";
15
- import { t as useGlobalStoreClient } from "./useGlobalStoreClient-DMTrywdX.js";
15
+ import { t as useGlobalStoreClient } from "./useGlobalStoreClient-BmjWfAjc.js";
16
16
  import { o as throwIfResultError, t as describeOperationError } from "./errors-xPZ-IbQd.js";
17
17
  import { n as formatRunVersion } from "./run-display-BycKYSU0.js";
18
18
  import { n as useNavigationV2 } from "./useNavigationV2-C2WeqN7d.js";
19
19
  import { t as TechnicalDetails } from "./TechnicalDetails-D4xGy201.js";
20
- import { t as PaidTemplateConfirm } from "./PaidTemplateConfirm-0G-gv29n.js";
20
+ import { t as PaidTemplateConfirm } from "./PaidTemplateConfirm-DfFrr1pk.js";
21
21
  import { r as getFluidGridsConfig } from "./config-X97zrIvn.js";
22
22
  import { t as cn } from "./cn-QqidFIgr.js";
23
23
  import { useCallback, useContext, useEffect, useMemo, useState } from "react";
@@ -1,12 +1,12 @@
1
1
  "use client";
2
- import { n as FluidGridsProvider, on as useCanvasEdges } from "./FluidGridsProvider-Dc_Jhtch.js";
2
+ import { n as FluidGridsProvider, on as useCanvasEdges } from "./FluidGridsProvider-BgP5c-hH.js";
3
3
  import { M as useFlowStore } from "./node-operation-selection-Czeeb2D4.js";
4
4
  import { t as Button } from "./button-DG7y_FVJ.js";
5
5
  import { t as Input } from "./input-ChT6Q-Pr.js";
6
- import { v as Card } from "./TemplateCard-BA_9em22.js";
6
+ import { v as Card } from "./TemplateCard-trfaDJLe.js";
7
7
  import { t as cn } from "./cn-QqidFIgr.js";
8
8
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
9
- import { m as FluidGridsMark, p as useNodeSelectedEvent } from "./flow-builder-Dv5fWJ6F.js";
9
+ import { m as FluidGridsMark, p as useNodeSelectedEvent } from "./flow-builder-CksAvhgV.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 as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
@@ -1,21 +1,21 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
- import { d as releaseLeaseKeptForReload, f as useWorkflowReloadStore, t as FlowBuilderPage } from "./flow-builder-Dv5fWJ6F.js";
3
+ import { d as releaseLeaseKeptForReload, f as useWorkflowReloadStore, t as FlowBuilderPage } from "./flow-builder-CksAvhgV.js";
4
4
  import { n as registerLiveCanvasHandler } from "./liveCanvas-D5ytXDp8.js";
5
5
  import { r as getFluidGridsConfig } from "./config-X97zrIvn.js";
6
6
  import { n as getFluidGridsClient } from "./client-Ctl4jmY3.js";
7
7
  import { o as throwIfResultError } from "./errors-xPZ-IbQd.js";
8
8
  import { t as WorkflowDefinitionDocument } from "./WorkflowDefinitionDocument-DZLbTPUZ.js";
9
9
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
10
- import { E as createConfiguredNode, Ht as codeBuildIdOf, L as paramsFromOperation, Lt as rememberRevision, g as registerWorkflowNodeTypes, h as registerNodeManifests, ht as classifyCreateRefusal, m as refetchStoreNodes, nn as resolveNodeOperation, o as NODE_CONFIGS, pt as blankWorkflowCreateInput, qt as workflowFingerprint, u as ensureNodeTypesLoaded, yt as useSaveStatusStore } from "./FluidGridsProvider-Dc_Jhtch.js";
10
+ import { E as createConfiguredNode, Ht as codeBuildIdOf, L as paramsFromOperation, Lt as rememberRevision, g as registerWorkflowNodeTypes, h as registerNodeManifests, ht as classifyCreateRefusal, m as refetchStoreNodes, nn as resolveNodeOperation, o as NODE_CONFIGS, pt as blankWorkflowCreateInput, qt as workflowFingerprint, u as ensureNodeTypesLoaded, yt as useSaveStatusStore } from "./FluidGridsProvider-BgP5c-hH.js";
11
11
  import { M as useFlowStore } from "./node-operation-selection-Czeeb2D4.js";
12
12
  import { t as canvasFromDefinition } from "./definition-canvas-DL25_6NH.js";
13
- import { l as useLazyWorkflowDefinition, n as useCreateWorkflow } from "./useWorkflows-aqVD7kGa.js";
14
- import { _ as useInstalledNodes, a as buildNodeCheck, o as buildRequiredNodeTypes, s as getWorkflowNodeTypes } from "./TemplateCard-BA_9em22.js";
13
+ import { l as useLazyWorkflowDefinition, n as useCreateWorkflow } from "./useWorkflows-DwDzP-AD.js";
14
+ import { _ as useInstalledNodes, a as buildNodeCheck, o as buildRequiredNodeTypes, s as getWorkflowNodeTypes } from "./TemplateCard-trfaDJLe.js";
15
15
  import { r as mergeStickyNotes } from "./sticky-notes-23j-wL6Q.js";
16
16
  import { c as withoutGuidedTourIntent, l as decideMissingWorkflow, o as isGuidedTourIntent, s as pickGuidedTour, u as isCreateIntent } from "./firstWorkflow-C_h0KMB2.js";
17
17
  import { t as BILLING_PLANS_PATH } from "./quota-Cdt8yz7N.js";
18
- import { c as CreateWorkflowRefusalDialog } from "./useWorkflowCodeExport-D_mCuhKP.js";
18
+ import { c as CreateWorkflowRefusalDialog } from "./useWorkflowCodeExport-ej7y3Gi3.js";
19
19
  import { Suspense, lazy, useCallback, useEffect, useMemo, useRef, useState } from "react";
20
20
  import { useLocation, useNavigate, useParams } from "react-router";
21
21
  import { Icon } from "@iconify/react";
@@ -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-aqVD7kGa.js";
3
+ import { m as useWorkflowDefinition } from "./useWorkflows-DwDzP-AD.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";
@@ -2,7 +2,7 @@
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
3
  import { n as getFluidGridsClient } from "./client-Ctl4jmY3.js";
4
4
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
5
- import { DI as WorkflowSharePrincipalType, II as WorkflowVisibility, JF as WorkflowAccess, OI as WorkflowShareRole } from "./graphql-types-v6CTGwA0.js";
5
+ import { AI as WorkflowShareRole, JF as WorkflowAccess, RI as WorkflowVisibility, kI as WorkflowSharePrincipalType } from "./graphql-types-C5Tr6508.js";
6
6
  import { useMemo } from "react";
7
7
  import { jsx } from "react/jsx-runtime";
8
8
  import { ResourceShareDialog, createSharePrincipalLister } from "@burdenoff/fe-libs/connections";