@burdenoff/fluidgrids-fe-sdk 2026.1113.9 → 2026.1113.11

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 (68) hide show
  1. package/dist/{AiStudioPage-D9vovsZE.js → AiStudioPage-BP2cLXEK.js} +4 -4
  2. package/dist/{DataSinkDashboardPage-CXb1uNau.js → DataSinkDashboardPage-CiFi9YXQ.js} +1 -1
  3. package/dist/{ExecutionDetailPage-BuU66VvK.js → ExecutionDetailPage-BfFrWnBj.js} +104 -44
  4. package/dist/{ExecutionsListPage-DMAOPJCa.js → ExecutionsListPage-BRvj71Nd.js} +6 -6
  5. package/dist/{FailureTriagePanel-DA91XKVj.js → FailureTriagePanel-CbDIdU8s.js} +1 -1
  6. package/dist/{FluidGridsProvider-BOBuK7kj.js → FluidGridsProvider-Dxehlm-2.js} +111 -11
  7. package/dist/{HistoryPage-DUcPEycb.js → HistoryPage-CjtgUOZr.js} +1 -1
  8. package/dist/{InsightsPage-C3FjaLKN.js → InsightsPage-BsGqBpUO.js} +5 -5
  9. package/dist/{OpenTemplateAsCodeButton-BdcTxemq.js → OpenTemplateAsCodeButton-C-6JVZoS.js} +1 -1
  10. package/dist/{PaidTemplateConfirm-Dop_rxCQ.js → PaidTemplateConfirm-BUBCnbP0.js} +1 -1
  11. package/dist/{QuotaExhaustedDialog-CijT1MyD.js → QuotaExhaustedDialog-BEsj0A-I.js} +1 -1
  12. package/dist/{SettingsPage-C4G9OlJV.js → SettingsPage-DpBhx95x.js} +6 -6
  13. package/dist/{TaskQueuesPage-DsGNGmGN.js → TaskQueuesPage-DLzuumGp.js} +1 -1
  14. package/dist/{TemplateCard-7rE1VAIC.js → TemplateCard-DD3vJ3a5.js} +4 -4
  15. package/dist/{TemplateConfigurationModal-CxUEsjbr.js → TemplateConfigurationModal-BtzI-4fr.js} +1 -1
  16. package/dist/{TemplatePreview-CSA9W-e1.js → TemplatePreview-Ca7df91b.js} +5 -5
  17. package/dist/{TemplatesPage-C_trA48U.js → TemplatesPage-BSMLtMnf.js} +7 -7
  18. package/dist/{WorkflowBuilder-DZWmp9Vg.js → WorkflowBuilder-Bok_WtPQ.js} +6 -6
  19. package/dist/{WorkflowBuilder-CkoZDS1_.js → WorkflowBuilder-Dh8MYfZJ.js} +4 -4
  20. package/dist/{WorkflowSearchRedirect-DQj9_HqI.js → WorkflowSearchRedirect-bcWo68LY.js} +1 -1
  21. package/dist/{WorkflowShareDialog-BcfzZDOj.js → WorkflowShareDialog-D8psodlb.js} +1 -1
  22. package/dist/{WorkflowsList-BOTt7lX5.js → WorkflowsList-DURQu2ZD.js} +10 -10
  23. package/dist/{agentTools-CSoCNDRx.js → agentTools-B4BDCe57.js} +3 -3
  24. package/dist/{ai-usage-D7SjIkUZ.js → ai-usage-DVtvLZ2P.js} +1 -1
  25. package/dist/{askAboutBridge-kpcjcR9Y.js → askAboutBridge-ByYsQams.js} +36 -2
  26. package/dist/{assert-rules-C5739QR0.js → assert-rules-BbSyxL5d.js} +1 -1
  27. package/dist/assistant.d.ts +2 -0
  28. package/dist/assistant.js +1 -1
  29. package/dist/{attach-node-helpers-CtV1mej0.js → attach-node-helpers-CCWFS75V.js} +1 -1
  30. package/dist/{canvasNoteTools-DTc3EKvg.js → canvasNoteTools-CLMZ6u5m.js} +2 -2
  31. package/dist/executions.js +2 -2
  32. package/dist/{flow-builder-CYlYHdhf.js → flow-builder-CIvz3sOr.js} +19 -19
  33. package/dist/{graphql-types-C5Tr6508.js → graphql-types-D82O-0XY.js} +513 -47
  34. package/dist/history.js +1 -1
  35. package/dist/{index-8Ai8teoo.d.ts → index-BDN8AK1D.d.ts} +1251 -27
  36. package/dist/index.d.ts +2 -2
  37. package/dist/index.js +34 -34
  38. package/dist/{logs-panel-Cn4gGng9.js → logs-panel-_Dl5Nrdn.js} +1 -1
  39. package/dist/{node-detail-view-N6n3qegt.js → node-detail-view-Dz1ZCIzV.js} +7 -7
  40. package/dist/{node-editor-tab-body-CivWI2hg.js → node-editor-tab-body-D5ybpm-b.js} +3 -3
  41. package/dist/{node-operation-selection-BGj5YwAS.js → node-operation-selection-bFx9s45-.js} +16 -4
  42. package/dist/observability.d.ts +1 -1
  43. package/dist/observability.js +2 -2
  44. package/dist/{popover-a8WKNgPP.js → popover-ClSWhtja.js} +104 -3
  45. package/dist/{quick-config-panel-DABEVJR9.js → quick-config-panel-iDMk4TT5.js} +4 -4
  46. package/dist/{run-list-links-DZ8Q5l35.js → run-list-links-CPJimzkr.js} +1 -1
  47. package/dist/{run-mode-BMxym0mD.js → run-mode-Du-fvjtE.js} +1 -1
  48. package/dist/{schedule-panel--u7WXnaC.js → schedule-panel-DzkTZm2q.js} +309 -66
  49. package/dist/settings.js +1 -1
  50. package/dist/{sidebar-node-editor-BHqtoMC5.js → sidebar-node-editor-C16VnTzr.js} +4 -4
  51. package/dist/{template-code-CobAYaeH.js → template-code-CEjudJEY.js} +1 -1
  52. package/dist/templates.js +2 -2
  53. package/dist/{use-workflow-tests-BUzndyWO.js → use-workflow-tests-Lz8fPQZg.js} +2 -2
  54. package/dist/{useAgentDefinitions-DykIYrep.js → useAgentDefinitions-akQ6WwzD.js} +1 -1
  55. package/dist/{useDurableParity-sS0LIJ_l.js → useDurableParity-fZcATZHI.js} +1 -1
  56. package/dist/{useExecutions-GgjDOgcd.js → useExecutions-lRqeXDYS.js} +2 -2
  57. package/dist/{useGlobalStoreClient-BfmKmeIx.js → useGlobalStoreClient-BOI2kYRv.js} +1 -1
  58. package/dist/{useObservability-AMDVk_hX.js → useObservability-CBFLQBQO.js} +1 -1
  59. package/dist/{useRunHistory-gnqIoJnZ.js → useRunHistory-DSDD_ha3.js} +2 -2
  60. package/dist/{useWorkflowCodeExport-DrcfDTcD.js → useWorkflowCodeExport-qGat2KNz.js} +2 -2
  61. package/dist/{useWorkflows-DSZUrK_o.js → useWorkflows-CXwXQg74.js} +1 -1
  62. package/dist/workflow-builder.js +5 -5
  63. package/dist/{workflow-code-transfer-Dbnvw5fc.js → workflow-code-transfer-50pRK3nx.js} +1 -1
  64. package/dist/workflow-pages.d.ts +1 -1
  65. package/dist/workflow-pages.js +14 -14
  66. package/dist/workflow-preview.js +1 -1
  67. package/dist/workflows-list.js +1 -1
  68. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
3
- import { on as useFluidGridsAnalytics } from "./FluidGridsProvider-BOBuK7kj.js";
3
+ import { un as useFluidGridsAnalytics } from "./FluidGridsProvider-Dxehlm-2.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,18 +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
+ import { i as isAutonomyLevel, o as useAutonomyLevelCopy, t as AUTONOMY_LEVELS } from "./run-mode-Du-fvjtE.js";
8
8
  import { n as getFluidGridsClient } from "./client-Ctl4jmY3.js";
9
9
  import { o as throwIfResultError, t as describeOperationError } from "./errors-xPZ-IbQd.js";
10
10
  import { d as useFluidGridsFlag, m as usePhaseCFlags, t as FLUIDGRIDS_FLAGS, u as useDurableParityEnabled } from "./feature-flags-B_b8PJ6Z.js";
11
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-CEnNq15C.js";
12
12
  import { i as NativeSelect, o as StatusPill, t as FieldError, u as useResource } from "./shared-C0LCTtyh.js";
13
- import { OI as WorkflowSearchAttributeType } from "./graphql-types-C5Tr6508.js";
14
- import { A as useFlowStore } from "./node-operation-selection-BGj5YwAS.js";
15
- import { Gt as findSaveConflict, xt as useSaveStatusStore } from "./FluidGridsProvider-BOBuK7kj.js";
16
- import { a as useLogStreamDestinations, i as useLogStreamDestinationActions } from "./useObservability-AMDVk_hX.js";
13
+ import { XI as WorkflowSearchAttributeType } from "./graphql-types-D82O-0XY.js";
14
+ import { A as useFlowStore } from "./node-operation-selection-bFx9s45-.js";
15
+ import { Tt as useSaveStatusStore, Yt as findSaveConflict } from "./FluidGridsProvider-Dxehlm-2.js";
16
+ import { a as useLogStreamDestinations, i as useLogStreamDestinationActions } from "./useObservability-CBFLQBQO.js";
17
17
  import { n as useConnections } from "./useConnections-BlB0gbOB.js";
18
- import { Nt as useUpdateWorkflowDefinitionMutation, Rt as useWorkflowDefinitionQuery, Vt as useWorkflowDefinitionsQuery, n as useAgentDefinitions } from "./useAgentDefinitions-DykIYrep.js";
18
+ import { Nt as useUpdateWorkflowDefinitionMutation, Rt as useWorkflowDefinitionQuery, Vt as useWorkflowDefinitionsQuery, n as useAgentDefinitions } from "./useAgentDefinitions-akQ6WwzD.js";
19
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";
20
20
  import { r as getFluidGridsConfig } from "./config-X97zrIvn.js";
21
21
  import { n as getGlobalStoreClient } from "./global-client-DP_Wxe5t.js";
@@ -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-C0LCTtyh.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-DKfMt0IX.js";
9
- import { rI as WorkflowEnvironment } from "./graphql-types-C5Tr6508.js";
9
+ import { TI as WorkflowEnvironment } from "./graphql-types-D82O-0XY.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, o as NODE_CONFIGS, on as useFluidGridsAnalytics, t as FluidGridsContext, y as GetMyNodeInstallationsDocument } from "./FluidGridsProvider-BOBuK7kj.js";
6
+ import { c as ensureInstalledNodeTypesLoaded, d as ensureRegistryNodeTypesLoaded, i as AVAILABLE_NODES, o as NODE_CONFIGS, t as FluidGridsContext, un as useFluidGridsAnalytics, y as GetMyNodeInstallationsDocument } from "./FluidGridsProvider-Dxehlm-2.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-BfmKmeIx.js";
17
- import { r as templateInstallSource } from "./template-code-CobAYaeH.js";
16
+ import { t as useGlobalStoreClient } from "./useGlobalStoreClient-BOI2kYRv.js";
17
+ import { r as templateInstallSource } from "./template-code-CEjudJEY.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-CxUEsjbr.js").then((m) => ({ default: m.TemplateConfigurationModal })));
1624
+ const LazyTemplateConfigurationModal = lazy(() => import("./TemplateConfigurationModal-BtzI-4fr.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-BdcTxemq.js";
8
+ import { t as OpenTemplateAsCodeButton } from "./OpenTemplateAsCodeButton-C-6JVZoS.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-CYlYHdhf.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-7rE1VAIC.js";
6
- import { t as QuotaExhaustedDialog } from "./QuotaExhaustedDialog-CijT1MyD.js";
7
- import { n as WithOpenTemplateAsCode } from "./OpenTemplateAsCodeButton-BdcTxemq.js";
4
+ import { t as FlowBuilderPage } from "./flow-builder-CIvz3sOr.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-DD3vJ3a5.js";
6
+ import { t as QuotaExhaustedDialog } from "./QuotaExhaustedDialog-BEsj0A-I.js";
7
+ import { n as WithOpenTemplateAsCode } from "./OpenTemplateAsCodeButton-C-6JVZoS.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-CsxDspR7.js";
14
14
  import { c as useVariables, t as useCreateVariable } from "./useVariables-DFdZofLQ.js";
15
- import { t as PaidTemplateConfirm } from "./PaidTemplateConfirm-Dop_rxCQ.js";
15
+ import { t as PaidTemplateConfirm } from "./PaidTemplateConfirm-BUBCnbP0.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-DSZUrK_o.js";
4
- import { i as useTemplateImportFlow, l as useWorkflowTemplates, r as isPaidTemplate, t as TemplateCard } from "./TemplateCard-7rE1VAIC.js";
5
- import { jI as WorkflowStatus } from "./graphql-types-C5Tr6508.js";
3
+ import { h as useWorkflowDefinitions, l as useLazyWorkflowDefinition, s as useDuplicateWorkflow } from "./useWorkflows-CXwXQg74.js";
4
+ import { i as useTemplateImportFlow, l as useWorkflowTemplates, r as isPaidTemplate, t as TemplateCard } from "./TemplateCard-DD3vJ3a5.js";
5
+ import { tL as WorkflowStatus } from "./graphql-types-D82O-0XY.js";
6
6
  import { i as SdkPermissionButton, t as FLUIDGRIDS_PERMISSIONS } from "./constants-dcxg6zG6.js";
7
- import { t as QuotaExhaustedDialog } from "./QuotaExhaustedDialog-CijT1MyD.js";
7
+ import { t as QuotaExhaustedDialog } from "./QuotaExhaustedDialog-BEsj0A-I.js";
8
8
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
9
- import { on as useFluidGridsAnalytics, t as FluidGridsContext } from "./FluidGridsProvider-BOBuK7kj.js";
9
+ import { t as FluidGridsContext, un as useFluidGridsAnalytics } from "./FluidGridsProvider-Dxehlm-2.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-BfmKmeIx.js";
15
+ import { t as useGlobalStoreClient } from "./useGlobalStoreClient-BOI2kYRv.js";
16
16
  import { o as throwIfResultError, t as describeOperationError } from "./errors-xPZ-IbQd.js";
17
17
  import { n as formatRunVersion } from "./run-display-UjLAoYqQ.js";
18
18
  import { n as useNavigationV2 } from "./useNavigationV2-C2WeqN7d.js";
19
19
  import { t as TechnicalDetails } from "./TechnicalDetails-r5JXr1jZ.js";
20
- import { t as PaidTemplateConfirm } from "./PaidTemplateConfirm-Dop_rxCQ.js";
20
+ import { t as PaidTemplateConfirm } from "./PaidTemplateConfirm-BUBCnbP0.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,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-CYlYHdhf.js";
3
+ import { d as releaseLeaseKeptForReload, f as useWorkflowReloadStore, t as FlowBuilderPage } from "./flow-builder-CIvz3sOr.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 { O as createConfiguredNode, Wt as codeBuildIdOf, Yt as workflowFingerprint, _t as classifyCreateRefusal, g as registerWorkflowNodeTypes, h as registerNodeManifests, ht as blankWorkflowCreateInput, in as resolveNodeOperation, m as refetchStoreNodes, o as NODE_CONFIGS, u as ensureNodeTypesLoaded, xt as useSaveStatusStore, z as paramsFromOperation, zt as rememberRevision } from "./FluidGridsProvider-BOBuK7kj.js";
11
- import { A as useFlowStore } from "./node-operation-selection-BGj5YwAS.js";
10
+ import { $t as workflowFingerprint, Jt as codeBuildIdOf, M as createConfiguredNode, Tt as useSaveStatusStore, U as paramsFromOperation, Ut as rememberRevision, cn as resolveNodeOperation, g as registerWorkflowNodeTypes, h as registerNodeManifests, m as refetchStoreNodes, o as NODE_CONFIGS, u as ensureNodeTypesLoaded, xt as classifyCreateRefusal, yt as blankWorkflowCreateInput } from "./FluidGridsProvider-Dxehlm-2.js";
11
+ import { A as useFlowStore } from "./node-operation-selection-bFx9s45-.js";
12
12
  import { t as canvasFromDefinition } from "./definition-canvas-DL25_6NH.js";
13
- import { l as useLazyWorkflowDefinition, n as useCreateWorkflow } from "./useWorkflows-DSZUrK_o.js";
14
- import { _ as useInstalledNodes, a as buildNodeCheck, o as buildRequiredNodeTypes, s as getWorkflowNodeTypes } from "./TemplateCard-7rE1VAIC.js";
13
+ import { l as useLazyWorkflowDefinition, n as useCreateWorkflow } from "./useWorkflows-CXwXQg74.js";
14
+ import { _ as useInstalledNodes, a as buildNodeCheck, o as buildRequiredNodeTypes, s as getWorkflowNodeTypes } from "./TemplateCard-DD3vJ3a5.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-DrcfDTcD.js";
18
+ import { c as CreateWorkflowRefusalDialog } from "./useWorkflowCodeExport-qGat2KNz.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,12 +1,12 @@
1
1
  "use client";
2
- import { cn as useCanvasEdges, n as FluidGridsProvider } from "./FluidGridsProvider-BOBuK7kj.js";
3
- import { A as useFlowStore } from "./node-operation-selection-BGj5YwAS.js";
2
+ import { fn as useCanvasEdges, n as FluidGridsProvider } from "./FluidGridsProvider-Dxehlm-2.js";
3
+ import { A as useFlowStore } from "./node-operation-selection-bFx9s45-.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-7rE1VAIC.js";
6
+ import { v as Card } from "./TemplateCard-DD3vJ3a5.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-CYlYHdhf.js";
9
+ import { m as FluidGridsMark, p as useNodeSelectedEvent } from "./flow-builder-CIvz3sOr.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,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-DSZUrK_o.js";
3
+ import { m as useWorkflowDefinition } from "./useWorkflows-CXwXQg74.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 { AI as WorkflowShareRole, JF as WorkflowAccess, RI as WorkflowVisibility, kI as WorkflowSharePrincipalType } from "./graphql-types-C5Tr6508.js";
5
+ import { $I as WorkflowSharePrincipalType, cL as WorkflowVisibility, eL as WorkflowShareRole, gI as WorkflowAccess } from "./graphql-types-D82O-0XY.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";
@@ -1,23 +1,23 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
- import { c as useImportWorkflow, h as useWorkflowDefinitions, l as useLazyWorkflowDefinition, n as useCreateWorkflow, o as useDeleteWorkflow, s as useDuplicateWorkflow, u as usePreviewN8nImport } from "./useWorkflows-DSZUrK_o.js";
4
- import { t as FluidGridsContext, vt as createThenOpen } from "./FluidGridsProvider-BOBuK7kj.js";
5
- import { a as saveWorkflowDescription, c as CreateWorkflowRefusalDialog, o as visibleWorkflowDescription, r as commitWorkflowDescription, s as workflowDescriptionCharactersLeft, t as useExportWorkflowAs } from "./useWorkflowCodeExport-DrcfDTcD.js";
3
+ import { c as useImportWorkflow, h as useWorkflowDefinitions, l as useLazyWorkflowDefinition, n as useCreateWorkflow, o as useDeleteWorkflow, s as useDuplicateWorkflow, u as usePreviewN8nImport } from "./useWorkflows-CXwXQg74.js";
4
+ import { St as createThenOpen, t as FluidGridsContext } from "./FluidGridsProvider-Dxehlm-2.js";
5
+ import { a as saveWorkflowDescription, c as CreateWorkflowRefusalDialog, o as visibleWorkflowDescription, r as commitWorkflowDescription, s as workflowDescriptionCharactersLeft, t as useExportWorkflowAs } from "./useWorkflowCodeExport-qGat2KNz.js";
6
6
  import { c as isQuotaExhaustedFailure, t as BILLING_PLANS_PATH } from "./quota-Cdt8yz7N.js";
7
- import { A as useFlowStore } from "./node-operation-selection-BGj5YwAS.js";
7
+ import { A as useFlowStore } from "./node-operation-selection-bFx9s45-.js";
8
8
  import { a as SdkPermissionGate, i as SdkPermissionButton, s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-dcxg6zG6.js";
9
- import { t as QuotaExhaustedDialog } from "./QuotaExhaustedDialog-CijT1MyD.js";
9
+ import { t as QuotaExhaustedDialog } from "./QuotaExhaustedDialog-BEsj0A-I.js";
10
10
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
11
- import { a as isExecutionMode, i as isAutonomyLevel, n as EXECUTION_MODES, o as useAutonomyLevelCopy, r as EXECUTION_MODE_ICONS, s as useExecutionModeCopy } from "./run-mode-BMxym0mD.js";
12
- import { YF as WorkflowAccessFilter, aI as WorkflowExportFormat } from "./graphql-types-C5Tr6508.js";
13
- import { a as assertImportByteSize, g as readProjectArchive, h as primaryImportModule, i as MAX_IMPORT_SOURCE_BYTES, l as importAcceptAttribute, n as ImportSourceError, r as MAX_IMPORT_ARCHIVE_BYTES, s as checkTypeScriptImport, t as CODE_EXPORT_FORMATS, u as importFileKind, v as typeScriptImportSource, x as workflowNameFromFile, y as typeScriptModuleFile } from "./workflow-code-transfer-Dbnvw5fc.js";
14
- import { i as canShareWorkflow, r as canEditWorkflow, t as WorkflowShareDialog } from "./WorkflowShareDialog-BcfzZDOj.js";
11
+ import { a as isExecutionMode, i as isAutonomyLevel, n as EXECUTION_MODES, o as useAutonomyLevelCopy, r as EXECUTION_MODE_ICONS, s as useExecutionModeCopy } from "./run-mode-Du-fvjtE.js";
12
+ import { DI as WorkflowExportFormat, _I as WorkflowAccessFilter } from "./graphql-types-D82O-0XY.js";
13
+ import { a as assertImportByteSize, g as readProjectArchive, h as primaryImportModule, i as MAX_IMPORT_SOURCE_BYTES, l as importAcceptAttribute, n as ImportSourceError, r as MAX_IMPORT_ARCHIVE_BYTES, s as checkTypeScriptImport, t as CODE_EXPORT_FORMATS, u as importFileKind, v as typeScriptImportSource, x as workflowNameFromFile, y as typeScriptModuleFile } from "./workflow-code-transfer-50pRK3nx.js";
14
+ import { i as canShareWorkflow, r as canEditWorkflow, t as WorkflowShareDialog } from "./WorkflowShareDialog-D8psodlb.js";
15
15
  import { i as useOpenRequest, n as ACTION_PARAM_VALUES, r as useActionParam } from "./useActionParam-B0ebTZmg.js";
16
16
  import { d as useFluidGridsFlag, t as FLUIDGRIDS_FLAGS } from "./feature-flags-B_b8PJ6Z.js";
17
17
  import { n as downloadWorkflowExport, r as parseWorkflowImport } from "./workflow-transfer-CQnQC-ke.js";
18
18
  import { a as useWorkflowProjects, i as useWorkflowProjectActions, n as useWorkflowFolderActions, r as useWorkflowFolders, t as useBulkWorkflowActions } from "./useWorkflowOrganization-r5FWNBs6.js";
19
19
  import { t as describeOperationError } from "./errors-xPZ-IbQd.js";
20
- import { a as useExecutions } from "./useExecutions-GgjDOgcd.js";
20
+ import { a as useExecutions } from "./useExecutions-lRqeXDYS.js";
21
21
  import { a as firstWorkflowProgress, i as builderPathFor, r as GUIDED_TOUR_STATE } from "./firstWorkflow-C_h0KMB2.js";
22
22
  import { n as useFluidGridsPageControls } from "./pageControlsBridge-0pX9s-3k.js";
23
23
  import { i as workflowsListControls } from "./pageControlSpecs-DZJ9K37m.js";
@@ -1,8 +1,8 @@
1
1
  "use client";
2
- import { B as selectedOperationOf, E as SENSITIVE_PARAM, F as fixedParameterState, L as nodeTitle, O as createConfiguredNode, _ as registryNodeData, f as isNodeConfigsInitialized, ft as isFlowComplete, it as autosaveAllowedFor, o as NODE_CONFIGS, xt as useSaveStatusStore, z as paramsFromOperation } from "./FluidGridsProvider-BOBuK7kj.js";
3
- import { A as useFlowStore, T as resolveOutputHandles, w as resolveInputHandles } from "./node-operation-selection-BGj5YwAS.js";
2
+ import { A as SENSITIVE_PARAM, M as createConfiguredNode, Tt as useSaveStatusStore, U as paramsFromOperation, V as nodeTitle, W as selectedOperationOf, _ as registryNodeData, ct as autosaveAllowedFor, f as isNodeConfigsInitialized, gt as isFlowComplete, o as NODE_CONFIGS, z as fixedParameterState } from "./FluidGridsProvider-Dxehlm-2.js";
3
+ import { A as useFlowStore, T as resolveOutputHandles, w as resolveInputHandles } from "./node-operation-selection-bFx9s45-.js";
4
4
  import { o as isNodeTypeHiddenFromPalette } from "./durable-nodes-DXCCQYWD.js";
5
- import { t as computeAttachPosition } from "./attach-node-helpers-CtV1mej0.js";
5
+ import { t as computeAttachPosition } from "./attach-node-helpers-CCWFS75V.js";
6
6
  import { AgentToolError, defineAgentTool } from "@burdenoff/fe-libs/shared/agent-tools";
7
7
  import { z } from "zod";
8
8
 
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { Sw as OptimisationKind, xw as OptimisationDismissReason } from "./graphql-types-C5Tr6508.js";
2
+ import { Bw as OptimisationDismissReason, Vw as OptimisationKind } from "./graphql-types-D82O-0XY.js";
3
3
 
4
4
  // src/modules/observability/optimisation.ts
5
5
  /** The look-back window the detectors use when the evidence does not say. */
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { createContext, useContext, useEffect, useRef, useState } from "react";
2
+ import { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
 
5
5
  // src/askAbout/askAboutBridge.tsx
@@ -68,5 +68,39 @@ function useFgAskableSelection(describe) {
68
68
  function useFgAskAboutAvailable() {
69
69
  return useContext(AskAboutContext) !== null;
70
70
  }
71
+ /**
72
+ * ★ BOFF-13381: asks the assistant about something from a button ("Ask AI" in
73
+ * a toolbar), as choosing the menu item does: the assistant opens with it as
74
+ * the chip, and nothing is sent. Null where the host offers no such thing, so
75
+ * the button is not shown.
76
+ */
77
+ function useFgAskAssistant() {
78
+ return useContext(AskAboutContext)?.ask ?? null;
79
+ }
80
+ /**
81
+ * ★ BOFF-13381: {@link useFgAskable} plus the same ask from a button. `ref`
82
+ * marks the element askable (and remembers it); `ask` asks about it as the
83
+ * menu does, outlining that element, and is undefined where the host offers no
84
+ * such thing — so a toolbar shows the button only when it works.
85
+ */
86
+ function useFgAskableAction(describe, options = {}) {
87
+ const attach = useFgAskable(describe, options);
88
+ const askAssistant = useFgAskAssistant();
89
+ const elementRef = useRef(null);
90
+ const describeRef = useRef(describe);
91
+ useEffect(() => {
92
+ describeRef.current = describe;
93
+ }, [describe]);
94
+ return {
95
+ ref: useCallback((element) => {
96
+ elementRef.current = element;
97
+ attach(element);
98
+ }, [attach]),
99
+ ask: useMemo(() => askAssistant && options.disabled !== true ? () => {
100
+ const input = describeRef.current();
101
+ if (input) askAssistant(input, elementRef.current);
102
+ } : void 0, [askAssistant, options.disabled])
103
+ };
104
+ }
71
105
 
72
- export { useFgAskableSelection as i, useFgAskAboutAvailable as n, useFgAskable as r, FluidGridsAskAboutBridge as t };
106
+ export { useFgAskableAction as a, useFgAskable as i, useFgAskAboutAvailable as n, useFgAskableSelection as o, useFgAskAssistant as r, FluidGridsAskAboutBridge as t };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { NI as WorkflowTestAssertionOperator } from "./graphql-types-C5Tr6508.js";
2
+ import { rL as WorkflowTestAssertionOperator } from "./graphql-types-D82O-0XY.js";
3
3
 
4
4
  // src/builder/lib/assert-rules.ts
5
5
  /** Every operator, in the order the editors offer them. */
@@ -28,11 +28,13 @@ interface FgAskFocusInput {
28
28
  readonly tool: string;
29
29
  readonly args: Readonly<Record<string, string | number>>;
30
30
  };
31
+ readonly suggestions?: readonly string[];
31
32
  }
32
33
  type FgAskDescribe = () => FgAskFocusInput | null;
33
34
  interface FgAskAboutHost {
34
35
  readonly attach: (element: HTMLElement, describe: FgAskDescribe) => () => void;
35
36
  readonly attachSelection: (element: HTMLElement, describe: FgAskDescribe) => () => void;
37
+ readonly ask?: (input: FgAskFocusInput, anchor?: HTMLElement | null) => boolean;
36
38
  }
37
39
  interface FluidGridsAskAboutBridgeProps {
38
40
  host: FgAskAboutHost;
package/dist/assistant.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { n as useFluidGridsPageControls, t as FluidGridsAssistantBridge } from "./pageControlsBridge-0pX9s-3k.js";
3
3
  import { a as notifyFluidGridsAiCreditsUpdated, i as FluidGridsAiCreditsBridge, n as FLUIDGRIDS_AI_CREDITS_UPDATED_EVENT, r as FLUIDGRIDS_AI_PRODUCT_KEY, t as AiCreditBalanceSlot } from "./aiCreditsBridge-BuE92tKo.js";
4
- import { i as useFgAskableSelection, r as useFgAskable, t as FluidGridsAskAboutBridge } from "./askAboutBridge-kpcjcR9Y.js";
4
+ import { i as useFgAskable, o as useFgAskableSelection, t as FluidGridsAskAboutBridge } from "./askAboutBridge-ByYsQams.js";
5
5
  import { r as useFluidGridsAssistantLiveCanvas, t as createFluidGridsAssistantLiveCanvas } from "./liveCanvas-D5ytXDp8.js";
6
6
 
7
7
  export { AiCreditBalanceSlot, FLUIDGRIDS_AI_CREDITS_UPDATED_EVENT, FLUIDGRIDS_AI_PRODUCT_KEY, FluidGridsAiCreditsBridge, FluidGridsAskAboutBridge, FluidGridsAssistantBridge, createFluidGridsAssistantLiveCanvas, notifyFluidGridsAiCreditsUpdated, useFgAskable, useFgAskableSelection, useFluidGridsAssistantLiveCanvas, useFluidGridsPageControls };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { w as resolveInputHandles } from "./node-operation-selection-BGj5YwAS.js";
2
+ import { w as resolveInputHandles } from "./node-operation-selection-bFx9s45-.js";
3
3
 
4
4
  // src/builder/hooks/attach-node-helpers.ts
5
5
  /** Horizontal gap between a source node and a node attached via the "+" flow. */
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { n as useAgentMarksStore, r as toPlainText } from "./marksStore-a9oIMMot.js";
3
- import { B as selectedOperationOf, L as nodeTitle, z as paramsFromOperation } from "./FluidGridsProvider-BOBuK7kj.js";
4
- import { A as useFlowStore } from "./node-operation-selection-BGj5YwAS.js";
3
+ import { U as paramsFromOperation, V as nodeTitle, W as selectedOperationOf } from "./FluidGridsProvider-Dxehlm-2.js";
4
+ import { A as useFlowStore } from "./node-operation-selection-bFx9s45-.js";
5
5
  import { t as notesKeyOf } from "./notesKey-5EaREBGA.js";
6
6
  import { AgentToolError, defineAgentTool } from "@burdenoff/fe-libs/shared/agent-tools";
7
7
  import { z } from "zod";
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { t as ExecutionsListPage } from "./ExecutionsListPage-DMAOPJCa.js";
3
- import { t as ExecutionDetailPage } from "./ExecutionDetailPage-BuU66VvK.js";
2
+ import { t as ExecutionsListPage } from "./ExecutionsListPage-BRvj71Nd.js";
3
+ import { t as ExecutionDetailPage } from "./ExecutionDetailPage-BfFrWnBj.js";
4
4
 
5
5
  export { ExecutionDetailPage, ExecutionsListPage };
@@ -1,12 +1,12 @@
1
1
  "use client";
2
- import { A as useFlowStore, N as isTriggerOperation, j as useIsValidConnection, r as CODE_WORKFLOW_NODE_TYPE } from "./node-operation-selection-BGj5YwAS.js";
3
- import { A as MissingParametersDialog, At as phaseAfterTakeOver, Bn as buildStickyNode, Bt as revisionOf, Ct as useEditLeaseLocked, D as buildOperationSeed, Dt as leaseCallQueue, Et as isLocked, Ft as forgetSessionForReload, Hn as useMarkdownRenderer, Ht as AUTOSAVE_RETRY_DELAYS_MS, It as rememberSessionForReload, Jt as saveFailureActionOf, Kt as inAppLeaveTarget, Lt as sessionBeforeReload, M as workflowParameterIssues, Mt as shouldReleaseForIdle, Nt as tickAction, Ot as leaseCallSequence, Pt as EDIT_SESSION_ID, Rt as rememberOwnStatusChange, S as useLatestFailedRun, St as workflowSaveQueue, Tt as bannerOf, Ut as canAutosave, Vn as loadMarkdown, Vt as AUTOSAVE_DEBOUNCE_MS, Xt as useNodeExecution, Yt as workflowFingerprint, a as NODES_METADATA, at as departingSave, bt as saveIndicatorOf, cn as useCanvasEdges, ct as leavingLosesChanges, dn as loadDefinitionJson, dt as watchLeavingLosesChanges, f as isNodeConfigsInitialized, ft as isFlowComplete, g as registerWorkflowNodeTypes, i as AVAILABLE_NODES, it as autosaveAllowedFor, j as useRunGuard, jt as releasesOnClose, k as useInsertNode, kt as phaseAfterAcquire, l as ensureNodeConfigsLoaded, ln as useNodeRegistryRevision, lt as savedEverythingBeforeLeaving, m as refetchStoreNodes, mt as useSaveWorkflow, nt as useGuardedNavigate, o as NODE_CONFIGS, ot as editStateFor, p as onNodeTypesUpdate, pt as useFlowValidator, qt as resettledBaseline, rt as useManualSave, s as NODE_TYPES, st as editingLeaseLocked, t as FluidGridsContext, ut as touchesSavedFields, v as scheduleNodePaletteLoad, wt as useEditLeaseStore, x as getNodeMetadata, xt as useSaveStatusStore, yt as refusalOfQuota, zn as getNodeDetail, zt as rememberRevision } from "./FluidGridsProvider-BOBuK7kj.js";
2
+ import { A as useFlowStore, N as isTriggerOperation, j as useIsValidConnection, r as CODE_WORKFLOW_NODE_TYPE } from "./node-operation-selection-bFx9s45-.js";
3
+ import { $t as workflowFingerprint, At as isLocked, Bt as rememberSessionForReload, Ct as refusalOfQuota, Dt as useEditLeaseLocked, Et as workflowSaveQueue, F as useRunGuard, Ft as releasesOnClose, Gn as loadMarkdown, Gt as AUTOSAVE_DEBOUNCE_MS, Ht as rememberOwnStatusChange, I as workflowParameterIssues, It as shouldReleaseForIdle, Kn as useMarkdownRenderer, Kt as AUTOSAVE_RETRY_DELAYS_MS, Lt as tickAction, Mt as leaseCallSequence, N as useInsertNode, Nt as phaseAfterAcquire, Ot as useEditLeaseStore, P as MissingParametersDialog, Pt as phaseAfterTakeOver, Qt as saveFailureActionOf, Rt as EDIT_SESSION_ID, S as useLatestFailedRun, Tt as useSaveStatusStore, Un as getNodeDetail, Ut as rememberRevision, Vt as sessionBeforeReload, Wn as buildStickyNode, Wt as revisionOf, Xt as inAppLeaveTarget, Zt as resettledBaseline, _t as useFlowValidator, a as NODES_METADATA, ct as autosaveAllowedFor, dt as editingLeaseLocked, en as useNodeExecution, f as isNodeConfigsInitialized, fn as useCanvasEdges, ft as leavingLosesChanges, g as registerWorkflowNodeTypes, gt as isFlowComplete, hn as loadDefinitionJson, ht as watchLeavingLosesChanges, i as AVAILABLE_NODES, j as buildOperationSeed, jt as leaseCallQueue, kt as bannerOf, l as ensureNodeConfigsLoaded, lt as departingSave, m as refetchStoreNodes, mt as touchesSavedFields, o as NODE_CONFIGS, ot as useGuardedNavigate, p as onNodeTypesUpdate, pn as useNodeRegistryRevision, pt as savedEverythingBeforeLeaving, qt as canAutosave, s as NODE_TYPES, st as useManualSave, t as FluidGridsContext, ut as editStateFor, v as scheduleNodePaletteLoad, vt as useSaveWorkflow, wt as saveIndicatorOf, x as getNodeMetadata, zt as forgetSessionForReload } from "./FluidGridsProvider-Dxehlm-2.js";
4
4
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
5
5
  import { n as preloadableLazy } from "./preloadable-lazy-Pp47mqQ9.js";
6
6
  import { t as Input$1 } from "./input-ChT6Q-Pr.js";
7
- import { t as useGlobalStoreClient } from "./useGlobalStoreClient-BfmKmeIx.js";
7
+ import { t as useGlobalStoreClient } from "./useGlobalStoreClient-BOI2kYRv.js";
8
8
  import { r as getFluidGridsConfig } from "./config-X97zrIvn.js";
9
- import { _ as useInstalledNodes, d as getStoreNodeAvailability, f as getStoreNodeIcon, g as storeNodeInstallVersion, h as storeNodeDisplayVersion, i as useTemplateImportFlow, l as useWorkflowTemplates, m as isStoreNodeUpdateAvailable, p as getStoreNodeType, t as TemplateCard, u as filterStoreNodesForPalette } from "./TemplateCard-7rE1VAIC.js";
9
+ import { _ as useInstalledNodes, d as getStoreNodeAvailability, f as getStoreNodeIcon, g as storeNodeInstallVersion, h as storeNodeDisplayVersion, i as useTemplateImportFlow, l as useWorkflowTemplates, m as isStoreNodeUpdateAvailable, p as getStoreNodeType, t as TemplateCard, u as filterStoreNodesForPalette } from "./TemplateCard-DD3vJ3a5.js";
10
10
  import { _ as useWorkflowTestsEnabled, d as useFluidGridsFlag, h as usePhaseDFlags, l as useDurableFunctionNodesEnabled, p as usePaletteGates, t as FLUIDGRIDS_FLAGS, u as useDurableParityEnabled } from "./feature-flags-B_b8PJ6Z.js";
11
11
  import { n as isImageIcon, t as NodeTypeIcon } from "./node-type-icon-D28t8I64.js";
12
12
  import { i as filterPaletteNodes } from "./durable-nodes-DXCCQYWD.js";
@@ -18,34 +18,34 @@ import { o as emitUpgradeClicked, t as emitNodeInstalled } from "./fluidgridsEve
18
18
  import { n as getFluidGridsClient, s as waitForFluidGridsClient } from "./client-Ctl4jmY3.js";
19
19
  import { c as NodeSchemaIntrospectionDocument, l as RemoveNodeFromWorkflowsDocument, n as useConnections, s as NodeUsageStatusDocument } from "./useConnections-BlB0gbOB.js";
20
20
  import { o as throwIfResultError, t as describeOperationError } from "./errors-xPZ-IbQd.js";
21
- import { n as firstInputHandleId, t as computeAttachPosition } from "./attach-node-helpers-CtV1mej0.js";
21
+ import { n as firstInputHandleId, t as computeAttachPosition } from "./attach-node-helpers-CCWFS75V.js";
22
22
  import { a as DialogFooter$1, i as DialogDescription$1, l as DialogTitle$1, o as DialogHeader$1, r as DialogContent$1, t as Dialog$1 } from "./dialog-BVd152GS.js";
23
23
  import { t as NavigationV2Provider } from "./NavigationV2Provider-DCDt35eG.js";
24
24
  import { i as emitFluidGridsEvent } from "./token-refresh-link-BjN7H4qA.js";
25
25
  import { n as useBuilderReadOnly, t as BuilderReadOnlyProvider } from "./read-only-context-Dt9N9SIG.js";
26
26
  import { r as MAPPING_TYPE_COLORS, t as MAPPING_COMPATIBILITY_COLORS } from "./mapping-colors-BIX_YeCQ.js";
27
- import { n as useFgAskAboutAvailable } from "./askAboutBridge-kpcjcR9Y.js";
28
- import { n as LogsPanel } from "./logs-panel-Cn4gGng9.js";
29
- import { a as draftFromTestCase, c as enabledCaseIds, d as pinnedOutputsFromCanvas, f as testRunSummaryText, h as useAgentTokenStream, l as isTestRunOpen, m as testStatusTone, n as useWorkflowTests, o as draftToInput, p as testStatusLabel, r as TEST_STATUS_TONE_CLASS, s as emptyTestCaseDraft, u as nextSortOrder, v as latestAgentTokenStream } from "./use-workflow-tests-BUzndyWO.js";
30
- import { r as useExecutionActions } from "./useExecutions-GgjDOgcd.js";
27
+ import { n as useFgAskAboutAvailable } from "./askAboutBridge-ByYsQams.js";
28
+ import { n as LogsPanel } from "./logs-panel-_Dl5Nrdn.js";
29
+ import { a as draftFromTestCase, c as enabledCaseIds, d as pinnedOutputsFromCanvas, f as testRunSummaryText, h as useAgentTokenStream, l as isTestRunOpen, m as testStatusTone, n as useWorkflowTests, o as draftToInput, p as testStatusLabel, r as TEST_STATUS_TONE_CLASS, s as emptyTestCaseDraft, u as nextSortOrder, v as latestAgentTokenStream } from "./use-workflow-tests-Lz8fPQZg.js";
30
+ import { r as useExecutionActions } from "./useExecutions-lRqeXDYS.js";
31
31
  import { n as useAgentMarksStore } from "./marksStore-a9oIMMot.js";
32
32
  import { t as notesKeyOf } from "./notesKey-5EaREBGA.js";
33
- import { a as saveWorkflowDescription, c as CreateWorkflowRefusalDialog, i as normalizeWorkflowDescription, n as useWorkflowCodeExport, o as visibleWorkflowDescription, r as commitWorkflowDescription, s as workflowDescriptionCharactersLeft } from "./useWorkflowCodeExport-DrcfDTcD.js";
33
+ import { a as saveWorkflowDescription, c as CreateWorkflowRefusalDialog, i as normalizeWorkflowDescription, n as useWorkflowCodeExport, o as visibleWorkflowDescription, r as commitWorkflowDescription, s as workflowDescriptionCharactersLeft } from "./useWorkflowCodeExport-qGat2KNz.js";
34
34
  import { r as RUNS_QUOTA_NAME, t as BILLING_PLANS_PATH } from "./quota-Cdt8yz7N.js";
35
35
  import { t as EntityTagPicker } from "./EntityTagPicker-BppBSEJk.js";
36
36
  import { t as FluidGridsDocsLink } from "./FluidGridsDocsLink-JxkBpOeb.js";
37
37
  import { n as runsQuotaLevel, t as readRunsQuota } from "./runsQuota-DvXR6mRN.js";
38
38
  import { a as SdkPermissionGate, i as SdkPermissionButton, s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-dcxg6zG6.js";
39
- import { a as useDeactivateWorkflow, d as useRestoreWorkflowVersion, o as useDeleteWorkflow, t as useActivateWorkflow, v as useWorkflowVersions } from "./useWorkflows-DSZUrK_o.js";
39
+ import { a as useDeactivateWorkflow, d as useRestoreWorkflowVersion, o as useDeleteWorkflow, t as useActivateWorkflow, v as useWorkflowVersions } from "./useWorkflows-CXwXQg74.js";
40
40
  import { t as WorkflowDefinitionDocument } from "./WorkflowDefinitionDocument-DZLbTPUZ.js";
41
41
  import { o as countLifecycle, t as VersionLifecycleBar } from "./VersionLifecycleBar-DuphLOT0.js";
42
- import { $P as VersioningBehavior, Eu as DrainageStatus, PI as WorkflowTestExpectedStatus, aI as WorkflowExportFormat, jo as CodeReplaceStatus, rI as WorkflowEnvironment } from "./graphql-types-C5Tr6508.js";
42
+ import { DI as WorkflowExportFormat, Iu as DrainageStatus, TI as WorkflowEnvironment, Vo as CodeReplaceStatus, iL as WorkflowTestExpectedStatus, xF as VersioningBehavior } from "./graphql-types-D82O-0XY.js";
43
43
  import { t as buildNodeDisplayMap } from "./run-display-UjLAoYqQ.js";
44
44
  import { t as useWorkflowProposal } from "./useWorkflowProposal-B9vXLKef.js";
45
45
  import { n as useRequestedProposal } from "./useRequestedProposal-B7uPXfZB.js";
46
46
  import { t as AiCreditBalanceSlot } from "./aiCreditsBridge-BuE92tKo.js";
47
47
  import { t as downloadBlob } from "./workflow-transfer-CQnQC-ke.js";
48
- import { _ as sortFidelityItems, c as fileBaseName, d as isLosslessReport, f as isLossyFidelityItem, m as orderedExportFiles, o as buildExportDownload, p as lineOfNode } from "./workflow-code-transfer-Dbnvw5fc.js";
48
+ import { _ as sortFidelityItems, c as fileBaseName, d as isLosslessReport, f as isLossyFidelityItem, m as orderedExportFiles, o as buildExportDownload, p as lineOfNode } from "./workflow-code-transfer-50pRK3nx.js";
49
49
  import { Suspense, lazy, useCallback, useContext, useDeferredValue, useEffect, useLayoutEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
50
50
  import { Link, useNavigate, useParams } from "react-router";
51
51
  import { useMutation, useQuery } from "@apollo/client/react";
@@ -6687,10 +6687,10 @@ function IntroductionPropertyPanel() {
6687
6687
  * waiting for its chunk and React's Suspense throttle (about 0.5 s on first
6688
6688
  * open even with the chunk cached).
6689
6689
  */
6690
- const NodeDetailViewOverlay = preloadableLazy(() => import("./node-detail-view-N6n3qegt.js").then((m) => m.NodeDetailView), "NodeDetailView");
6691
- const QuickConfigPanelOverlay = preloadableLazy(() => import("./quick-config-panel-DABEVJR9.js").then((m) => m.QuickConfigPanel), "QuickConfigPanel");
6692
- const SidebarNodeEditorOverlay = preloadableLazy(() => import("./sidebar-node-editor-BHqtoMC5.js").then((m) => m.SidebarNodeEditor), "SidebarNodeEditor");
6693
- const WorkflowShareDialogOverlay = preloadableLazy(() => import("./WorkflowShareDialog-BcfzZDOj.js").then((n) => n.n).then((m) => m.WorkflowShareDialog), "WorkflowShareDialog");
6690
+ const NodeDetailViewOverlay = preloadableLazy(() => import("./node-detail-view-Dz1ZCIzV.js").then((m) => m.NodeDetailView), "NodeDetailView");
6691
+ const QuickConfigPanelOverlay = preloadableLazy(() => import("./quick-config-panel-iDMk4TT5.js").then((m) => m.QuickConfigPanel), "QuickConfigPanel");
6692
+ const SidebarNodeEditorOverlay = preloadableLazy(() => import("./sidebar-node-editor-C16VnTzr.js").then((m) => m.SidebarNodeEditor), "SidebarNodeEditor");
6693
+ const WorkflowShareDialogOverlay = preloadableLazy(() => import("./WorkflowShareDialog-D8psodlb.js").then((n) => n.n).then((m) => m.WorkflowShareDialog), "WorkflowShareDialog");
6694
6694
  const ConnectionFormDialogOverlay = preloadableLazy(() => import("./ConnectionFormDialog-Dr1-CTan.js").then((n) => n.n).then((m) => m.ConnectionFormDialog), "ConnectionFormDialog");
6695
6695
  const EdgeMapperOverlay = preloadableLazy(() => import("./app-BIsCEL65.js").then((m) => m.default), "EdgeMapper");
6696
6696
  const EdgeConditionBuilderOverlay = preloadableLazy(() => import("./conditionBuilder-D8aLGL1w.js").then((m) => m.default), "EdgeConditionBuilder");
@@ -19442,7 +19442,7 @@ const FlowBuilder = ({ readOnly = false, fitToScreen = false }) => {
19442
19442
  paletteGatesRef.current = paletteGates;
19443
19443
  }, [paletteGates]);
19444
19444
  useWarmBuilderOverlays();
19445
- useLazyAgentTools(() => import("./agentTools-CSoCNDRx.js").then(({ createBuilderAgentTools }) => createBuilderAgentTools({ durableFunctionsEnabled: () => paletteGatesRef.current })), !editingBlocked, "Agent tools");
19445
+ useLazyAgentTools(() => import("./agentTools-B4BDCe57.js").then(({ createBuilderAgentTools }) => createBuilderAgentTools({ durableFunctionsEnabled: () => paletteGatesRef.current })), !editingBlocked, "Agent tools");
19446
19446
  const [nodes, edges, onNodesChange, onEdgesChange, onConnect] = useFlowStore(useShallow((s) => {
19447
19447
  return [
19448
19448
  s.workflow.nodes,
@@ -19486,7 +19486,7 @@ const FlowBuilder = ({ readOnly = false, fitToScreen = false }) => {
19486
19486
  useEffect(() => {
19487
19487
  fitViewRef.current = fitView;
19488
19488
  }, [fitView]);
19489
- useLazyAgentTools(() => import("./canvasNoteTools-DTc3EKvg.js").then(({ createCanvasNoteTools }) => createCanvasNoteTools({ focusNode: (nodeId) => fitViewRef.current({
19489
+ useLazyAgentTools(() => import("./canvasNoteTools-CLMZ6u5m.js").then(({ createCanvasNoteTools }) => createCanvasNoteTools({ focusNode: (nodeId) => fitViewRef.current({
19490
19490
  nodes: [{ id: nodeId }],
19491
19491
  duration: 400,
19492
19492
  padding: .6,