@burdenoff/fluidgrids-fe-sdk 2026.1111.24 → 2026.1112.2

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 (55) hide show
  1. package/dist/{AiStudioPage-NfhraV2M.js → AiStudioPage-C-jio5Bz.js} +4 -4
  2. package/dist/{DataSinkDashboardPage-BfdKumMH.js → DataSinkDashboardPage-CRBsNjoS.js} +1 -1
  3. package/dist/{ExecutionDetailPage-Dtpn7Xnl.js → ExecutionDetailPage-Cw4zyaIG.js} +5 -5
  4. package/dist/{ExecutionsListPage-DeqJnEO7.js → ExecutionsListPage-BgeqwVr2.js} +4 -4
  5. package/dist/{FluidGridsProvider-BuZERrTA.js → FluidGridsProvider-BFfTxl9m.js} +2 -6
  6. package/dist/{HistoryPage-BC7ld-oQ.js → HistoryPage-BdijEOHp.js} +2 -2
  7. package/dist/{InsightsPage-C8X1g_Ya.js → InsightsPage-2jnYlozA.js} +1 -1
  8. package/dist/{MissingNodesInstallModal-DUmwDs4e.js → MissingNodesInstallModal-C0wPwR0Q.js} +1 -1
  9. package/dist/{QuotaExhaustedDialog-RctNPfz_.js → QuotaExhaustedDialog-BKZ9moP8.js} +1 -1
  10. package/dist/{SettingsPage-BbE4S63W.js → SettingsPage-BaM98QU_.js} +3 -3
  11. package/dist/{TemplateCard-D800haiE.js → TemplateCard-DYDVNYo6.js} +2 -2
  12. package/dist/{TemplateConfigurationModal-DYs1YxYy.js → TemplateConfigurationModal-BzdkGWim.js} +1 -1
  13. package/dist/{TemplateDetailPanel-CKhCQlyo.js → TemplateDetailPanel-s4EqQhra.js} +1 -1
  14. package/dist/{TemplatePreview-DbF97Jwi.js → TemplatePreview-B_-zS_Mm.js} +3 -3
  15. package/dist/{TemplatesPage-BR6iOnC0.js → TemplatesPage-OIMd6cIl.js} +4 -4
  16. package/dist/{VersionDiffDialog-B00qeGiE.js → VersionDiffDialog-Cp2doV3f.js} +1 -1
  17. package/dist/{WorkflowBuilder-BWqiMpdk.js → WorkflowBuilder-B2tIOPi0.js} +4 -4
  18. package/dist/{WorkflowBuilder-CWsUITzN.js → WorkflowBuilder-DD4UIAjC.js} +10 -9
  19. package/dist/{WorkflowSearchRedirect-7Kc7NniX.js → WorkflowSearchRedirect-BhXzWDj7.js} +1 -1
  20. package/dist/{WorkflowsList-Bnov6LCT.js → WorkflowsList-BV-2J_gG.js} +138 -10
  21. package/dist/{agentTools-yi8CDKzs.js → agentTools-EVdEThES.js} +4 -4
  22. package/dist/{canvasNoteTools-kRtdgYMQ.js → canvasNoteTools-C5Vf0pxu.js} +3 -3
  23. package/dist/{code-editor-field-Dg2U8mk1.js → code-editor-field-o7qp9eTq.js} +2 -2
  24. package/dist/{definition-canvas--3MPHoP-.js → definition-canvas-F8DGty5m.js} +1 -1
  25. package/dist/executions.js +2 -2
  26. package/dist/{flow-builder-CEYMv_sG.js → flow-builder-Dn4PCWuf.js} +193 -18
  27. package/dist/history.js +1 -1
  28. package/dist/{index-T8fJI6Ys.d.ts → index-DbTgk7dK.d.ts} +1 -1
  29. package/dist/{index-DjiFgEQl.d.ts → index-f_Nl7Ons.d.ts} +1 -0
  30. package/dist/index.d.ts +2 -2
  31. package/dist/index.js +25 -25
  32. package/dist/{node-detail-view-Ft8huQ5T.js → node-detail-view-kWiwJEKr.js} +6 -6
  33. package/dist/{node-editor-tab-body-CjwxJdlF.js → node-editor-tab-body-C71Y0fRJ.js} +3 -3
  34. package/dist/{node-operation-selection--oy-yEq_.js → node-operation-selection-icAhaNza.js} +1 -0
  35. package/dist/observability.d.ts +1 -1
  36. package/dist/observability.js +2 -2
  37. package/dist/{popover-B6Rjrhar.js → popover-v7g8TWmm.js} +1 -1
  38. package/dist/{quick-config-panel-D95dc_2F.js → quick-config-panel-C84vsDYD.js} +4 -4
  39. package/dist/{schedule-panel-C-N92gxl.js → schedule-panel-BrNKy9DY.js} +662 -24
  40. package/dist/settings.js +1 -1
  41. package/dist/{sidebar-node-editor-BHBicLCn.js → sidebar-node-editor-D-2lPHwq.js} +4 -4
  42. package/dist/templates.js +2 -2
  43. package/dist/{useDurableParity-DEceXnEa.js → useDurableParity-fFmfa97r.js} +1 -1
  44. package/dist/{useExecutions-D3S4aqIQ.js → useExecutions-DNGW4yxG.js} +1 -1
  45. package/dist/{useObservability-B9cOl5mw.js → useObservability-u-MZCWUV.js} +1 -1
  46. package/dist/{useRunHistory-uTJepemz.js → useRunHistory-x9bVUB9T.js} +1 -1
  47. package/dist/{useWorkflowCodeExport-L-5NIRiH.js → useWorkflowCodeExport-CV3SZeKm.js} +82 -3
  48. package/dist/{useWorkflows-D9BlhpWH.js → useWorkflows-CVb5zXKt.js} +1 -1
  49. package/dist/workflow-builder.d.ts +1 -1
  50. package/dist/workflow-builder.js +5 -5
  51. package/dist/workflow-pages.d.ts +2 -2
  52. package/dist/workflow-pages.js +13 -13
  53. package/dist/workflow-preview.js +2 -2
  54. package/dist/workflows-list.js +1 -1
  55. 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-CEYMv_sG.js";
5
- import { Ot as builderPathOf, kt as classifyCreateRefusal, u as ensureNodeTypesLoaded, z as buildOperationSeed } from "./FluidGridsProvider-BuZERrTA.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-Dn4PCWuf.js";
5
+ import { Ot as builderPathOf, kt as classifyCreateRefusal, u as ensureNodeTypesLoaded, z as buildOperationSeed } from "./FluidGridsProvider-BFfTxl9m.js";
6
6
  import { _ as throwIfResultError, n as getFluidGridsClient } from "./client-C9XSzSXr.js";
7
7
  import { a as notifyFluidGridsAiCreditsUpdated, t as AiCreditBalanceSlot } from "./aiCreditsBridge-BuE92tKo.js";
8
8
  import { Ir as WorkflowGenerationDocument, x as CancelWorkflowGenerationDocument, xt as GenerateWorkflowFromPromptDocument } from "./graphql-operation-types-BdU65FNm.js";
9
- import { n as useCreateWorkflow } from "./useWorkflows-D9BlhpWH.js";
9
+ import { n as useCreateWorkflow } from "./useWorkflows-CVb5zXKt.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 { T as CreateWorkflowRefusalDialog } from "./useWorkflowCodeExport-L-5NIRiH.js";
12
+ import { A as CreateWorkflowRefusalDialog } from "./useWorkflowCodeExport-CV3SZeKm.js";
13
13
  import { s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-B2lhWNoN.js";
14
14
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
15
15
  import { useNavigate } from "react-router";
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
3
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
4
- import { n as useDataSinks, t as useDataSinkData } from "./useObservability-B9cOl5mw.js";
4
+ import { n as useDataSinks, t as useDataSinkData } from "./useObservability-u-MZCWUV.js";
5
5
  import { s as prettyJson, t as formatBytes } from "./utils-uaL5UVxb.js";
6
6
  import { useEffect, useMemo, useState } from "react";
7
7
  import { Icon } from "@iconify/react";
@@ -1,12 +1,12 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
- import { i as useRunPending, n as useDurableParityRunFields, o as ExecutionStatusBadge, r as useRunMetadata, s as NodeStatusBadge, t as setRunVersioningOverride } from "./useDurableParity-DEceXnEa.js";
3
+ import { i as useRunPending, n as useDurableParityRunFields, o as ExecutionStatusBadge, r as useRunMetadata, s as NodeStatusBadge, t as setRunVersioningOverride } from "./useDurableParity-fFmfa97r.js";
4
4
  import { n as formatRunVersion, r as nodeDisplayTitle, t as buildNodeDisplayMap } from "./run-display-BycKYSU0.js";
5
5
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
6
6
  import { s as isAgentNodeType } from "./agent-form-Bfvm32j1.js";
7
- import { Cn as canSignalRun, I as describeRunError, L as describeRunStep, On as runSignalTargets, Tn as durableInterfaceOf, cn as nodeStateDurationMs, ln as runDurationMs, sn as formatElapsedMs } from "./FluidGridsProvider-BuZERrTA.js";
7
+ import { An as runSignalTargets, Dn as durableInterfaceOf, I as describeRunError, L as describeRunStep, Tn as canSignalRun, dn as runDurationMs, ln as formatElapsedMs, un as nodeStateDurationMs } from "./FluidGridsProvider-BFfTxl9m.js";
8
8
  import { n as useFgAskable, r as useFgAskableSelection } from "./askAboutBridge-BV8m95kk.js";
9
- import { f as callbackTone, g as shortRunId, h as runChainLinks, m as parseMetadataDefinition, n as useExecution, p as overrideRequestOf, r as useExecutionActions, t as useAutoRefresh } from "./useExecutions-D3S4aqIQ.js";
9
+ import { f as callbackTone, g as shortRunId, h as runChainLinks, m as parseMetadataDefinition, n as useExecution, p as overrideRequestOf, r as useExecutionActions, t as useAutoRefresh } from "./useExecutions-DNGW4yxG.js";
10
10
  import { _ as throwIfResultError, m as describeOperationError, n as getFluidGridsClient, r as getFluidGridsClientSafe, x as getFluidGridsConfig } from "./client-C9XSzSXr.js";
11
11
  import { Cn as RunLogsDocument, Zr as WorkflowRunHierarchyDocument, ft as ExplainRunDocument, o as AgentStepUpdatedDocument, pn as RunAiUsageDocument, s as AgentTraceDocument, xn as RunLogAppendedDocument } from "./graphql-operation-types-BdU65FNm.js";
12
12
  import { i as SdkPermissionButton, s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-B2lhWNoN.js";
@@ -16,14 +16,14 @@ import { a as encodedPayloadBytes, f as EffectBadge, h as useRunPolicyDecisions,
16
16
  import { n as useWorkflowProposal, o as canSaveRunAsTestCase, r as saveRunAsTestCase, t as WorkflowProposalCard } from "./WorkflowProposalCard-U31u1qcw.js";
17
17
  import { t as AiCreditBalanceSlot } from "./aiCreditsBridge-BuE92tKo.js";
18
18
  import { a as fetchRunFailureClusters, i as dismissRunFailureCluster, r as OPEN_STATUSES, t as BUCKET_LABELS } from "./FailureTriagePanel-BzD4UJU5.js";
19
- import { a as useDurableRunFields, i as useDeterminismStatus, n as SignalRunDialog, o as useRunStackTrace, r as terminateDurableRun, s as RunHistoryView, t as useRunHistory } from "./useRunHistory-uTJepemz.js";
19
+ import { a as useDurableRunFields, i as useDeterminismStatus, n as SignalRunDialog, o as useRunStackTrace, r as terminateDurableRun, s as RunHistoryView, t as useRunHistory } from "./useRunHistory-x9bVUB9T.js";
20
20
  import { $P as VersioningBehavior, FI as WorkflowUpdateWaitFor, L as AgentStepKind, _I as WorkflowQueryRejectCondition, jd as ErrorType } from "./graphql-types-v6CTGwA0.js";
21
21
  import { a as formatTokens, d as formatMicroUsd, o as modelLabel, r as aiCost } from "./ai-usage-bmUn-gJP.js";
22
22
  import { c as useDurableParityEnabled, f as usePhaseCFlags, m as useWorkflowTestsEnabled, s as useDurableFunctionNodesEnabled } from "./feature-flags-DM5myWaD.js";
23
23
  import { A as revokeSignalToken, B as updateActivityOptions, D as resetActivities, E as queryRun, N as sendRunUpdate, O as resetRun, R as unpauseActivities, S as fetchSignalTokens, V as upsertRunSearchAttributes, _ as fetchPauseRules, b as fetchRunUpdate, d as failActivityById, g as fetchCodecServerSettings, i as completeActivityById, k as resetRunToLastCleanTask, s as createSignalToken, v as fetchRunControlFields, w as pauseActivities, y as fetchRunHistoryArchive } from "./api-DwaHAJtA.js";
24
24
  import { a as fetchTaskQueueStats } from "./api-C8WmUejq.js";
25
25
  import { a as RUN_CONTROL_DIALOG_STYLE, c as parseJsonInput, i as NativeSelect, l as parseJsonObjectInput, n as JsonBlock, o as StatusPill, r as JsonField, s as newRunControlId, t as FieldError, u as useResource } from "./shared-CMfn30xT.js";
26
- import { v as useWorkflowVersions } from "./useWorkflows-D9BlhpWH.js";
26
+ import { v as useWorkflowVersions } from "./useWorkflows-CVb5zXKt.js";
27
27
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
28
28
  import { Link, useNavigate, useParams, useSearchParams } from "react-router";
29
29
  import { Icon } from "@iconify/react";
@@ -1,17 +1,17 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
3
  import { M as DEFAULT_EXECUTIONS_FILTER, N as useExecutionsStore, m as describeOperationError, n as getFluidGridsClient } from "./client-C9XSzSXr.js";
4
- import { c as OPERATORS_BY_TYPE, i as useExecutionStats, l as buildSearchAttributeFilter, o as useExecutionsWithStore, r as useExecutionActions, s as EMPTY_SEARCH_FILTER, t as useAutoRefresh, u as searchFilterConflicts, y as validateDateRange } from "./useExecutions-D3S4aqIQ.js";
4
+ import { c as OPERATORS_BY_TYPE, i as useExecutionStats, l as buildSearchAttributeFilter, o as useExecutionsWithStore, r as useExecutionActions, s as EMPTY_SEARCH_FILTER, t as useAutoRefresh, u as searchFilterConflicts, y as validateDateRange } from "./useExecutions-DNGW4yxG.js";
5
5
  import { c as useDurableParityEnabled, f as usePhaseCFlags } from "./feature-flags-DM5myWaD.js";
6
6
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
7
7
  import { n as useFluidGridsPageControls } from "./pageControlsBridge-0pX9s-3k.js";
8
8
  import { t as executionsControls } from "./pageControlSpecs-DZJ9K37m.js";
9
9
  import { t as TagFilterSelect } from "./TagFilterSelect-VC6JMK3F.js";
10
- import { a as useRunStatusCounts, c as runStatusLabels, l as RUN_STATUS_CONFIG, o as ExecutionStatusBadge } from "./useDurableParity-DEceXnEa.js";
10
+ import { a as useRunStatusCounts, c as runStatusLabels, l as RUN_STATUS_CONFIG, o as ExecutionStatusBadge } from "./useDurableParity-fFmfa97r.js";
11
11
  import { n as formatRunVersion } from "./run-display-BycKYSU0.js";
12
- import { ln as runDurationMs, sn as formatElapsedMs } from "./FluidGridsProvider-BuZERrTA.js";
12
+ import { dn as runDurationMs, ln as formatElapsedMs } from "./FluidGridsProvider-BFfTxl9m.js";
13
13
  import { n as runListLinkKey, t as runListFilterFromSearch } from "./run-list-links-eUhZB1ju.js";
14
- import { h as useWorkflowDefinitions } from "./useWorkflows-D9BlhpWH.js";
14
+ import { h as useWorkflowDefinitions } from "./useWorkflows-CVb5zXKt.js";
15
15
  import { t as FluidGridsDocsLink } from "./FluidGridsDocsLink-JxkBpOeb.js";
16
16
  import { s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-B2lhWNoN.js";
17
17
  import { C as jsonArg, F as startBatchOperation, I as startBatchTerminate, P as startBatchExport, m as fetchBatchOperations, n as cancelBatchOperation, p as fetchBatchOperation, x as fetchSearchAttributes } from "./api-DwaHAJtA.js";
@@ -2,7 +2,7 @@
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
3
  import { C as resetFluidGridsConfig, E as validateTrustedOrigin, T as setFluidGridsConfig, _ as throwIfResultError, a as resetFluidGridsClient, d as emitFluidGridsEvent, f as emitOperationErrorEvent, m as describeOperationError, n as getFluidGridsClient, o as setFluidGridsClient, p as emitRunCompletedOnce, r as getFluidGridsClientSafe, s as waitForFluidGridsClient, t as createFluidGridsClient, w as resetFluidGridsExecutionState, x as getFluidGridsConfig } from "./client-C9XSzSXr.js";
4
4
  import { i as getGlobalStoreClient, o as resetGlobalStoreClient, r as createGlobalStoreClient, s as setGlobalStoreClient, t as provideNodeRegistryRefresh } from "./node-registry-refresh-Dy0uRg9f.js";
5
- import { A as nodeAccent, C as nodeAdaptersOf, D as NodeCard, E as resolveOutputHandles, H as useFlowStore, I as partitionStickyNotes, L as resolveStickyColor, N as DEFAULT_STICKY_COLOR, O as NodeCardBody, P as STICKY_COLORS, R as stickySurfaceStyle, T as resolveInputHandles, V as STICKY_NOTE_TYPE, W as isNodeTrigger, _ as LogicNodeCard, b as alignPlainOutputEdges, i as WAIT_FOR_SIGNAL_NODE_TYPE, j as NodeTypeIcon, k as NodeCardHeader, l as interfaceFields, m as readSignalName, n as synchronizeOperationUpdate, p as readCodeWorkflowState, r as CODE_WORKFLOW_NODE_TYPE, t as resolveOperationName, u as interfaceHandlers, v as InputHandles, w as outputHandlesSpacerHeight, x as hasNodeManifest, y as OutputHandles } from "./node-operation-selection--oy-yEq_.js";
5
+ import { A as nodeAccent, C as nodeAdaptersOf, D as NodeCard, E as resolveOutputHandles, H as useFlowStore, I as partitionStickyNotes, L as resolveStickyColor, N as DEFAULT_STICKY_COLOR, O as NodeCardBody, P as STICKY_COLORS, R as stickySurfaceStyle, T as resolveInputHandles, V as STICKY_NOTE_TYPE, W as isNodeTrigger, _ as LogicNodeCard, b as alignPlainOutputEdges, i as WAIT_FOR_SIGNAL_NODE_TYPE, j as NodeTypeIcon, k as NodeCardHeader, l as interfaceFields, m as readSignalName, n as synchronizeOperationUpdate, p as readCodeWorkflowState, r as CODE_WORKFLOW_NODE_TYPE, t as resolveOperationName, u as interfaceHandlers, v as InputHandles, w as outputHandlesSpacerHeight, x as hasNodeManifest, y as OutputHandles } from "./node-operation-selection-icAhaNza.js";
6
6
  import { n as FluidGridsTranslationProvider, r as useTr, t as ENGLISH_FALLBACK_TRANSLATOR } from "./TranslationBridge-Da-TPgQm.js";
7
7
  import { s as useDurableFunctionNodesEnabled } from "./feature-flags-DM5myWaD.js";
8
8
  import { Dn as SaveWorkflowDraftDocument, M as CreateWorkflowDefinitionDocument, Mt as NodePaletteEntriesDocument, Or as WorkflowDefinitionDocument, Yn as TriggerWorkflowDocument, ct as ExecutionDetailDocument, h as BuilderRunStatusDocument, jt as NodeManifestsDocument, m as BuilderRunNodeDetailsDocument, ot as EventRegistrationsDocument, st as ExecuteStepDocument, yn as RunFromNodeDocument, z as CreateWorkflowVersionDocument } from "./graphql-operation-types-BdU65FNm.js";
@@ -3276,7 +3276,6 @@ function blankWorkflowCreateInput(key, version = "v1") {
3276
3276
  workflowKey: key,
3277
3277
  version,
3278
3278
  name: BLANK_WORKFLOW_NAME,
3279
- description: BLANK_WORKFLOW_NAME,
3280
3279
  definitionJson: {
3281
3280
  key,
3282
3281
  name: BLANK_WORKFLOW_NAME,
@@ -3513,7 +3512,6 @@ function useSaveWorkflow() {
3513
3512
  definitionJson,
3514
3513
  mergeStoredDefinition: true,
3515
3514
  name: workflow.name,
3516
- description: workflow.name || "Workflow update",
3517
3515
  alias: workflow.alias?.trim() ? workflow.alias.trim() : null,
3518
3516
  ...expectedRevision !== void 0 ? { expectedRevision } : {},
3519
3517
  editSessionId: EDIT_SESSION_ID
@@ -3538,7 +3536,6 @@ function useSaveWorkflow() {
3538
3536
  workflowKey,
3539
3537
  version: workflow.version || snapshot.routeVersion || "v1",
3540
3538
  name: workflow.name || "Untitled Workflow",
3541
- description: workflow.name || "Untitled Workflow",
3542
3539
  definitionJson
3543
3540
  } }
3544
3541
  }));
@@ -3575,7 +3572,6 @@ function useSaveWorkflow() {
3575
3572
  workflowKey,
3576
3573
  input: {
3577
3574
  definitionJson,
3578
- description: workflow.name || "Workflow update",
3579
3575
  ...workflow.alias?.trim() ? { alias: workflow.alias.trim() } : {},
3580
3576
  ...forkRequested ? {} : {
3581
3577
  baseVersion: workflow.version,
@@ -10942,4 +10938,4 @@ function useFluidGridsContext() {
10942
10938
  return context;
10943
10939
  }
10944
10940
 
10945
- export { useNodeConfig as $, canAutosave as $t, StoreNodeProductsByTypeDocument as A, connectionsForAdapter as An, createThenOpen as At, createConfiguredNode as B, useBuilderReadOnly as Bn, phaseAfterAcquire as Bt, GetMyNodeInstallationsDocument as C, canSignalRun as Cn, watchLeavingLosesChanges as Ct, InstallWorkflowNodeDocument as D, payloadFromCardValues as Dn, blankWorkflowCreateInput as Dt, InstallPurchasedNodeDocument as E, parseRawSignalPayload as En, useSaveWorkflow as Et, getNodeMetadata as F, getNodeDetail as Fn, useEditLeaseStore as Ft, asRecord as G, EDIT_SESSION_ID as Gt, MissingParametersDialog as H, releasesOnClose as Ht, describeRunError as I, buildStickyNode as In, bannerOf as It, nodeSubtitle as J, sessionBeforeReload as Jt, coerceNumber as K, forgetSessionForReload as Kt, describeRunStep as L, loadMarkdown as Ln, isLocked as Lt, UninstallOrganizationPrivateNodeDocument as M, matchesAdapterProvider as Mn, saveIndicatorOf as Mt, UninstallWorkflowNodeDocument as N, newConnectionProviderKey as Nn, useSaveStatusStore as Nt, MyWorkflowTemplateSubmissionsDocument as O, runSignalTargets as On, builderPathOf as Ot, WithdrawWorkflowTemplateSubmissionDocument as P, replaceAdapterConnections as Pn, useEditLeaseLocked as Pt, selectedOperationOf as Q, AUTOSAVE_RETRY_DELAYS_MS as Qt, SENSITIVE_PARAM as R, useMarkdownRenderer as Rn, leaseCallQueue as Rt, CreateStoreOrderDocument as S, useCodeWorkflowInterface as Sn, touchesSavedFields as St, InstallOrganizationPrivateNodeDocument as T, durableInterfaceOf as Tn, useFlowValidator as Tt, useRunGuard as U, shouldReleaseForIdle as Ut, useInsertNode as V, phaseAfterTakeOver as Vt, workflowParameterIssues as W, tickAction as Wt, optionText as X, rememberRevision as Xt, nodeTitle as Y, rememberOwnStatusChange as Yt, paramsFromOperation as Z, AUTOSAVE_DEBOUNCE_MS as Zt, registryNodeData as _, openRunQuotaUpgradePrompt as _n, departingSave as _t, NODES_METADATA as a, workflowFingerprint as an, resolveLoadOptionsSpec as at, BrowseWorkflowNodesDocument as b, clearCodeWorkflowDefinitionCache as bn, leavingLosesChanges as bt, ensureInstalledNodeTypesLoaded as c, nodeStateDurationMs as cn, casesFromRules as ct, ensureRegistryNodeTypesLoaded as d, parseParameterValue as dn, latestNodeLog as dt, codeBuildIdOf as en, resolveUiSpec as et, isNodeConfigsInitialized as f, structuredParameterType as fn, boundFieldsOf as ft, registerWorkflowNodeTypes as g, useFluidGridsAnalytics as gn, autosaveAllowedFor as gt, registerNodeManifests as h, isParamVisible as hn, useManualSave as ht, AVAILABLE_NODES as i, saveFailureActionOf as in, optionListValues as it, SubmitWorkflowTemplateDocument as j, isOptionalAdapter as jn, refusalOfQuota as jt, OrganizationPrivateNodesDocument as k, signalPayloadCard as kn, classifyCreateRefusal as kt, ensureNodeConfigsLoaded as l, runDurationMs as ln, FieldTree as lt, refetchStoreNodes as m, resolveNodeOperation as mn, useGuardedNavigate as mt, FluidGridsProvider as n, inAppLeaveTarget as nn, isStringOptionList as nt, NODE_CONFIGS as o, useNodeExecution as on, ConditionTreeBuilder as ot, onNodeTypesUpdate as p, fieldsFromValue as pn, missingRequiredParameters as pt, fixedParameterState as q, rememberSessionForReload as qt, useFluidGridsContext as r, resettledBaseline as rn, optionListText as rt, NODE_TYPES as s, formatElapsedMs as sn, SwitchRulesEditor as st, FluidGridsContext as t, findSaveConflict as tn, stripSubmitActions as tt, ensureNodeTypesLoaded as u, formatParameterValue as un, parseMappingValue as ut, scheduleNodePaletteLoad as v, useCanvasEdges as vn, editStateFor as vt, GetNodeInstallableVersionsDocument as w, declaredSignals as wn, isFlowComplete as wt, BrowseWorkflowTemplatesDocument as x, loadDefinitionJson as xn, savedEverythingBeforeLeaving as xt, global_operations_exports as y, useNodeRegistryRevision as yn, editingLeaseLocked as yt, buildOperationSeed as z, BuilderReadOnlyProvider as zn, leaseCallSequence as zt };
10941
+ export { useNodeConfig as $, AUTOSAVE_DEBOUNCE_MS as $t, StoreNodeProductsByTypeDocument as A, runSignalTargets as An, createThenOpen as At, createConfiguredNode as B, useMarkdownRenderer as Bn, leaseCallSequence as Bt, GetMyNodeInstallationsDocument as C, loadDefinitionJson as Cn, watchLeavingLosesChanges as Ct, InstallWorkflowNodeDocument as D, durableInterfaceOf as Dn, blankWorkflowCreateInput as Dt, InstallPurchasedNodeDocument as E, declaredSignals as En, useSaveWorkflow as Et, getNodeMetadata as F, newConnectionProviderKey as Fn, useEditLeaseLocked as Ft, asRecord as G, tickAction as Gt, MissingParametersDialog as H, useBuilderReadOnly as Hn, phaseAfterTakeOver as Ht, describeRunError as I, replaceAdapterConnections as In, useEditLeaseStore as It, nodeSubtitle as J, rememberSessionForReload as Jt, coerceNumber as K, EDIT_SESSION_ID as Kt, describeRunStep as L, getNodeDetail as Ln, bannerOf as Lt, UninstallOrganizationPrivateNodeDocument as M, connectionsForAdapter as Mn, saveIndicatorOf as Mt, UninstallWorkflowNodeDocument as N, isOptionalAdapter as Nn, useSaveStatusStore as Nt, MyWorkflowTemplateSubmissionsDocument as O, parseRawSignalPayload as On, builderPathOf as Ot, WithdrawWorkflowTemplateSubmissionDocument as P, matchesAdapterProvider as Pn, workflowSaveQueue as Pt, selectedOperationOf as Q, revisionOf as Qt, SENSITIVE_PARAM as R, buildStickyNode as Rn, isLocked as Rt, CreateStoreOrderDocument as S, clearCodeWorkflowDefinitionCache as Sn, touchesSavedFields as St, InstallOrganizationPrivateNodeDocument as T, canSignalRun as Tn, useFlowValidator as Tt, useRunGuard as U, releasesOnClose as Ut, useInsertNode as V, BuilderReadOnlyProvider as Vn, phaseAfterAcquire as Vt, workflowParameterIssues as W, shouldReleaseForIdle as Wt, optionText as X, rememberOwnStatusChange as Xt, nodeTitle as Y, sessionBeforeReload as Yt, paramsFromOperation as Z, rememberRevision as Zt, registryNodeData as _, isParamVisible as _n, departingSave as _t, NODES_METADATA as a, resettledBaseline as an, resolveLoadOptionsSpec as at, BrowseWorkflowNodesDocument as b, useCanvasEdges as bn, leavingLosesChanges as bt, ensureInstalledNodeTypesLoaded as c, useNodeExecution as cn, casesFromRules as ct, ensureRegistryNodeTypesLoaded as d, runDurationMs as dn, latestNodeLog as dt, AUTOSAVE_RETRY_DELAYS_MS as en, resolveUiSpec as et, isNodeConfigsInitialized as f, formatParameterValue as fn, boundFieldsOf as ft, registerWorkflowNodeTypes as g, resolveNodeOperation as gn, autosaveAllowedFor as gt, registerNodeManifests as h, fieldsFromValue as hn, useManualSave as ht, AVAILABLE_NODES as i, inAppLeaveTarget as in, optionListValues as it, SubmitWorkflowTemplateDocument as j, signalPayloadCard as jn, refusalOfQuota as jt, OrganizationPrivateNodesDocument as k, payloadFromCardValues as kn, classifyCreateRefusal as kt, ensureNodeConfigsLoaded as l, formatElapsedMs as ln, FieldTree as lt, refetchStoreNodes as m, structuredParameterType as mn, useGuardedNavigate as mt, FluidGridsProvider as n, codeBuildIdOf as nn, isStringOptionList as nt, NODE_CONFIGS as o, saveFailureActionOf as on, ConditionTreeBuilder as ot, onNodeTypesUpdate as p, parseParameterValue as pn, missingRequiredParameters as pt, fixedParameterState as q, forgetSessionForReload as qt, useFluidGridsContext as r, findSaveConflict as rn, optionListText as rt, NODE_TYPES as s, workflowFingerprint as sn, SwitchRulesEditor as st, FluidGridsContext as t, canAutosave as tn, stripSubmitActions as tt, ensureNodeTypesLoaded as u, nodeStateDurationMs as un, parseMappingValue as ut, scheduleNodePaletteLoad as v, useFluidGridsAnalytics as vn, editStateFor as vt, GetNodeInstallableVersionsDocument as w, useCodeWorkflowInterface as wn, isFlowComplete as wt, BrowseWorkflowTemplatesDocument as x, useNodeRegistryRevision as xn, savedEverythingBeforeLeaving as xt, global_operations_exports as y, openRunQuotaUpgradePrompt as yn, editingLeaseLocked as yt, buildOperationSeed as z, loadMarkdown as zn, leaseCallQueue as zt };
@@ -1,7 +1,7 @@
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-D9BlhpWH.js";
4
- import { i as versionsOfWorkflow, t as VersionDiffDialog } from "./VersionDiffDialog-B00qeGiE.js";
3
+ import { d as useRestoreWorkflowVersion, h as useWorkflowDefinitions } from "./useWorkflows-CVb5zXKt.js";
4
+ import { i as versionsOfWorkflow, t as VersionDiffDialog } from "./VersionDiffDialog-Cp2doV3f.js";
5
5
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
6
6
  import { x as getFluidGridsConfig } from "./client-C9XSzSXr.js";
7
7
  import { n as useFluidGridsPageControls } from "./pageControlsBridge-0pX9s-3k.js";
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
3
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
4
- import { o as useRunReplayActions, r as useInsightsData } from "./useObservability-B9cOl5mw.js";
4
+ import { o as useRunReplayActions, r as useInsightsData } from "./useObservability-u-MZCWUV.js";
5
5
  import { a as getTopFailingWorkflows, i as getTopFailingNodes, n as formatDuration, o as percentage, r as getFailureBreakdown } from "./utils-uaL5UVxb.js";
6
6
  import { n as FailureTriagePanel } from "./FailureTriagePanel-BzD4UJU5.js";
7
7
  import { o as useContinuousOptimisationEnabled } from "./feature-flags-DM5myWaD.js";
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { a as DialogFooter, i as DialogDescription, l as DialogTitle, o as DialogHeader, r as DialogContent, t as Dialog } from "./dialog-Cjb4lB4D.js";
3
3
  import { t as Button } from "./button-DG7y_FVJ.js";
4
- import { r as Badge } from "./TemplateCard-D800haiE.js";
4
+ import { r as Badge } from "./TemplateCard-DYDVNYo6.js";
5
5
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
6
6
  import { AlertTriangle, CheckCircle2, Download, ExternalLink, Loader2, Puzzle, ShoppingCart } from "lucide-react";
7
7
 
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
3
- import { gn as useFluidGridsAnalytics } from "./FluidGridsProvider-BuZERrTA.js";
3
+ import { vn as useFluidGridsAnalytics } from "./FluidGridsProvider-BFfTxl9m.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";
@@ -10,9 +10,9 @@ import { c as useDurableParityEnabled, f as usePhaseCFlags, l as useFluidGridsFl
10
10
  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-DwaHAJtA.js";
11
11
  import { i as NativeSelect, o as StatusPill, t as FieldError, u as useResource } from "./shared-CMfn30xT.js";
12
12
  import { EI as WorkflowSearchAttributeType } from "./graphql-types-v6CTGwA0.js";
13
- import { H as useFlowStore } from "./node-operation-selection--oy-yEq_.js";
14
- import { Nt as useSaveStatusStore, tn as findSaveConflict } from "./FluidGridsProvider-BuZERrTA.js";
15
- import { a as useLogStreamDestinations, i as useLogStreamDestinationActions } from "./useObservability-B9cOl5mw.js";
13
+ import { H as useFlowStore } from "./node-operation-selection-icAhaNza.js";
14
+ import { Nt as useSaveStatusStore, rn as findSaveConflict } from "./FluidGridsProvider-BFfTxl9m.js";
15
+ import { a as useLogStreamDestinations, i as useLogStreamDestinationActions } from "./useObservability-u-MZCWUV.js";
16
16
  import { n as useConnections } from "./useConnections-Cs7LCWEM.js";
17
17
  import { Nt as useUpdateWorkflowDefinitionMutation, Rt as useWorkflowDefinitionQuery, Vt as useWorkflowDefinitionsQuery, n as useAgentDefinitions } from "./useAgentDefinitions-DSU8Eek4.js";
18
18
  import { a as formToInput$2, i as emptyAgentForm, n as agentToForm, o as grantDays, r as describeRule, t as AgentFormError } from "./agent-form-Bfvm32j1.js";
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { _ as throwIfResultError, n as getFluidGridsClient, x as getFluidGridsConfig } from "./client-C9XSzSXr.js";
3
3
  import { i as getGlobalStoreClient } from "./node-registry-refresh-Dy0uRg9f.js";
4
- import { A as StoreNodeProductsByTypeDocument, C as GetMyNodeInstallationsDocument, D as InstallWorkflowNodeDocument, c as ensureInstalledNodeTypesLoaded, d as ensureRegistryNodeTypesLoaded, gn as useFluidGridsAnalytics, i as AVAILABLE_NODES, o as NODE_CONFIGS, t as FluidGridsContext, x as BrowseWorkflowTemplatesDocument } from "./FluidGridsProvider-BuZERrTA.js";
4
+ import { A as StoreNodeProductsByTypeDocument, C as GetMyNodeInstallationsDocument, D as InstallWorkflowNodeDocument, c as ensureInstalledNodeTypesLoaded, d as ensureRegistryNodeTypesLoaded, i as AVAILABLE_NODES, o as NODE_CONFIGS, t as FluidGridsContext, vn as useFluidGridsAnalytics, x as BrowseWorkflowTemplatesDocument } from "./FluidGridsProvider-BFfTxl9m.js";
5
5
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
6
6
  import { c as isQuotaExhaustedFailure } from "./quota-Cdt8yz7N.js";
7
7
  import { a as emitTemplateUsed, s as emitWorkflowCreated, t as emitNodeInstalled } from "./fluidgridsEvents-Dm5CaHtr.js";
@@ -1080,7 +1080,7 @@ async function dismissToastWhenShown(id) {
1080
1080
  }
1081
1081
 
1082
1082
  // src/hooks/store/useTemplateImportFlow.tsx
1083
- const LazyTemplateConfigurationModal = lazy(() => import("./TemplateConfigurationModal-DYs1YxYy.js").then((m) => ({ default: m.TemplateConfigurationModal })));
1083
+ const LazyTemplateConfigurationModal = lazy(() => import("./TemplateConfigurationModal-BzdkGWim.js").then((m) => ({ default: m.TemplateConfigurationModal })));
1084
1084
  /**
1085
1085
  * "Use this template", the same everywhere it is offered: the builder's
1086
1086
  * template panel, the Templates page and the template preview page
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { a as DialogFooter, d as Input, i as DialogDescription, l as DialogTitle, o as DialogHeader, r as DialogContent, t as Dialog } from "./dialog-Cjb4lB4D.js";
3
3
  import { t as Button } from "./button-DG7y_FVJ.js";
4
- import { r as Badge } from "./TemplateCard-D800haiE.js";
4
+ import { r as Badge } from "./TemplateCard-DYDVNYo6.js";
5
5
  import { t as Label } from "./label-CDy86rIZ.js";
6
6
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
7
7
  import { useEffect, useMemo, useState } from "react";
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { t as Button } from "./button-DG7y_FVJ.js";
3
- import { n as templatePreview, r as Badge } from "./TemplateCard-D800haiE.js";
3
+ import { n as templatePreview, r as Badge } from "./TemplateCard-DYDVNYo6.js";
4
4
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
5
5
  import { i as SdkPermissionButton, t as FLUIDGRIDS_PERMISSIONS } from "./constants-B2lhWNoN.js";
6
6
  import { Icon } from "@iconify/react";
@@ -1,9 +1,9 @@
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-CEYMv_sG.js";
5
- import { a as useTemplateImportFlow, l as useImportWorkflowTemplate } from "./TemplateCard-D800haiE.js";
6
- import { t as QuotaExhaustedDialog } from "./QuotaExhaustedDialog-RctNPfz_.js";
4
+ import { t as FlowBuilderPage } from "./flow-builder-Dn4PCWuf.js";
5
+ import { a as useTemplateImportFlow, l as useImportWorkflowTemplate } from "./TemplateCard-DYDVNYo6.js";
6
+ import { t as QuotaExhaustedDialog } from "./QuotaExhaustedDialog-BKZ9moP8.js";
7
7
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
8
8
  import { i as SdkPermissionButton, t as FLUIDGRIDS_PERMISSIONS } from "./constants-B2lhWNoN.js";
9
9
  import { t as BILLING_PLANS_PATH } from "./quota-Cdt8yz7N.js";
@@ -1,12 +1,12 @@
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-D9BlhpWH.js";
4
- import { a as useTemplateImportFlow, t as TemplateCard, u as useWorkflowTemplates, y as useGlobalStoreClient } from "./TemplateCard-D800haiE.js";
3
+ import { h as useWorkflowDefinitions, l as useLazyWorkflowDefinition, s as useDuplicateWorkflow } from "./useWorkflows-CVb5zXKt.js";
4
+ import { a as useTemplateImportFlow, t as TemplateCard, u as useWorkflowTemplates, y as useGlobalStoreClient } from "./TemplateCard-DYDVNYo6.js";
5
5
  import { kI as WorkflowStatus } from "./graphql-types-v6CTGwA0.js";
6
6
  import { i as SdkPermissionButton, t as FLUIDGRIDS_PERMISSIONS } from "./constants-B2lhWNoN.js";
7
- import { t as QuotaExhaustedDialog } from "./QuotaExhaustedDialog-RctNPfz_.js";
7
+ import { t as QuotaExhaustedDialog } from "./QuotaExhaustedDialog-BKZ9moP8.js";
8
8
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
9
- import { O as MyWorkflowTemplateSubmissionsDocument, P as WithdrawWorkflowTemplateSubmissionDocument, gn as useFluidGridsAnalytics, j as SubmitWorkflowTemplateDocument } from "./FluidGridsProvider-BuZERrTA.js";
9
+ import { O as MyWorkflowTemplateSubmissionsDocument, P as WithdrawWorkflowTemplateSubmissionDocument, j as SubmitWorkflowTemplateDocument, vn as useFluidGridsAnalytics } from "./FluidGridsProvider-BFfTxl9m.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";
@@ -2,7 +2,7 @@
2
2
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
3
3
  import { _ as throwIfResultError, m as describeOperationError, n as getFluidGridsClient } from "./client-C9XSzSXr.js";
4
4
  import { Or as WorkflowDefinitionDocument, xi as WorkflowVersionDiffDocument } from "./graphql-operation-types-BdU65FNm.js";
5
- import { t as canvasFromDefinition } from "./definition-canvas--3MPHoP-.js";
5
+ import { t as canvasFromDefinition } from "./definition-canvas-F8DGty5m.js";
6
6
  import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
7
7
  import { Background, Controls, Handle, MiniMap, Position, ReactFlow, ReactFlowProvider } from "@xyflow/react";
8
8
  import { cn } from "@burdenoff/fe-libs/utils";
@@ -1,12 +1,12 @@
1
1
  "use client";
2
- import { n as FluidGridsProvider, vn as useCanvasEdges } from "./FluidGridsProvider-BuZERrTA.js";
3
- import { H as useFlowStore } from "./node-operation-selection--oy-yEq_.js";
2
+ import { bn as useCanvasEdges, n as FluidGridsProvider } from "./FluidGridsProvider-BFfTxl9m.js";
3
+ import { H as useFlowStore } from "./node-operation-selection-icAhaNza.js";
4
4
  import { t as Button } from "./button-DG7y_FVJ.js";
5
5
  import { d as Input } from "./dialog-Cjb4lB4D.js";
6
- import { b as Card } from "./TemplateCard-D800haiE.js";
6
+ import { b as Card } from "./TemplateCard-DYDVNYo6.js";
7
7
  import { t as cn } from "./cn-QqidFIgr.js";
8
8
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
9
- import { _ as useNodeSelectedEvent, v as FluidGridsMark } from "./flow-builder-CEYMv_sG.js";
9
+ import { _ as useNodeSelectedEvent, v as FluidGridsMark } from "./flow-builder-Dn4PCWuf.js";
10
10
  import { useCallback, useEffect, useRef, useState } from "react";
11
11
  import { Background, Controls, Handle, MarkerType, MiniMap, Position, ReactFlow, ReactFlowProvider, useReactFlow } from "@xyflow/react";
12
12
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -1,18 +1,18 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
- import { d as releaseLeaseKeptForReload, f as useWorkflowReloadStore, t as FlowBuilderPage } from "./flow-builder-CEYMv_sG.js";
3
+ import { d as releaseLeaseKeptForReload, f as useWorkflowReloadStore, t as FlowBuilderPage } from "./flow-builder-Dn4PCWuf.js";
4
4
  import { n as registerLiveCanvasHandler } from "./liveCanvas-D5ytXDp8.js";
5
5
  import { _ as throwIfResultError, n as getFluidGridsClient, x as getFluidGridsConfig } from "./client-C9XSzSXr.js";
6
6
  import { Or as WorkflowDefinitionDocument } from "./graphql-operation-types-BdU65FNm.js";
7
7
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
8
- import { B as createConfiguredNode, Dt as blankWorkflowCreateInput, Nt as useSaveStatusStore, Xt as rememberRevision, Z as paramsFromOperation, an as workflowFingerprint, en as codeBuildIdOf, g as registerWorkflowNodeTypes, h as registerNodeManifests, kt as classifyCreateRefusal, m as refetchStoreNodes, mn as resolveNodeOperation, o as NODE_CONFIGS, u as ensureNodeTypesLoaded } from "./FluidGridsProvider-BuZERrTA.js";
9
- import { F as mergeStickyNotes, H as useFlowStore } from "./node-operation-selection--oy-yEq_.js";
10
- import { t as canvasFromDefinition } from "./definition-canvas--3MPHoP-.js";
11
- import { l as useLazyWorkflowDefinition, n as useCreateWorkflow } from "./useWorkflows-D9BlhpWH.js";
12
- import { c as getWorkflowNodeTypes, o as buildNodeCheck, s as buildRequiredNodeTypes, v as useInstalledNodes } from "./TemplateCard-D800haiE.js";
8
+ import { B as createConfiguredNode, Dt as blankWorkflowCreateInput, Nt as useSaveStatusStore, Z as paramsFromOperation, Zt as rememberRevision, g as registerWorkflowNodeTypes, gn as resolveNodeOperation, h as registerNodeManifests, kt as classifyCreateRefusal, m as refetchStoreNodes, nn as codeBuildIdOf, o as NODE_CONFIGS, sn as workflowFingerprint, u as ensureNodeTypesLoaded } from "./FluidGridsProvider-BFfTxl9m.js";
9
+ import { F as mergeStickyNotes, H as useFlowStore } from "./node-operation-selection-icAhaNza.js";
10
+ import { t as canvasFromDefinition } from "./definition-canvas-F8DGty5m.js";
11
+ import { l as useLazyWorkflowDefinition, n as useCreateWorkflow } from "./useWorkflows-CVb5zXKt.js";
12
+ import { c as getWorkflowNodeTypes, o as buildNodeCheck, s as buildRequiredNodeTypes, v as useInstalledNodes } from "./TemplateCard-DYDVNYo6.js";
13
13
  import { c as withoutGuidedTourIntent, l as decideMissingWorkflow, o as isGuidedTourIntent, s as pickGuidedTour, u as isCreateIntent } from "./firstWorkflow-C_h0KMB2.js";
14
14
  import { t as BILLING_PLANS_PATH } from "./quota-Cdt8yz7N.js";
15
- import { T as CreateWorkflowRefusalDialog } from "./useWorkflowCodeExport-L-5NIRiH.js";
15
+ import { A as CreateWorkflowRefusalDialog } from "./useWorkflowCodeExport-CV3SZeKm.js";
16
16
  import { Suspense, lazy, useCallback, useEffect, useMemo, useRef, useState } from "react";
17
17
  import { useLocation, useNavigate, useParams } from "react-router";
18
18
  import { Icon } from "@iconify/react";
@@ -1088,7 +1088,7 @@ function GuidedTourStarter({ ready }) {
1088
1088
  }
1089
1089
 
1090
1090
  // src/builder/app/workflow/work/page.tsx
1091
- const LazyMissingNodesInstallModal = lazy(() => import("./MissingNodesInstallModal-DUmwDs4e.js").then((m) => ({ default: m.MissingNodesInstallModal })));
1091
+ const LazyMissingNodesInstallModal = lazy(() => import("./MissingNodesInstallModal-C0wPwR0Q.js").then((m) => ({ default: m.MissingNodesInstallModal })));
1092
1092
  function WorkflowItem({ readonly = false }) {
1093
1093
  if (readonly) {
1094
1094
  const queryParams = new URLSearchParams(window.location.search);
@@ -1160,7 +1160,7 @@ function WorkflowItem({ readonly = false }) {
1160
1160
  setInstallErrors([]);
1161
1161
  try {
1162
1162
  const { getGlobalStoreClient } = await import("./node-registry-refresh-Dy0uRg9f.js").then((n) => n.a);
1163
- const { InstallWorkflowNodeDocument } = await import("./FluidGridsProvider-BuZERrTA.js").then((n) => n.y);
1163
+ const { InstallWorkflowNodeDocument } = await import("./FluidGridsProvider-BFfTxl9m.js").then((n) => n.y);
1164
1164
  const { getFluidGridsConfig } = await import("./client-C9XSzSXr.js").then((n) => n.b);
1165
1165
  const storeClient = getGlobalStoreClient();
1166
1166
  const cfg = getFluidGridsConfig();
@@ -1327,6 +1327,7 @@ function WorkflowItem({ readonly = false }) {
1327
1327
  version: result?.version ?? "",
1328
1328
  name: result?.name ?? "",
1329
1329
  alias: result?.alias ?? "",
1330
+ description: result?.description ?? "",
1330
1331
  dbId: result?.id ?? "",
1331
1332
  status: result?.status ?? "DRAFT",
1332
1333
  codeBuildId: codeBuildIdOf(result?.definitionJson)
@@ -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-D9BlhpWH.js";
3
+ import { m as useWorkflowDefinition } from "./useWorkflows-CVb5zXKt.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";
@@ -1,12 +1,12 @@
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-D9BlhpWH.js";
4
- import { At as createThenOpen, t as FluidGridsContext } from "./FluidGridsProvider-BuZERrTA.js";
5
- import { C as typeScriptModuleFile, S as typeScriptImportSource, T as CreateWorkflowRefusalDialog, a as parseWorkflowImport, b as readProjectArchive, c as MAX_IMPORT_ARCHIVE_BYTES, d as checkTypeScriptImport, i as downloadWorkflowExport, l as MAX_IMPORT_SOURCE_BYTES, m as importFileKind, n as useExportWorkflowAs, o as CODE_EXPORT_FORMATS, p as importAcceptAttribute, s as ImportSourceError, u as assertImportByteSize, w as workflowNameFromFile, y as primaryImportModule } from "./useWorkflowCodeExport-L-5NIRiH.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-CVb5zXKt.js";
4
+ import { At as createThenOpen, t as FluidGridsContext } from "./FluidGridsProvider-BFfTxl9m.js";
5
+ import { A as CreateWorkflowRefusalDialog, D as typeScriptImportSource, O as typeScriptModuleFile, T as readProjectArchive, a as parseWorkflowImport, c as saveWorkflowDescription, d as CODE_EXPORT_FORMATS, f as ImportSourceError, g as checkTypeScriptImport, h as assertImportByteSize, i as downloadWorkflowExport, k as workflowNameFromFile, l as visibleWorkflowDescription, m as MAX_IMPORT_SOURCE_BYTES, n as useExportWorkflowAs, o as commitWorkflowDescription, p as MAX_IMPORT_ARCHIVE_BYTES, u as workflowDescriptionCharactersLeft, v as importAcceptAttribute, w as primaryImportModule, y as importFileKind } from "./useWorkflowCodeExport-CV3SZeKm.js";
6
6
  import { c as isQuotaExhaustedFailure, t as BILLING_PLANS_PATH } from "./quota-Cdt8yz7N.js";
7
- import { H as useFlowStore } from "./node-operation-selection--oy-yEq_.js";
7
+ import { H as useFlowStore } from "./node-operation-selection-icAhaNza.js";
8
8
  import { a as SdkPermissionGate, i as SdkPermissionButton, s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-B2lhWNoN.js";
9
- import { t as QuotaExhaustedDialog } from "./QuotaExhaustedDialog-RctNPfz_.js";
9
+ import { t as QuotaExhaustedDialog } from "./QuotaExhaustedDialog-BKZ9moP8.js";
10
10
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
11
11
  import { YF as WorkflowAccessFilter, rI as WorkflowExportFormat } from "./graphql-types-v6CTGwA0.js";
12
12
  import { i as canShareWorkflow, r as canEditWorkflow, t as WorkflowShareDialog } from "./WorkflowShareDialog-Dv46nAyh.js";
@@ -14,7 +14,7 @@ import { i as useOpenRequest, n as ACTION_PARAM_VALUES, r as useActionParam } fr
14
14
  import { l as useFluidGridsFlag, t as FLUIDGRIDS_FLAGS } from "./feature-flags-DM5myWaD.js";
15
15
  import { _ as throwIfResultError, m as describeOperationError, n as getFluidGridsClient } from "./client-C9XSzSXr.js";
16
16
  import { Dt as MoveWorkflowFolderDocument, Fr as WorkflowFoldersDocument, J as DeleteWorkflowProjectDocument, N as CreateWorkflowFolderDocument, P as CreateWorkflowProjectDocument, Wr as WorkflowProjectsDocument, _ as BulkDeleteWorkflowsDocument, en as RenameWorkflowFolderDocument, g as BulkAssignWorkflowsToProjectDocument, q as DeleteWorkflowFolderDocument, tn as RenameWorkflowProjectDocument, v as BulkMoveWorkflowsToFolderDocument } from "./graphql-operation-types-BdU65FNm.js";
17
- import { a as useExecutions } from "./useExecutions-D3S4aqIQ.js";
17
+ import { a as useExecutions } from "./useExecutions-DNGW4yxG.js";
18
18
  import { a as firstWorkflowProgress, i as builderPathFor, r as GUIDED_TOUR_STATE } from "./firstWorkflow-C_h0KMB2.js";
19
19
  import { n as useFluidGridsPageControls } from "./pageControlsBridge-0pX9s-3k.js";
20
20
  import { i as workflowsListControls } from "./pageControlSpecs-DZJ9K37m.js";
@@ -25,7 +25,7 @@ import { Icon } from "@iconify/react";
25
25
  import { cn } from "@burdenoff/fe-libs/utils";
26
26
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
27
27
  import { toast } from "sonner";
28
- import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, Badge, Button, Card, Checkbox, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, IllustratedEmptyState, Input, Label, NextSteps, Select, SelectContent, SelectItem, SelectSeparator, SelectTrigger, SelectValue, Skeleton, Textarea, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@burdenoff/fe-libs/ui";
28
+ import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, Badge, Button, Card, Checkbox, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, IllustratedEmptyState, Input, Label, NextSteps, ResponsiveDialog, ResponsiveDialogContent, ResponsiveDialogDescription, ResponsiveDialogFooter, ResponsiveDialogHeader, ResponsiveDialogTitle, Select, SelectContent, SelectItem, SelectSeparator, SelectTrigger, SelectValue, Skeleton, Textarea, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@burdenoff/fe-libs/ui";
29
29
  import { v4 } from "uuid";
30
30
  import { TagBadge } from "@burdenoff/fe-libs/tag";
31
31
 
@@ -182,7 +182,7 @@ function relativeTime(iso) {
182
182
  year: "numeric"
183
183
  }).format(new Date(then));
184
184
  }
185
- const CardWorkflow = ({ workflow, onUpdateSuccess, onExport, onExportAs, exportingFormat = null, onShare, onMoveToProject }) => {
185
+ const CardWorkflow = ({ workflow, onUpdateSuccess, onExport, onExportAs, exportingFormat = null, onShare, onMoveToProject, onEditDescription }) => {
186
186
  const tr = useTr();
187
187
  const navigate = useNavigate();
188
188
  const resetWorkflow = useFlowStore((s) => s.actions.resetWorkflow);
@@ -242,6 +242,7 @@ const CardWorkflow = ({ workflow, onUpdateSuccess, onExport, onExportAs, exporti
242
242
  const restricted = workflow.visibility === "RESTRICTED";
243
243
  const editable = canEditWorkflow(workflow.my_access);
244
244
  const shareable = canShareWorkflow(workflow.my_access);
245
+ const description = visibleWorkflowDescription(workflow.description, workflow.name);
245
246
  const updatedExact = workflow.updated_at ? new Date(workflow.updated_at).toLocaleString() : void 0;
246
247
  return /* @__PURE__ */ jsxs(TooltipProvider, { children: [
247
248
  /* @__PURE__ */ jsxs(Card, {
@@ -292,8 +293,10 @@ const CardWorkflow = ({ workflow, onUpdateSuccess, onExport, onExportAs, exporti
292
293
  }), /* @__PURE__ */ jsx(WorkflowStatusPill, { status: workflow.status })]
293
294
  }),
294
295
  /* @__PURE__ */ jsx("p", {
295
- className: "mt-1 line-clamp-2 text-xs leading-snug text-muted-foreground",
296
- children: workflow.description || tr("fluidgrids.builder.cardWorkflow.noDescription", "No description")
296
+ className: "mt-1 truncate text-xs leading-snug text-muted-foreground",
297
+ "data-testid": "workflow-card-description",
298
+ title: description || void 0,
299
+ children: description || tr("fluidgrids.builder.cardWorkflow.noDescription", "No description")
297
300
  }),
298
301
  workflow.tags && workflow.tags.length > 0 && /* @__PURE__ */ jsxs("div", {
299
302
  className: "mt-2 flex flex-wrap items-center gap-1",
@@ -403,6 +406,27 @@ const CardWorkflow = ({ workflow, onUpdateSuccess, onExport, onExportAs, exporti
403
406
  children: /* @__PURE__ */ jsx("p", { children: tr("fluidgrids.builder.cardWorkflow.shareWorkflow", "Share workflow") })
404
407
  })] })
405
408
  }),
409
+ onEditDescription && editable && /* @__PURE__ */ jsx(SdkPermissionGate, {
410
+ permission: FLUIDGRIDS_PERMISSIONS.WORKFLOW_UPDATE,
411
+ children: /* @__PURE__ */ jsxs(Tooltip, { children: [/* @__PURE__ */ jsx(TooltipTrigger, {
412
+ asChild: true,
413
+ children: /* @__PURE__ */ jsx(Button, {
414
+ variant: "ghost",
415
+ size: "icon",
416
+ className: "size-8",
417
+ onClick: onEditDescription,
418
+ "data-testid": "workflow-card-edit-description",
419
+ "aria-label": tr("fluidgrids.builder.cardWorkflow.editDescription", "Edit description"),
420
+ children: /* @__PURE__ */ jsx(Icon, {
421
+ icon: "mdi:text-box-edit-outline",
422
+ className: "size-4"
423
+ })
424
+ })
425
+ }), /* @__PURE__ */ jsx(TooltipContent, {
426
+ side: "top",
427
+ children: /* @__PURE__ */ jsx("p", { children: tr("fluidgrids.builder.cardWorkflow.editDescription", "Edit description") })
428
+ })] })
429
+ }),
406
430
  onMoveToProject && editable && /* @__PURE__ */ jsx(SdkPermissionGate, {
407
431
  permission: FLUIDGRIDS_PERMISSIONS.WORKFLOW_UPDATE,
408
432
  children: /* @__PURE__ */ jsxs(Tooltip, { children: [/* @__PURE__ */ jsx(TooltipTrigger, {
@@ -1980,6 +2004,99 @@ function WorkflowMoveToProjectDialog({ workflow, onClose, onMoved }) {
1980
2004
  });
1981
2005
  }
1982
2006
 
2007
+ // src/components/WorkflowDescriptionDialog.tsx
2008
+ /**
2009
+ * Edit a workflow's description from its card in the workflow list
2010
+ * (BOFF-9743). The description of the listed version changes in place: no new
2011
+ * version is created. An empty description clears it.
2012
+ */
2013
+ function WorkflowDescriptionDialog({ workflow, onClose, onSaved }) {
2014
+ return /* @__PURE__ */ jsx(ResponsiveDialog, {
2015
+ open: workflow !== null,
2016
+ onOpenChange: (open) => !open && onClose(),
2017
+ children: workflow && /* @__PURE__ */ jsx(DescriptionForm, {
2018
+ workflow,
2019
+ onClose,
2020
+ onSaved
2021
+ }, workflow.id)
2022
+ });
2023
+ }
2024
+ function DescriptionForm({ workflow, onClose, onSaved }) {
2025
+ const tr = useTr();
2026
+ const shown = visibleWorkflowDescription(workflow.description, workflow.name);
2027
+ const [draft, setDraft] = useState(shown);
2028
+ const [saving, setSaving] = useState(false);
2029
+ const decision = commitWorkflowDescription(shown, draft);
2030
+ const left = workflowDescriptionCharactersLeft(draft);
2031
+ const save = async () => {
2032
+ if (decision.kind !== "save") return;
2033
+ setSaving(true);
2034
+ try {
2035
+ const saved = await saveWorkflowDescription(getFluidGridsClient(), workflow.id, decision.description);
2036
+ toast.success(tr("fluidgrids.workflowsList.editDescription.saved", "Description saved"));
2037
+ onSaved?.(saved.description);
2038
+ onClose();
2039
+ } catch (error) {
2040
+ toast.error(tr("fluidgrids.builder.workflowDescription.saveFailed", "The description couldn't be saved"), { description: describeOperationError(error) });
2041
+ } finally {
2042
+ setSaving(false);
2043
+ }
2044
+ };
2045
+ return /* @__PURE__ */ jsxs(ResponsiveDialogContent, {
2046
+ "data-testid": "workflow-description-dialog",
2047
+ children: [
2048
+ /* @__PURE__ */ jsxs(ResponsiveDialogHeader, { children: [/* @__PURE__ */ jsx(ResponsiveDialogTitle, { children: tr("fluidgrids.workflowsList.editDescription.title", "Describe {{name}}", { name: workflow.name }) }), /* @__PURE__ */ jsx(ResponsiveDialogDescription, { children: tr("fluidgrids.workflowsList.editDescription.help", "Shown under the workflow's name. Saving changes this version in place.") })] }),
2049
+ /* @__PURE__ */ jsxs("div", {
2050
+ className: "flex flex-col gap-2",
2051
+ children: [
2052
+ /* @__PURE__ */ jsx(Label, {
2053
+ htmlFor: "workflow-description-input",
2054
+ children: tr("fluidgrids.builder.workflowDescription.label", "Workflow description")
2055
+ }),
2056
+ /* @__PURE__ */ jsx(Textarea, {
2057
+ id: "workflow-description-input",
2058
+ "data-testid": "workflow-description-input",
2059
+ autoFocus: true,
2060
+ rows: 4,
2061
+ maxLength: 500,
2062
+ placeholder: tr("fluidgrids.builder.workflowDescription.placeholder", "What does this workflow do?"),
2063
+ value: draft,
2064
+ onChange: (event) => setDraft(event.target.value),
2065
+ onKeyDown: (event) => {
2066
+ if (event.key === "Enter" && (event.ctrlKey || event.metaKey)) {
2067
+ event.preventDefault();
2068
+ save();
2069
+ }
2070
+ },
2071
+ className: "resize-none"
2072
+ }),
2073
+ /* @__PURE__ */ jsxs("span", {
2074
+ "data-testid": "workflow-description-counter",
2075
+ className: cn("self-end text-xs tabular-nums text-muted-foreground", left < 0 && "text-destructive"),
2076
+ children: [
2077
+ 500 - left,
2078
+ "/",
2079
+ 500
2080
+ ]
2081
+ })
2082
+ ]
2083
+ }),
2084
+ /* @__PURE__ */ jsxs(ResponsiveDialogFooter, { children: [/* @__PURE__ */ jsx(Button, {
2085
+ variant: "outline",
2086
+ onClick: onClose,
2087
+ disabled: saving,
2088
+ children: tr("fluidgrids.workflowsList.moveToProject.cancel", "Cancel")
2089
+ }), /* @__PURE__ */ jsx(Button, {
2090
+ onClick: () => void save(),
2091
+ disabled: saving || decision.kind !== "save",
2092
+ "aria-busy": saving,
2093
+ "data-testid": "workflow-description-save",
2094
+ children: tr("fluidgrids.workflowsList.editDescription.save", "Save")
2095
+ })] })
2096
+ ]
2097
+ });
2098
+ }
2099
+
1983
2100
  // src/pages/workflowsListUrlState.ts
1984
2101
  /**
1985
2102
  * URL-driven filter state for the workflows list (BOFF-10854).
@@ -2155,6 +2272,7 @@ function WorkflowsList() {
2155
2272
  });
2156
2273
  const [sharing, setSharing] = useState(null);
2157
2274
  const [moving, setMoving] = useState(null);
2275
+ const [describing, setDescribing] = useState(null);
2158
2276
  const filteredByAccess = accessFilter !== "ALL";
2159
2277
  const { getWorkflow } = useLazyWorkflowDefinition();
2160
2278
  const createPermission = useFluidGridsPermission(FLUIDGRIDS_PERMISSIONS.WORKFLOW_CREATE);
@@ -2537,6 +2655,11 @@ function WorkflowsList() {
2537
2655
  name: workflow.name,
2538
2656
  projectId: workflow.projectId ?? null
2539
2657
  }),
2658
+ onEditDescription: () => setDescribing({
2659
+ id: workflow.id,
2660
+ name: workflow.name,
2661
+ description: workflow.description ?? null
2662
+ }),
2540
2663
  onExport: () => void handleExport(workflow.id),
2541
2664
  onExportAs: codeFirst ? (format) => void handleExportAs(workflow.workflowKey, workflow.version, format) : void 0,
2542
2665
  exportingFormat: exportingKey === workflow.workflowKey ? exporting : null
@@ -2558,6 +2681,11 @@ function WorkflowsList() {
2558
2681
  onClose: () => setMoving(null),
2559
2682
  onMoved: () => void refetch()
2560
2683
  }),
2684
+ /* @__PURE__ */ jsx(WorkflowDescriptionDialog, {
2685
+ workflow: describing,
2686
+ onClose: () => setDescribing(null),
2687
+ onSaved: () => void refetch()
2688
+ }),
2561
2689
  /* @__PURE__ */ jsx(CreateWorkflowRefusalDialog, {
2562
2690
  surface: "builder-create",
2563
2691
  refusal: createFirst.refusal,