@burdenoff/fluidgrids-fe-sdk 2026.1111.19 → 2026.1111.20

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 (48) hide show
  1. package/dist/{AiStudioPage-htYcXz43.js → AiStudioPage-CmjZwaoy.js} +4 -4
  2. package/dist/ConnectionFormDialog-Bg9_OdHX.js +119 -0
  3. package/dist/{DataSinkDashboardPage-1h2QsMzH.js → DataSinkDashboardPage-auvILMSt.js} +1 -1
  4. package/dist/{ExecutionDetailPage-BdcZmLT4.js → ExecutionDetailPage-C0q5brcQ.js} +6 -6
  5. package/dist/{ExecutionsListPage-BCUJoAIE.js → ExecutionsListPage-Dcc6wi-8.js} +4 -4
  6. package/dist/{FluidGridsProvider-dvZSNtSW.js → FluidGridsProvider-CRGXDZX1.js} +55 -3
  7. package/dist/{HistoryPage-U0tqupBN.js → HistoryPage-B5Np7Dd_.js} +1 -1
  8. package/dist/{InsightsPage-CALo16eB.js → InsightsPage-CQ8sB4d6.js} +1 -1
  9. package/dist/{MissingNodesInstallModal-Dly7T2_7.js → MissingNodesInstallModal-Dm1m3Ysp.js} +1 -1
  10. package/dist/{QuotaExhaustedDialog-7IFSaLyi.js → QuotaExhaustedDialog-DYCpMOyQ.js} +1 -1
  11. package/dist/{SettingsPage-CJLZvv4J.js → SettingsPage-BNJV7nwG.js} +2 -2
  12. package/dist/{TemplateCard-BdB087SP.js → TemplateCard-BuP6_QX8.js} +2 -2
  13. package/dist/{TemplateConfigurationModal-CPVcTDSi.js → TemplateConfigurationModal--YswnkOD.js} +1 -1
  14. package/dist/{TemplateDetailPanel-DruadMkg.js → TemplateDetailPanel-CtUjihCQ.js} +1 -1
  15. package/dist/{TemplatePreview-CNrYJXw2.js → TemplatePreview-TH3zVEtT.js} +3 -3
  16. package/dist/{TemplatesPage-BU4tSqOo.js → TemplatesPage-BDiIswSv.js} +4 -4
  17. package/dist/{WorkflowBuilder-DMonxuoY.js → WorkflowBuilder-DnTqzYD5.js} +7 -7
  18. package/dist/{WorkflowBuilder-BSPGcOfA.js → WorkflowBuilder-KypUzhmK.js} +3 -3
  19. package/dist/{WorkflowSearchRedirect-DwDNZ_q5.js → WorkflowSearchRedirect-DAA2K0Md.js} +1 -1
  20. package/dist/{WorkflowsList-DiiGyZkT.js → WorkflowsList-BWdu8wj0.js} +5 -5
  21. package/dist/{agentTools-C7pdNJqE.js → agentTools-VQXDvw4O.js} +3 -3
  22. package/dist/{canvasNoteTools-CqiPTBa1.js → canvasNoteTools-CCQtxq7U.js} +2 -2
  23. package/dist/{code-editor-field-9-GdVE_8.js → code-editor-field-4j1LiULY.js} +1 -1
  24. package/dist/executions.js +2 -2
  25. package/dist/{flow-builder-CV5Zu_Hq.js → flow-builder-KbM4vIW8.js} +191 -173
  26. package/dist/history.js +1 -1
  27. package/dist/index.js +25 -24
  28. package/dist/{node-detail-view-ttMp6H6K.js → node-detail-view-CeOkSF2C.js} +5 -5
  29. package/dist/{node-editor-tab-body-Bqb--pZy.js → node-editor-tab-body-CN89wDV7.js} +2 -2
  30. package/dist/observability.js +2 -2
  31. package/dist/{popover-BbVOHsfO.js → popover-CxKbvYSJ.js} +2 -2
  32. package/dist/preloadable-lazy-Pp47mqQ9.js +65 -0
  33. package/dist/{quick-config-panel-Da4uOVSs.js → quick-config-panel-wfP0s4QO.js} +3 -3
  34. package/dist/{schedule-panel-DnFN933b.js → schedule-panel-2HgyHvO8.js} +4 -4
  35. package/dist/settings.js +1 -1
  36. package/dist/{sidebar-node-editor-lcnIZxdR.js → sidebar-node-editor-DLOVQATw.js} +3 -3
  37. package/dist/templates.js +2 -2
  38. package/dist/{useDurableParity-CzUQMFJ3.js → useDurableParity-CJvnfF3T.js} +1 -1
  39. package/dist/{useExecutions-9aLuOt1c.js → useExecutions-CyXkJtpk.js} +1 -1
  40. package/dist/{useObservability-CfEw3ZFD.js → useObservability-QZjFuXnI.js} +1 -1
  41. package/dist/{useRunHistory-B1xJDwl1.js → useRunHistory-D4gaa81A.js} +1 -1
  42. package/dist/{useWorkflowCodeExport-Bu2QYJzA.js → useWorkflowCodeExport-BNGq3BJ9.js} +1 -1
  43. package/dist/{useWorkflows-BlVVu8NM.js → useWorkflows-XsfD7JA-.js} +1 -1
  44. package/dist/workflow-builder.js +4 -4
  45. package/dist/workflow-pages.d.ts +20 -20
  46. package/dist/workflow-pages.js +16 -24
  47. package/dist/workflows-list.js +1 -1
  48. 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-CV5Zu_Hq.js";
5
- import { Et as classifyCreateRefusal, I as buildOperationSeed, Tt as builderPathOf, u as ensureNodeTypesLoaded } from "./FluidGridsProvider-dvZSNtSW.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-KbM4vIW8.js";
5
+ import { Et as classifyCreateRefusal, I as buildOperationSeed, Tt as builderPathOf, u as ensureNodeTypesLoaded } from "./FluidGridsProvider-CRGXDZX1.js";
6
6
  import { _ as throwIfResultError, n as getFluidGridsClient } from "./client-C9XSzSXr.js";
7
7
  import { a as notifyFluidGridsAiCreditsUpdated, t as AiCreditBalanceSlot } from "./aiCreditsBridge-BuE92tKo.js";
8
8
  import { Pr as WorkflowGenerationDocument, y as CancelWorkflowGenerationDocument, yt as GenerateWorkflowFromPromptDocument } from "./graphql-operation-types-kX-MMjgW.js";
9
- import { n as useCreateWorkflow } from "./useWorkflows-BlVVu8NM.js";
9
+ import { n as useCreateWorkflow } from "./useWorkflows-XsfD7JA-.js";
10
10
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
11
11
  import { f as BILLING_PLANS_PATH } from "./fluidgridsEvents-CNdcrUNN.js";
12
- import { T as CreateWorkflowRefusalDialog } from "./useWorkflowCodeExport-Bu2QYJzA.js";
12
+ import { T as CreateWorkflowRefusalDialog } from "./useWorkflowCodeExport-BNGq3BJ9.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";
@@ -0,0 +1,119 @@
1
+ "use client";
2
+ import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
+ import { n as getFluidGridsClient, x as getFluidGridsConfig } from "./client-C9XSzSXr.js";
4
+ import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
5
+ import { useCallback } from "react";
6
+ import { jsx } from "react/jsx-runtime";
7
+ import { ConnectionDialog } from "@burdenoff/fe-libs/connections";
8
+
9
+ // src/modules/connections/utils/provider-helpers.ts
10
+ /**
11
+ * The OAuth callback URL the builder's connections use.
12
+ *
13
+ * Provider identity (icons, name tiles) and labels moved to
14
+ * `@burdenoff/fe-libs/connections` with the shared connection dialog
15
+ * (BOFF-8174); only what depends on the SDK's own configuration stays here.
16
+ */
17
+ /**
18
+ * Get the OAuth callback URL for the integrations service.
19
+ *
20
+ * Returns an ABSOLUTE URL, since OAuth providers require an absolute
21
+ * redirect_uri. The host is derived from the configured wspace gateway base
22
+ * (`apiGatewayUrl`) — which serves the `/integrations/oauth/callback` path —
23
+ * not the app origin. Falls back to the current window origin only when no
24
+ * gateway base is configured.
25
+ */
26
+ function getOAuthCallbackUrl() {
27
+ const path = "/integrations/oauth/callback";
28
+ const gatewayBase = getFluidGridsConfig().apiGatewayUrl;
29
+ if (gatewayBase) try {
30
+ return new URL(path, gatewayBase).toString();
31
+ } catch {}
32
+ if (typeof window !== "undefined" && window.location.hostname === "localhost") return `http://localhost:3713${path}`;
33
+ if (typeof window !== "undefined") return `${window.location.origin}${path}`;
34
+ return path;
35
+ }
36
+
37
+ // src/modules/connections/components/ConnectionFormDialog.tsx
38
+ /**
39
+ * ConnectionFormDialog — a workflow node's "New connection" popup.
40
+ *
41
+ * The dialog itself is `@burdenoff/fe-libs/connections`' ConnectionDialog, the
42
+ * same one the integrations screens use; this component only supplies what the
43
+ * builder has that the shared dialog cannot know: the SDK's GraphQL client, the
44
+ * gateway callback URL and the host's translator. It used to be a separate
45
+ * implementation, and the two drifted (BOFF-8135, BOFF-8170) — see BOFF-8174.
46
+ *
47
+ * Builder-specific choices:
48
+ * - opens on the node's provider by key, or on the whole catalog;
49
+ * - a vault is optional: a node connection should not need a trip to the
50
+ * security module, so the integrations service holds the secret unless the
51
+ * user picks a vault;
52
+ * - shows the Sharing tab.
53
+ */
54
+ var ConnectionFormDialog_exports = /* @__PURE__ */ __exportAll({ ConnectionFormDialog: () => ConnectionFormDialog });
55
+ /** The shared dialog's categories, back in the service's enum. */
56
+ const SDK_CATEGORIES = {
57
+ cloud_storage: "CLOUD_STORAGE",
58
+ communication: "COMMUNICATION",
59
+ productivity: "PRODUCTIVITY",
60
+ crm: "CRM",
61
+ email: "EMAIL",
62
+ calendar: "CALENDAR",
63
+ developer_tools: "DEVELOPMENT",
64
+ social: "SOCIAL",
65
+ finance: "PAYMENT",
66
+ analytics: "ANALYTICS"
67
+ };
68
+ /** Auth types the SDK's enum can express; anything else is CUSTOM. */
69
+ const SDK_AUTH_TYPES = {
70
+ oauth2: "OAUTH2",
71
+ api_key: "API_KEY",
72
+ basic_auth: "BASIC_AUTH",
73
+ bearer_token: "BEARER_TOKEN"
74
+ };
75
+ /** The shared dialog's provider, in the SDK's GraphQL-enum shape. */
76
+ function toSdkProvider(provider) {
77
+ return {
78
+ id: provider.id,
79
+ key: provider.key,
80
+ name: provider.name,
81
+ description: provider.description,
82
+ category: SDK_CATEGORIES[provider.category] ?? "CUSTOM",
83
+ authType: SDK_AUTH_TYPES[provider.authType] ?? "CUSTOM",
84
+ icon: provider.icon,
85
+ website: provider.website,
86
+ docsUrl: provider.docsUrl,
87
+ isBuiltIn: true,
88
+ isEnabled: provider.isEnabled
89
+ };
90
+ }
91
+ function ConnectionFormDialog({ open, onClose, providerKey, providerId, defaultName, onConnectionCreated, onError }) {
92
+ const tr = useTr();
93
+ const handleCreated = useCallback((connection) => {
94
+ onConnectionCreated?.({
95
+ id: connection.id,
96
+ name: connection.name,
97
+ status: connection.status,
98
+ provider: toSdkProvider(connection.provider)
99
+ });
100
+ }, [onConnectionCreated]);
101
+ return /* @__PURE__ */ jsx(ConnectionDialog, {
102
+ open,
103
+ onClose,
104
+ client: getFluidGridsClient(),
105
+ callbackUrl: getOAuthCallbackUrl(),
106
+ translate: tr,
107
+ providerKey: providerKey ?? null,
108
+ providerId: providerId ?? null,
109
+ providerSource: "catalog",
110
+ requireVault: false,
111
+ defaultName,
112
+ showSharingTab: true,
113
+ defaultVisibility: "RESTRICTED",
114
+ onConnectionCreated: handleCreated,
115
+ onError
116
+ });
117
+ }
118
+
119
+ export { ConnectionFormDialog_exports as n, ConnectionFormDialog as t };
@@ -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-CfEw3ZFD.js";
4
+ import { n as useDataSinks, t as useDataSinkData } from "./useObservability-QZjFuXnI.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,11 +1,11 @@
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-CzUQMFJ3.js";
3
+ import { i as useRunPending, n as useDurableParityRunFields, o as ExecutionStatusBadge, r as useRunMetadata, s as NodeStatusBadge, t as setRunVersioningOverride } from "./useDurableParity-CJvnfF3T.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 { Sn as durableInterfaceOf, Tn as runSignalTargets, an as nodeStateDurationMs, bn as canSignalRun, in as formatElapsedMs, on as runDurationMs } from "./FluidGridsProvider-dvZSNtSW.js";
8
- 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-9aLuOt1c.js";
7
+ import { Sn as durableInterfaceOf, Tn as runSignalTargets, an as nodeStateDurationMs, bn as canSignalRun, in as formatElapsedMs, on as runDurationMs } from "./FluidGridsProvider-CRGXDZX1.js";
8
+ 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-CyXkJtpk.js";
9
9
  import { _ as throwIfResultError, m as describeOperationError, n as getFluidGridsClient, r as getFluidGridsClientSafe, x as getFluidGridsConfig } from "./client-C9XSzSXr.js";
10
10
  import { Yr as WorkflowRunHierarchyDocument, dn as RunAiUsageDocument, o as AgentStepUpdatedDocument, s as AgentTraceDocument, ut as ExplainRunDocument, xn as RunLogsDocument, yn as RunLogAppendedDocument } from "./graphql-operation-types-kX-MMjgW.js";
11
11
  import { i as SdkPermissionButton, s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-B2lhWNoN.js";
@@ -15,18 +15,17 @@ import { a as encodedPayloadBytes, f as EffectBadge, h as useRunPolicyDecisions,
15
15
  import { n as useWorkflowProposal, o as canSaveRunAsTestCase, r as saveRunAsTestCase, t as WorkflowProposalCard } from "./WorkflowProposalCard-qrEeNyYG.js";
16
16
  import { t as AiCreditBalanceSlot } from "./aiCreditsBridge-BuE92tKo.js";
17
17
  import { a as fetchRunFailureClusters, i as dismissRunFailureCluster, r as OPEN_STATUSES, t as BUCKET_LABELS } from "./FailureTriagePanel-B9hDQymi.js";
18
- import { a as useDurableRunFields, i as useDeterminismStatus, n as SignalRunDialog, o as useRunStackTrace, r as terminateDurableRun, s as RunHistoryView, t as useRunHistory } from "./useRunHistory-B1xJDwl1.js";
18
+ import { a as useDurableRunFields, i as useDeterminismStatus, n as SignalRunDialog, o as useRunStackTrace, r as terminateDurableRun, s as RunHistoryView, t as useRunHistory } from "./useRunHistory-D4gaa81A.js";
19
19
  import { $u as ErrorType, L as AgentStepKind, LF as WorkflowQueryRejectCondition, tI as WorkflowUpdateWaitFor, yP as VersioningBehavior } from "./graphql-types-CDKVWH2R.js";
20
20
  import { a as formatTokens, d as formatMicroUsd, o as modelLabel, r as aiCost } from "./ai-usage-glCwHyQz.js";
21
21
  import { c as useDurableParityEnabled, f as usePhaseCFlags, m as useWorkflowTestsEnabled, s as useDurableFunctionNodesEnabled } from "./feature-flags-DM5myWaD.js";
22
22
  import { A as revokeSignalToken, B as updateActivityOptions, D as resetActivities, E as queryRun, N as sendRunUpdate, O as resetRun, R as unpauseActivities, S as fetchSignalTokens, V as upsertRunSearchAttributes, _ as fetchPauseRules, b as fetchRunUpdate, d as failActivityById, g as fetchCodecServerSettings, i as completeActivityById, k as resetRunToLastCleanTask, s as createSignalToken, v as fetchRunControlFields, w as pauseActivities, y as fetchRunHistoryArchive } from "./api-BrCHB5oA.js";
23
23
  import { a as fetchTaskQueueStats } from "./api-C8e0iV-Q.js";
24
24
  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";
25
- import { v as useWorkflowVersions } from "./useWorkflows-BlVVu8NM.js";
25
+ import { v as useWorkflowVersions } from "./useWorkflows-XsfD7JA-.js";
26
26
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
27
27
  import { Link, useNavigate, useParams, useSearchParams } from "react-router";
28
28
  import { Icon } from "@iconify/react";
29
- import ReactMarkdown from "react-markdown";
30
29
  import { cn } from "@burdenoff/fe-libs/utils";
31
30
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
32
31
  import { toast } from "sonner";
@@ -34,6 +33,7 @@ import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent,
34
33
  import { Button as Button$1 } from "@burdenoff/fe-libs/button";
35
34
  import { FlaskConical } from "lucide-react";
36
35
  import { buildActorFallback, useActorProfiles } from "@burdenoff/fe-libs/shared";
36
+ import ReactMarkdown from "react-markdown";
37
37
 
38
38
  // src/modules/executions/utils/agent-trace.ts
39
39
  /**
@@ -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-9aLuOt1c.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-CyXkJtpk.js";
5
5
  import { c as useDurableParityEnabled, f as usePhaseCFlags } from "./feature-flags-DM5myWaD.js";
6
6
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
7
7
  import { n as useFluidGridsPageControls } from "./pageControlsBridge-0pX9s-3k.js";
8
8
  import { t as executionsControls } from "./pageControlSpecs-DZJ9K37m.js";
9
9
  import { t as TagFilterSelect } from "./TagFilterSelect-DCBOH6Ou.js";
10
- import { a as useRunStatusCounts, c as runStatusLabels, l as RUN_STATUS_CONFIG, o as ExecutionStatusBadge } from "./useDurableParity-CzUQMFJ3.js";
10
+ import { a as useRunStatusCounts, c as runStatusLabels, l as RUN_STATUS_CONFIG, o as ExecutionStatusBadge } from "./useDurableParity-CJvnfF3T.js";
11
11
  import { n as formatRunVersion } from "./run-display-BycKYSU0.js";
12
- import { in as formatElapsedMs, on as runDurationMs } from "./FluidGridsProvider-dvZSNtSW.js";
12
+ import { in as formatElapsedMs, on as runDurationMs } from "./FluidGridsProvider-CRGXDZX1.js";
13
13
  import { n as runListLinkKey, t as runListFilterFromSearch } from "./run-list-links-ByYC0OlV.js";
14
- import { h as useWorkflowDefinitions } from "./useWorkflows-BlVVu8NM.js";
14
+ import { h as useWorkflowDefinitions } from "./useWorkflows-XsfD7JA-.js";
15
15
  import { t as FluidGridsDocsLink } from "./FluidGridsDocsLink-JxkBpOeb.js";
16
16
  import { s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-B2lhWNoN.js";
17
17
  import { C as jsonArg, F as startBatchOperation, I as startBatchTerminate, P as startBatchExport, m as fetchBatchOperations, n as cancelBatchOperation, p as fetchBatchOperation, x as fetchSearchAttributes } from "./api-BrCHB5oA.js";
@@ -15,7 +15,6 @@ import { create } from "zustand";
15
15
  import { Handle, NodeResizer, Position, getConnectedEdges, useReactFlow, useStore } from "@xyflow/react";
16
16
  import { Icon } from "@iconify/react";
17
17
  import { nanoid } from "nanoid";
18
- import ReactMarkdown from "react-markdown";
19
18
  import { cn } from "@burdenoff/fe-libs/utils";
20
19
  import { nanoid as nanoid$1 } from "nanoid/non-secure";
21
20
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -66,6 +65,59 @@ function useBuilderReadOnly() {
66
65
  return useContext(BuilderReadOnlyContext);
67
66
  }
68
67
 
68
+ // src/components/shared/markdownRenderer.ts
69
+ /**
70
+ * The markdown renderer, loaded on first use (BOFF-11944). See LazyMarkdown.
71
+ */
72
+ let renderer = null;
73
+ let pending = null;
74
+ /**
75
+ * Loads the markdown renderer once for every caller. A failed load is
76
+ * forgotten, so the next caller asks again.
77
+ */
78
+ function loadMarkdown() {
79
+ pending ??= import("react-markdown").then((m) => {
80
+ renderer = m.default;
81
+ return m.default;
82
+ }, (error) => {
83
+ pending = null;
84
+ throw error;
85
+ });
86
+ return pending;
87
+ }
88
+ /** The markdown renderer once loaded (it starts the load), else null. */
89
+ function useMarkdownRenderer() {
90
+ const [Markdown, setMarkdown] = useState(() => renderer);
91
+ useEffect(() => {
92
+ if (Markdown) return void 0;
93
+ let live = true;
94
+ loadMarkdown().then((loaded) => {
95
+ if (live) setMarkdown(() => loaded);
96
+ }, (error) => {
97
+ console.error("[FluidGrids] Markdown renderer failed to load:", error);
98
+ });
99
+ return () => {
100
+ live = false;
101
+ };
102
+ }, [Markdown]);
103
+ return Markdown;
104
+ }
105
+
106
+ // src/components/shared/LazyMarkdown.tsx
107
+ /** `children` as markdown once the renderer is in; plain text until then. */
108
+ function LazyMarkdown({ children, components }) {
109
+ const Markdown = useMarkdownRenderer();
110
+ if (!Markdown) return /* @__PURE__ */ jsx("p", {
111
+ className: "whitespace-pre-wrap",
112
+ "data-markdown-pending": "",
113
+ children
114
+ });
115
+ return /* @__PURE__ */ jsx(Markdown, {
116
+ components,
117
+ children
118
+ });
119
+ }
120
+
69
121
  // src/builder/components/flow-builder/components/blocks/nodes/sticky-note/sticky-note-node.tsx
70
122
  const STICKY_DEFAULT_SIZE = {
71
123
  width: 260,
@@ -265,7 +317,7 @@ function StickyNoteNodeComponent({ id, selected, data }) {
265
317
  className: "nodrag nowheel h-full w-full resize-none bg-transparent p-3 font-mono text-xs leading-relaxed text-foreground outline-none placeholder:text-muted-foreground/60"
266
318
  }) : content.trim() ? /* @__PURE__ */ jsx("div", {
267
319
  className: cn("nowheel h-full w-full overflow-auto p-3 text-xs leading-relaxed text-foreground", "[&_h1]:mb-1.5 [&_h1]:text-sm [&_h1]:font-bold", "[&_h2]:mb-1 [&_h2]:text-[13px] [&_h2]:font-bold", "[&_h3]:mb-1 [&_h3]:text-xs [&_h3]:font-semibold", "[&_p]:mb-1.5 [&_ul]:mb-1.5 [&_ul]:list-disc [&_ul]:pl-4", "[&_ol]:mb-1.5 [&_ol]:list-decimal [&_ol]:pl-4 [&_li]:mb-0.5", "[&_a]:underline [&_code]:rounded [&_code]:bg-muted [&_code]:px-1"),
268
- children: /* @__PURE__ */ jsx(ReactMarkdown, { children: content })
320
+ children: /* @__PURE__ */ jsx(LazyMarkdown, { children: content })
269
321
  }) : /* @__PURE__ */ jsx("div", {
270
322
  className: "flex h-full w-full items-center justify-center p-3 text-xs text-muted-foreground/70",
271
323
  children: tr("fluidgrids.builder.stickyNote.emptyStateHint", "Double-click to edit")
@@ -10417,4 +10469,4 @@ function useFluidGridsContext() {
10417
10469
  return context;
10418
10470
  }
10419
10471
 
10420
- export { isStringOptionList as $, inAppLeaveTarget as $t, StoreNodeProductsByTypeDocument as A, newConnectionProviderKey as An, useSaveStatusStore as At, useRunGuard as B, shouldReleaseForIdle as Bt, GetMyNodeInstallationsDocument as C, parseRawSignalPayload as Cn, useSaveWorkflow as Ct, InstallWorkflowNodeDocument as D, connectionsForAdapter as Dn, createThenOpen as Dt, InstallPurchasedNodeDocument as E, signalPayloadCard as En, classifyCreateRefusal as Et, getNodeMetadata as F, useBuilderReadOnly as Fn, leaseCallQueue as Ft, nodeSubtitle as G, sessionBeforeReload as Gt, asRecord as H, EDIT_SESSION_ID as Ht, buildOperationSeed as I, leaseCallSequence as It, paramsFromOperation as J, AUTOSAVE_DEBOUNCE_MS as Jt, nodeTitle as K, rememberOwnStatusChange as Kt, createConfiguredNode as L, phaseAfterAcquire as Lt, UninstallOrganizationPrivateNodeDocument as M, getNodeDetail as Mn, useEditLeaseStore as Mt, UninstallWorkflowNodeDocument as N, buildStickyNode as Nn, bannerOf as Nt, MyWorkflowTemplateSubmissionsDocument as O, isOptionalAdapter as On, refusalOfQuota as Ot, WithdrawWorkflowTemplateSubmissionDocument as P, BuilderReadOnlyProvider as Pn, isLocked as Pt, stripSubmitActions as Q, findSaveConflict as Qt, useInsertNode as R, phaseAfterTakeOver as Rt, CreateStoreOrderDocument as S, durableInterfaceOf as Sn, useFlowValidator as St, InstallOrganizationPrivateNodeDocument as T, runSignalTargets as Tn, builderPathOf as Tt, coerceNumber as U, forgetSessionForReload as Ut, workflowParameterIssues as V, tickAction as Vt, fixedParameterState as W, rememberSessionForReload as Wt, useNodeConfig as X, canAutosave as Xt, selectedOperationOf as Y, AUTOSAVE_RETRY_DELAYS_MS as Yt, resolveUiSpec as Z, codeBuildIdOf as Zt, registryNodeData as _, clearCodeWorkflowDefinitionCache as _n, leavingLosesChanges as _t, NODES_METADATA as a, nodeStateDurationMs as an, casesFromRules as at, BrowseWorkflowNodesDocument as b, canSignalRun as bn, watchLeavingLosesChanges as bt, ensureInstalledNodeTypesLoaded as c, parseParameterValue as cn, latestNodeLog as ct, ensureRegistryNodeTypesLoaded as d, resolveNodeOperation as dn, useGuardedNavigate as dt, resettledBaseline as en, optionListText as et, isNodeConfigsInitialized as f, isParamVisible as fn, useManualSave as ft, registerWorkflowNodeTypes as g, useNodeRegistryRevision as gn, editingLeaseLocked as gt, registerNodeManifests as h, useCanvasEdges as hn, editStateFor as ht, AVAILABLE_NODES as i, formatElapsedMs as in, SwitchRulesEditor as it, SubmitWorkflowTemplateDocument as j, replaceAdapterConnections as jn, useEditLeaseLocked as jt, OrganizationPrivateNodesDocument as k, matchesAdapterProvider as kn, saveIndicatorOf as kt, ensureNodeConfigsLoaded as l, structuredParameterType as ln, boundFieldsOf as lt, refetchStoreNodes as m, openRunQuotaUpgradePrompt as mn, departingSave as mt, FluidGridsProvider as n, workflowFingerprint as nn, resolveLoadOptionsSpec as nt, NODE_CONFIGS as o, runDurationMs as on, FieldTree as ot, onNodeTypesUpdate as p, useFluidGridsAnalytics as pn, autosaveAllowedFor as pt, optionText as q, rememberRevision as qt, useFluidGridsContext as r, useNodeExecution as rn, ConditionTreeBuilder as rt, NODE_TYPES as s, formatParameterValue as sn, parseMappingValue as st, FluidGridsContext as t, saveFailureActionOf as tn, optionListValues as tt, ensureNodeTypesLoaded as u, fieldsFromValue as un, missingRequiredParameters as ut, scheduleNodePaletteLoad as v, loadDefinitionJson as vn, savedEverythingBeforeLeaving as vt, GetNodeInstallableVersionsDocument as w, payloadFromCardValues as wn, blankWorkflowCreateInput as wt, BrowseWorkflowTemplatesDocument as x, declaredSignals as xn, isFlowComplete as xt, global_operations_exports as y, useCodeWorkflowInterface as yn, touchesSavedFields as yt, MissingParametersDialog as z, releasesOnClose as zt };
10472
+ export { isStringOptionList as $, inAppLeaveTarget as $t, StoreNodeProductsByTypeDocument as A, newConnectionProviderKey as An, useSaveStatusStore as At, useRunGuard as B, shouldReleaseForIdle as Bt, GetMyNodeInstallationsDocument as C, parseRawSignalPayload as Cn, useSaveWorkflow as Ct, InstallWorkflowNodeDocument as D, connectionsForAdapter as Dn, createThenOpen as Dt, InstallPurchasedNodeDocument as E, signalPayloadCard as En, classifyCreateRefusal as Et, getNodeMetadata as F, useMarkdownRenderer as Fn, leaseCallQueue as Ft, nodeSubtitle as G, sessionBeforeReload as Gt, asRecord as H, EDIT_SESSION_ID as Ht, buildOperationSeed as I, BuilderReadOnlyProvider as In, leaseCallSequence as It, paramsFromOperation as J, AUTOSAVE_DEBOUNCE_MS as Jt, nodeTitle as K, rememberOwnStatusChange as Kt, createConfiguredNode as L, useBuilderReadOnly as Ln, phaseAfterAcquire as Lt, UninstallOrganizationPrivateNodeDocument as M, getNodeDetail as Mn, useEditLeaseStore as Mt, UninstallWorkflowNodeDocument as N, buildStickyNode as Nn, bannerOf as Nt, MyWorkflowTemplateSubmissionsDocument as O, isOptionalAdapter as On, refusalOfQuota as Ot, WithdrawWorkflowTemplateSubmissionDocument as P, loadMarkdown as Pn, isLocked as Pt, stripSubmitActions as Q, findSaveConflict as Qt, useInsertNode as R, phaseAfterTakeOver as Rt, CreateStoreOrderDocument as S, durableInterfaceOf as Sn, useFlowValidator as St, InstallOrganizationPrivateNodeDocument as T, runSignalTargets as Tn, builderPathOf as Tt, coerceNumber as U, forgetSessionForReload as Ut, workflowParameterIssues as V, tickAction as Vt, fixedParameterState as W, rememberSessionForReload as Wt, useNodeConfig as X, canAutosave as Xt, selectedOperationOf as Y, AUTOSAVE_RETRY_DELAYS_MS as Yt, resolveUiSpec as Z, codeBuildIdOf as Zt, registryNodeData as _, clearCodeWorkflowDefinitionCache as _n, leavingLosesChanges as _t, NODES_METADATA as a, nodeStateDurationMs as an, casesFromRules as at, BrowseWorkflowNodesDocument as b, canSignalRun as bn, watchLeavingLosesChanges as bt, ensureInstalledNodeTypesLoaded as c, parseParameterValue as cn, latestNodeLog as ct, ensureRegistryNodeTypesLoaded as d, resolveNodeOperation as dn, useGuardedNavigate as dt, resettledBaseline as en, optionListText as et, isNodeConfigsInitialized as f, isParamVisible as fn, useManualSave as ft, registerWorkflowNodeTypes as g, useNodeRegistryRevision as gn, editingLeaseLocked as gt, registerNodeManifests as h, useCanvasEdges as hn, editStateFor as ht, AVAILABLE_NODES as i, formatElapsedMs as in, SwitchRulesEditor as it, SubmitWorkflowTemplateDocument as j, replaceAdapterConnections as jn, useEditLeaseLocked as jt, OrganizationPrivateNodesDocument as k, matchesAdapterProvider as kn, saveIndicatorOf as kt, ensureNodeConfigsLoaded as l, structuredParameterType as ln, boundFieldsOf as lt, refetchStoreNodes as m, openRunQuotaUpgradePrompt as mn, departingSave as mt, FluidGridsProvider as n, workflowFingerprint as nn, resolveLoadOptionsSpec as nt, NODE_CONFIGS as o, runDurationMs as on, FieldTree as ot, onNodeTypesUpdate as p, useFluidGridsAnalytics as pn, autosaveAllowedFor as pt, optionText as q, rememberRevision as qt, useFluidGridsContext as r, useNodeExecution as rn, ConditionTreeBuilder as rt, NODE_TYPES as s, formatParameterValue as sn, parseMappingValue as st, FluidGridsContext as t, saveFailureActionOf as tn, optionListValues as tt, ensureNodeTypesLoaded as u, fieldsFromValue as un, missingRequiredParameters as ut, scheduleNodePaletteLoad as v, loadDefinitionJson as vn, savedEverythingBeforeLeaving as vt, GetNodeInstallableVersionsDocument as w, payloadFromCardValues as wn, blankWorkflowCreateInput as wt, BrowseWorkflowTemplatesDocument as x, declaredSignals as xn, isFlowComplete as xt, global_operations_exports as y, useCodeWorkflowInterface as yn, touchesSavedFields as yt, MissingParametersDialog as z, releasesOnClose as zt };
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
- import { d as useRestoreWorkflowVersion, h as useWorkflowDefinitions } from "./useWorkflows-BlVVu8NM.js";
3
+ import { d as useRestoreWorkflowVersion, h as useWorkflowDefinitions } from "./useWorkflows-XsfD7JA-.js";
4
4
  import { i as versionsOfWorkflow, t as VersionDiffDialog } from "./VersionDiffDialog-DSN0mU0f.js";
5
5
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
6
6
  import { x as getFluidGridsConfig } from "./client-C9XSzSXr.js";
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
3
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
4
- import { o as useRunReplayActions, r as useInsightsData } from "./useObservability-CfEw3ZFD.js";
4
+ import { o as useRunReplayActions, r as useInsightsData } from "./useObservability-QZjFuXnI.js";
5
5
  import { a as getTopFailingWorkflows, i as getTopFailingNodes, n as formatDuration, o as percentage, r as getFailureBreakdown } from "./utils-uaL5UVxb.js";
6
6
  import { n as FailureTriagePanel } from "./FailureTriagePanel-B9hDQymi.js";
7
7
  import { o as useContinuousOptimisationEnabled } from "./feature-flags-DM5myWaD.js";
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { a as DialogFooter, i as DialogDescription, l as DialogTitle, o as DialogHeader, r as DialogContent, t as Dialog } from "./dialog-Cjb4lB4D.js";
3
3
  import { t as Button } from "./button-DG7y_FVJ.js";
4
- import { r as Badge } from "./TemplateCard-BdB087SP.js";
4
+ import { r as Badge } from "./TemplateCard-BuP6_QX8.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 { pn as useFluidGridsAnalytics } from "./FluidGridsProvider-dvZSNtSW.js";
3
+ import { pn as useFluidGridsAnalytics } from "./FluidGridsProvider-CRGXDZX1.js";
4
4
  import { c as emitWorkflowLimitHit, h as WORKFLOWS_QUOTA_NAME, o as emitUpgradeClicked } from "./fluidgridsEvents-CNdcrUNN.js";
5
5
  import { useEffect, useRef } from "react";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -11,8 +11,8 @@ import { M as saveCodecServerSettings, _ as fetchPauseRules, a as createPauseRul
11
11
  import { i as NativeSelect, o as StatusPill, t as FieldError, u as useResource } from "./shared-CMfn30xT.js";
12
12
  import { KF as WorkflowSearchAttributeType } from "./graphql-types-CDKVWH2R.js";
13
13
  import { H as useFlowStore } from "./node-operation-selection--oy-yEq_.js";
14
- import { At as useSaveStatusStore, Qt as findSaveConflict } from "./FluidGridsProvider-dvZSNtSW.js";
15
- import { a as useLogStreamDestinations, i as useLogStreamDestinationActions } from "./useObservability-CfEw3ZFD.js";
14
+ import { At as useSaveStatusStore, Qt as findSaveConflict } from "./FluidGridsProvider-CRGXDZX1.js";
15
+ import { a as useLogStreamDestinations, i as useLogStreamDestinationActions } from "./useObservability-QZjFuXnI.js";
16
16
  import { n as useConnections } from "./useConnections-Cs7LCWEM.js";
17
17
  import { Nt as useUpdateWorkflowDefinitionMutation, Rt as useWorkflowDefinitionQuery, Vt as useWorkflowDefinitionsQuery, n as useAgentDefinitions } from "./useAgentDefinitions-B0dam3_o.js";
18
18
  import { a as formToInput$2, i as emptyAgentForm, n as agentToForm, o as grantDays, r as describeRule, t as AgentFormError } from "./agent-form-Bfvm32j1.js";
@@ -1,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, i as AVAILABLE_NODES, o as NODE_CONFIGS, pn as useFluidGridsAnalytics, t as FluidGridsContext, x as BrowseWorkflowTemplatesDocument } from "./FluidGridsProvider-dvZSNtSW.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, pn as useFluidGridsAnalytics, t as FluidGridsContext, x as BrowseWorkflowTemplatesDocument } from "./FluidGridsProvider-CRGXDZX1.js";
5
5
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
6
6
  import { a as emitTemplateUsed, s as emitWorkflowCreated, t as emitNodeInstalled, y as isQuotaExhaustedFailure } from "./fluidgridsEvents-CNdcrUNN.js";
7
7
  import { t as cn } from "./cn-QqidFIgr.js";
@@ -1079,7 +1079,7 @@ async function dismissToastWhenShown(id) {
1079
1079
  }
1080
1080
 
1081
1081
  // src/hooks/store/useTemplateImportFlow.tsx
1082
- const LazyTemplateConfigurationModal = lazy(() => import("./TemplateConfigurationModal-CPVcTDSi.js").then((m) => ({ default: m.TemplateConfigurationModal })));
1082
+ const LazyTemplateConfigurationModal = lazy(() => import("./TemplateConfigurationModal--YswnkOD.js").then((m) => ({ default: m.TemplateConfigurationModal })));
1083
1083
  /**
1084
1084
  * "Use this template", the same everywhere it is offered: the builder's
1085
1085
  * 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-BdB087SP.js";
4
+ import { r as Badge } from "./TemplateCard-BuP6_QX8.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-BdB087SP.js";
3
+ import { n as templatePreview, r as Badge } from "./TemplateCard-BuP6_QX8.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-CV5Zu_Hq.js";
5
- import { a as useTemplateImportFlow, l as useImportWorkflowTemplate } from "./TemplateCard-BdB087SP.js";
6
- import { t as QuotaExhaustedDialog } from "./QuotaExhaustedDialog-7IFSaLyi.js";
4
+ import { t as FlowBuilderPage } from "./flow-builder-KbM4vIW8.js";
5
+ import { a as useTemplateImportFlow, l as useImportWorkflowTemplate } from "./TemplateCard-BuP6_QX8.js";
6
+ import { t as QuotaExhaustedDialog } from "./QuotaExhaustedDialog-DYCpMOyQ.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 { f as BILLING_PLANS_PATH } from "./fluidgridsEvents-CNdcrUNN.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-BlVVu8NM.js";
4
- import { a as useTemplateImportFlow, t as TemplateCard, u as useWorkflowTemplates, y as useGlobalStoreClient } from "./TemplateCard-BdB087SP.js";
3
+ import { h as useWorkflowDefinitions, l as useLazyWorkflowDefinition, s as useDuplicateWorkflow } from "./useWorkflows-XsfD7JA-.js";
4
+ import { a as useTemplateImportFlow, t as TemplateCard, u as useWorkflowTemplates, y as useGlobalStoreClient } from "./TemplateCard-BuP6_QX8.js";
5
5
  import { YF as WorkflowStatus } from "./graphql-types-CDKVWH2R.js";
6
6
  import { i as SdkPermissionButton, t as FLUIDGRIDS_PERMISSIONS } from "./constants-B2lhWNoN.js";
7
- import { t as QuotaExhaustedDialog } from "./QuotaExhaustedDialog-7IFSaLyi.js";
7
+ import { t as QuotaExhaustedDialog } from "./QuotaExhaustedDialog-DYCpMOyQ.js";
8
8
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
9
- import { O as MyWorkflowTemplateSubmissionsDocument, P as WithdrawWorkflowTemplateSubmissionDocument, j as SubmitWorkflowTemplateDocument, pn as useFluidGridsAnalytics } from "./FluidGridsProvider-dvZSNtSW.js";
9
+ import { O as MyWorkflowTemplateSubmissionsDocument, P as WithdrawWorkflowTemplateSubmissionDocument, j as SubmitWorkflowTemplateDocument, pn as useFluidGridsAnalytics } from "./FluidGridsProvider-CRGXDZX1.js";
10
10
  import { a as emitTemplateUsed, f as BILLING_PLANS_PATH, y as isQuotaExhaustedFailure } from "./fluidgridsEvents-CNdcrUNN.js";
11
11
  import { n as useFluidGridsPageControls } from "./pageControlsBridge-0pX9s-3k.js";
12
12
  import { r as templatesControls } from "./pageControlSpecs-DZJ9K37m.js";
@@ -1,18 +1,18 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
- import { g as useWorkflowReloadStore, h as releaseLeaseKeptForReload, t as FlowBuilderPage } from "./flow-builder-CV5Zu_Hq.js";
3
+ import { h as useWorkflowReloadStore, m as releaseLeaseKeptForReload, t as FlowBuilderPage } from "./flow-builder-KbM4vIW8.js";
4
4
  import { n as registerLiveCanvasHandler } from "./liveCanvas-D5ytXDp8.js";
5
5
  import { _ as throwIfResultError, n as getFluidGridsClient, x as getFluidGridsConfig } from "./client-C9XSzSXr.js";
6
6
  import { Er as WorkflowDefinitionDocument } from "./graphql-operation-types-kX-MMjgW.js";
7
7
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
8
- import { At as useSaveStatusStore, Et as classifyCreateRefusal, J as paramsFromOperation, L as createConfiguredNode, Zt as codeBuildIdOf, dn as resolveNodeOperation, g as registerWorkflowNodeTypes, h as registerNodeManifests, m as refetchStoreNodes, nn as workflowFingerprint, o as NODE_CONFIGS, qt as rememberRevision, u as ensureNodeTypesLoaded, wt as blankWorkflowCreateInput } from "./FluidGridsProvider-dvZSNtSW.js";
8
+ import { At as useSaveStatusStore, Et as classifyCreateRefusal, J as paramsFromOperation, L as createConfiguredNode, Zt as codeBuildIdOf, dn as resolveNodeOperation, g as registerWorkflowNodeTypes, h as registerNodeManifests, m as refetchStoreNodes, nn as workflowFingerprint, o as NODE_CONFIGS, qt as rememberRevision, u as ensureNodeTypesLoaded, wt as blankWorkflowCreateInput } from "./FluidGridsProvider-CRGXDZX1.js";
9
9
  import { F as mergeStickyNotes, H as useFlowStore } from "./node-operation-selection--oy-yEq_.js";
10
10
  import { t as canvasFromDefinition } from "./definition-canvas--3MPHoP-.js";
11
- import { l as useLazyWorkflowDefinition, n as useCreateWorkflow } from "./useWorkflows-BlVVu8NM.js";
12
- import { c as getWorkflowNodeTypes, o as buildNodeCheck, s as buildRequiredNodeTypes, v as useInstalledNodes } from "./TemplateCard-BdB087SP.js";
11
+ import { l as useLazyWorkflowDefinition, n as useCreateWorkflow } from "./useWorkflows-XsfD7JA-.js";
12
+ import { c as getWorkflowNodeTypes, o as buildNodeCheck, s as buildRequiredNodeTypes, v as useInstalledNodes } from "./TemplateCard-BuP6_QX8.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 { f as BILLING_PLANS_PATH } from "./fluidgridsEvents-CNdcrUNN.js";
15
- import { T as CreateWorkflowRefusalDialog } from "./useWorkflowCodeExport-Bu2QYJzA.js";
15
+ import { T as CreateWorkflowRefusalDialog } from "./useWorkflowCodeExport-BNGq3BJ9.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-Dly7T2_7.js").then((m) => ({ default: m.MissingNodesInstallModal })));
1091
+ const LazyMissingNodesInstallModal = lazy(() => import("./MissingNodesInstallModal-Dm1m3Ysp.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-dvZSNtSW.js").then((n) => n.y);
1163
+ const { InstallWorkflowNodeDocument } = await import("./FluidGridsProvider-CRGXDZX1.js").then((n) => n.y);
1164
1164
  const { getFluidGridsConfig } = await import("./client-C9XSzSXr.js").then((n) => n.b);
1165
1165
  const storeClient = getGlobalStoreClient();
1166
1166
  const cfg = getFluidGridsConfig();
@@ -1,12 +1,12 @@
1
1
  "use client";
2
- import { hn as useCanvasEdges, n as FluidGridsProvider } from "./FluidGridsProvider-dvZSNtSW.js";
2
+ import { hn as useCanvasEdges, n as FluidGridsProvider } from "./FluidGridsProvider-CRGXDZX1.js";
3
3
  import { H as useFlowStore } from "./node-operation-selection--oy-yEq_.js";
4
4
  import { t as Button } from "./button-DG7y_FVJ.js";
5
5
  import { d as Input } from "./dialog-Cjb4lB4D.js";
6
- import { b as Card } from "./TemplateCard-BdB087SP.js";
6
+ import { b as Card } from "./TemplateCard-BuP6_QX8.js";
7
7
  import { t as cn } from "./cn-QqidFIgr.js";
8
8
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
9
- import { S as FluidGridsMark, x as useNodeSelectedEvent } from "./flow-builder-CV5Zu_Hq.js";
9
+ import { b as useNodeSelectedEvent, x as FluidGridsMark } from "./flow-builder-KbM4vIW8.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,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-BlVVu8NM.js";
3
+ import { m as useWorkflowDefinition } from "./useWorkflows-XsfD7JA-.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,19 +1,19 @@
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-BlVVu8NM.js";
4
- import { Dt as createThenOpen, t as FluidGridsContext } from "./FluidGridsProvider-dvZSNtSW.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-Bu2QYJzA.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-XsfD7JA-.js";
4
+ import { Dt as createThenOpen, t as FluidGridsContext } from "./FluidGridsProvider-CRGXDZX1.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-BNGq3BJ9.js";
6
6
  import { f as BILLING_PLANS_PATH, y as isQuotaExhaustedFailure } from "./fluidgridsEvents-CNdcrUNN.js";
7
7
  import { H as useFlowStore } from "./node-operation-selection--oy-yEq_.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-7IFSaLyi.js";
9
+ import { t as QuotaExhaustedDialog } from "./QuotaExhaustedDialog-DYCpMOyQ.js";
10
10
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
11
11
  import { CF as WorkflowExportFormat, gF as WorkflowAccessFilter } from "./graphql-types-CDKVWH2R.js";
12
12
  import { i as canShareWorkflow, r as canEditWorkflow, t as WorkflowShareDialog } from "./WorkflowShareDialog-mbIwRQUY.js";
13
13
  import { l as useFluidGridsFlag, t as FLUIDGRIDS_FLAGS } from "./feature-flags-DM5myWaD.js";
14
14
  import { _ as throwIfResultError, m as describeOperationError, n as getFluidGridsClient } from "./client-C9XSzSXr.js";
15
15
  import { $t as RenameWorkflowProjectDocument, G as DeleteWorkflowFolderDocument, Hr as WorkflowProjectsDocument, K as DeleteWorkflowProjectDocument, M as CreateWorkflowProjectDocument, Nr as WorkflowFoldersDocument, Qt as RenameWorkflowFolderDocument, Tt as MoveWorkflowFolderDocument, g as BulkMoveWorkflowsToFolderDocument, h as BulkDeleteWorkflowsDocument, j as CreateWorkflowFolderDocument, m as BulkAssignWorkflowsToProjectDocument } from "./graphql-operation-types-kX-MMjgW.js";
16
- import { a as useExecutions } from "./useExecutions-9aLuOt1c.js";
16
+ import { a as useExecutions } from "./useExecutions-CyXkJtpk.js";
17
17
  import { a as firstWorkflowProgress, i as builderPathFor, r as GUIDED_TOUR_STATE } from "./firstWorkflow-C_h0KMB2.js";
18
18
  import { n as useFluidGridsPageControls } from "./pageControlsBridge-0pX9s-3k.js";
19
19
  import { i as workflowsListControls } from "./pageControlSpecs-DZJ9K37m.js";
@@ -1,8 +1,8 @@
1
1
  "use client";
2
- import { At as useSaveStatusStore, J as paramsFromOperation, K as nodeTitle, L as createConfiguredNode, W as fixedParameterState, Y as selectedOperationOf, _ as registryNodeData, f as isNodeConfigsInitialized, o as NODE_CONFIGS, pt as autosaveAllowedFor, xt as isFlowComplete } from "./FluidGridsProvider-dvZSNtSW.js";
2
+ import { At as useSaveStatusStore, J as paramsFromOperation, K as nodeTitle, L as createConfiguredNode, W as fixedParameterState, Y as selectedOperationOf, _ as registryNodeData, f as isNodeConfigsInitialized, o as NODE_CONFIGS, pt as autosaveAllowedFor, xt as isFlowComplete } from "./FluidGridsProvider-CRGXDZX1.js";
3
3
  import { E as resolveOutputHandles, H as useFlowStore, T as resolveInputHandles } from "./node-operation-selection--oy-yEq_.js";
4
- import { j as isNodeTypeHiddenFromPalette } from "./TemplateCard-BdB087SP.js";
5
- import { b as computeAttachPosition } from "./flow-builder-CV5Zu_Hq.js";
4
+ import { j as isNodeTypeHiddenFromPalette } from "./TemplateCard-BuP6_QX8.js";
5
+ import { y as computeAttachPosition } from "./flow-builder-KbM4vIW8.js";
6
6
  import { AgentToolError, defineAgentTool } from "@burdenoff/fe-libs/shared/agent-tools";
7
7
  import { z } from "zod";
8
8
 
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  import { n as useAgentMarksStore, r as toPlainText } from "./marksStore-DGCXjTmZ.js";
3
- import { J as paramsFromOperation, K as nodeTitle, Y as selectedOperationOf } from "./FluidGridsProvider-dvZSNtSW.js";
3
+ import { J as paramsFromOperation, K as nodeTitle, Y as selectedOperationOf } from "./FluidGridsProvider-CRGXDZX1.js";
4
4
  import { H as useFlowStore } from "./node-operation-selection--oy-yEq_.js";
5
- import { _ as notesKeyOf } from "./flow-builder-CV5Zu_Hq.js";
5
+ import { g as notesKeyOf } from "./flow-builder-KbM4vIW8.js";
6
6
  import { AgentToolError, defineAgentTool } from "@burdenoff/fe-libs/shared/agent-tools";
7
7
  import { z } from "zod";
8
8
 
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
3
  import { g as toCodeMirrorDiagnostics } from "./node-operation-selection--oy-yEq_.js";
4
- import { Fn as useBuilderReadOnly } from "./FluidGridsProvider-dvZSNtSW.js";
4
+ import { Ln as useBuilderReadOnly } from "./FluidGridsProvider-CRGXDZX1.js";
5
5
  import { useEffect, useMemo, useRef, useState } from "react";
6
6
  import { cn } from "@burdenoff/fe-libs/utils";
7
7
  import { jsx } from "react/jsx-runtime";
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { t as ExecutionsListPage } from "./ExecutionsListPage-BCUJoAIE.js";
3
- import { t as ExecutionDetailPage } from "./ExecutionDetailPage-BdcZmLT4.js";
2
+ import { t as ExecutionsListPage } from "./ExecutionsListPage-Dcc6wi-8.js";
3
+ import { t as ExecutionDetailPage } from "./ExecutionDetailPage-C0q5brcQ.js";
4
4
 
5
5
  export { ExecutionDetailPage, ExecutionsListPage };