@burdenoff/fluidgrids-fe-sdk 2026.1106.1 → 2026.1108.1

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 (61) hide show
  1. package/dist/{ExecutionDetailPage-OOHJQR2L.js → ExecutionDetailPage-STW6RPK6.js} +8 -8
  2. package/dist/{ExecutionsListPage-6HS5VQOV.js → ExecutionsListPage-753XDOTM.js} +7 -7
  3. package/dist/{MissingNodesInstallModal-OSAJLIBE.js → MissingNodesInstallModal-Q6OPULJU.js} +2 -1
  4. package/dist/{TemplateConfigurationModal-SILENYXX.js → TemplateConfigurationModal-PWCDDPKT.js} +2 -1
  5. package/dist/{TemplateDetailPanel-7MPY5MYT.js → TemplateDetailPanel-ZTYXKWRI.js} +2 -1
  6. package/dist/{WorkflowBuilder-PICIS7FI.js → WorkflowBuilder-HY3PZZVD.js} +15 -13
  7. package/dist/{WorkflowsList-SD5XQC4Q.js → WorkflowsList-YFDT7ZPX.js} +8 -8
  8. package/dist/{agentTools-UH4LU6LA.js → agentTools-3UQNOO7V.js} +5 -5
  9. package/dist/assistant.d.ts +1 -61
  10. package/dist/{chunk-OTOQFZFO.js → chunk-26GYGAC5.js} +17 -14
  11. package/dist/{chunk-WC526MLS.js → chunk-2CM26W2I.js} +1 -1
  12. package/dist/{chunk-GPABUQTD.js → chunk-36TEHKVN.js} +5 -5
  13. package/dist/{chunk-WBRW67HX.js → chunk-3QV3L3YY.js} +2 -2
  14. package/dist/{chunk-OLRIWGYM.js → chunk-47OW3OM5.js} +4 -4
  15. package/dist/{chunk-JRLBPR5U.js → chunk-4OZISYDF.js} +1 -1
  16. package/dist/{chunk-HSTP2RX3.js → chunk-5OVWMFPL.js} +4 -1
  17. package/dist/{chunk-CTKWMPQQ.js → chunk-63X5ORDO.js} +2 -0
  18. package/dist/{chunk-M72SMQOS.js → chunk-F522K3P5.js} +6 -6
  19. package/dist/{chunk-4XAXF5VP.js → chunk-HPYXHIRI.js} +4 -4
  20. package/dist/{chunk-UWCD7JUU.js → chunk-HRZMKJEC.js} +4 -4
  21. package/dist/{chunk-Y4UCHFGK.js → chunk-I23KAUR6.js} +1 -1
  22. package/dist/{chunk-43GSC5Y6.js → chunk-JRSCUUBT.js} +1 -1
  23. package/dist/{chunk-GBJWPSLJ.js → chunk-JXJ2DESW.js} +2 -2
  24. package/dist/{chunk-6VIG44VF.js → chunk-KE677WYY.js} +1 -1
  25. package/dist/{chunk-XWINH6CR.js → chunk-NMYENCP2.js} +1 -1
  26. package/dist/{chunk-UIS7KGHW.js → chunk-ODWKSYMZ.js} +4 -4
  27. package/dist/{chunk-5Z4F24QT.js → chunk-OHKSDHNC.js} +1 -1
  28. package/dist/{chunk-EIMTOK6E.js → chunk-PF7XQA2S.js} +1 -1
  29. package/dist/{chunk-XNARCHMT.js → chunk-QHRRYTOL.js} +1 -1
  30. package/dist/{chunk-BQXVT32O.js → chunk-QJAZXCFQ.js} +1 -23
  31. package/dist/chunk-TFCIZFDM.js +28 -0
  32. package/dist/{chunk-LLCVVRCE.js → chunk-TKHW2G7O.js} +7 -7
  33. package/dist/{chunk-5GG2FEKW.js → chunk-TYE252O5.js} +2 -2
  34. package/dist/{chunk-TGWDFLEX.js → chunk-UZJKX5FN.js} +5 -4
  35. package/dist/{chunk-UYTPURFW.js → chunk-WX5BNZVX.js} +2 -2
  36. package/dist/{chunk-ASYYYJG2.js → chunk-XAXZ4T6H.js} +1 -1
  37. package/dist/chunk-XRGAH6IQ.js +110 -0
  38. package/dist/{chunk-GBQC5WDH.js → chunk-YQOXXM5V.js} +5 -5
  39. package/dist/{chunk-KJT5TAOE.js → chunk-ZKRDO4IG.js} +1 -1
  40. package/dist/executions.js +9 -9
  41. package/dist/history.js +7 -7
  42. package/dist/index.d.ts +23 -25759
  43. package/dist/index.js +43 -39
  44. package/dist/{node-detail-view-P5NV5CMO.js → node-detail-view-GFC3UDYD.js} +8 -8
  45. package/dist/nodes.js +4 -1
  46. package/dist/observability.js +5 -5
  47. package/dist/pageControlsBridge-kfcowd-2.d.ts +37 -0
  48. package/dist/{quick-config-panel-ZNSBVF4G.js → quick-config-panel-6XUUXIHX.js} +6 -6
  49. package/dist/settings.d.ts +0 -8
  50. package/dist/settings.js +6 -6
  51. package/dist/templates.d.ts +0 -10
  52. package/dist/templates.js +14 -12
  53. package/dist/workflow-builder-D7eMRluc.d.ts +690 -0
  54. package/dist/workflow-builder.d.ts +1 -1
  55. package/dist/workflow-builder.js +16 -14
  56. package/dist/workflow-preview.d.ts +0 -95
  57. package/dist/workflow-preview.js +2 -2
  58. package/dist/workflows-list.js +8 -8
  59. package/package.json +1 -1
  60. package/dist/pageControlsBridge-D6y36qi5.d.ts +0 -87
  61. package/dist/workflow-builder-C-ekFbwR.d.ts +0 -1210
@@ -1,7 +1,7 @@
1
- export { ExecutionDetailPage } from './chunk-GPABUQTD.js';
2
- import './chunk-ASYYYJG2.js';
3
- import './chunk-UYTPURFW.js';
4
- import './chunk-WC526MLS.js';
1
+ export { ExecutionDetailPage } from './chunk-36TEHKVN.js';
2
+ import './chunk-XAXZ4T6H.js';
3
+ import './chunk-WX5BNZVX.js';
4
+ import './chunk-2CM26W2I.js';
5
5
  import './chunk-NZMUKAXG.js';
6
6
  import './chunk-NZAYYUQ4.js';
7
7
  import './chunk-EXJW7EKR.js';
@@ -12,18 +12,18 @@ import './chunk-JDLQ6QIB.js';
12
12
  import './chunk-KHS2DZHH.js';
13
13
  import './chunk-Y53CVZVV.js';
14
14
  import './chunk-FNZZ5JJL.js';
15
- import './chunk-EIMTOK6E.js';
15
+ import './chunk-PF7XQA2S.js';
16
16
  import './chunk-PJAWNFJV.js';
17
17
  import './chunk-H4ERTSMX.js';
18
- import './chunk-HSTP2RX3.js';
18
+ import './chunk-5OVWMFPL.js';
19
19
  import './chunk-5375NUIO.js';
20
- import './chunk-JL7CASN5.js';
21
20
  import './chunk-SDZEAIIE.js';
22
- import './chunk-TGWDFLEX.js';
21
+ import './chunk-UZJKX5FN.js';
23
22
  import './chunk-Y7FKJJMF.js';
24
23
  import './chunk-TYI2XOSI.js';
25
24
  import './chunk-G77IGC3Y.js';
26
25
  import './chunk-Z3ABLERJ.js';
26
+ import './chunk-JL7CASN5.js';
27
27
  import './chunk-UULVIT25.js';
28
28
  import './chunk-PDODDDHY.js';
29
29
  import './chunk-JKLZ6YZ3.js';
@@ -1,23 +1,23 @@
1
- export { ExecutionsListPage } from './chunk-UIS7KGHW.js';
2
- import './chunk-UYTPURFW.js';
3
- import './chunk-WC526MLS.js';
1
+ export { ExecutionsListPage } from './chunk-ODWKSYMZ.js';
2
+ import './chunk-WX5BNZVX.js';
3
+ import './chunk-2CM26W2I.js';
4
4
  import './chunk-WZ3EJVS6.js';
5
5
  import './chunk-5ERAJC2I.js';
6
6
  import './chunk-KHS2DZHH.js';
7
7
  import './chunk-FNZZ5JJL.js';
8
- import './chunk-EIMTOK6E.js';
8
+ import './chunk-PF7XQA2S.js';
9
9
  import './chunk-PJAWNFJV.js';
10
10
  import './chunk-H4ERTSMX.js';
11
11
  import './chunk-4VJ3MDOV.js';
12
- import './chunk-HSTP2RX3.js';
12
+ import './chunk-5OVWMFPL.js';
13
13
  import './chunk-5375NUIO.js';
14
- import './chunk-JL7CASN5.js';
15
14
  import './chunk-SDZEAIIE.js';
16
- import './chunk-TGWDFLEX.js';
15
+ import './chunk-UZJKX5FN.js';
17
16
  import './chunk-Y7FKJJMF.js';
18
17
  import './chunk-TYI2XOSI.js';
19
18
  import './chunk-G77IGC3Y.js';
20
19
  import './chunk-Z3ABLERJ.js';
20
+ import './chunk-JL7CASN5.js';
21
21
  import './chunk-UULVIT25.js';
22
22
  import './chunk-PDODDDHY.js';
23
23
  import './chunk-JKLZ6YZ3.js';
@@ -1,5 +1,6 @@
1
1
  import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter } from './chunk-YXMFRQYV.js';
2
- import { Badge, Button } from './chunk-BQXVT32O.js';
2
+ import { Badge } from './chunk-TFCIZFDM.js';
3
+ import { Button } from './chunk-QJAZXCFQ.js';
3
4
  import './chunk-JL7CASN5.js';
4
5
  import './chunk-UULVIT25.js';
5
6
  import { Puzzle, Download, CheckCircle2, AlertTriangle, ShoppingCart, ExternalLink, Loader2 } from 'lucide-react';
@@ -1,7 +1,8 @@
1
1
  import { Label } from './chunk-VTQVPNUQ.js';
2
2
  import { Input } from './chunk-IEVSFCFS.js';
3
3
  import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter } from './chunk-YXMFRQYV.js';
4
- import { Badge, Button } from './chunk-BQXVT32O.js';
4
+ import { Badge } from './chunk-TFCIZFDM.js';
5
+ import { Button } from './chunk-QJAZXCFQ.js';
5
6
  import './chunk-JL7CASN5.js';
6
7
  import { useTr } from './chunk-UULVIT25.js';
7
8
  import { useState, useEffect, useMemo } from 'react';
@@ -1,5 +1,6 @@
1
1
  import { templatePreview } from './chunk-B6CCE2RW.js';
2
- import { Button, Badge } from './chunk-BQXVT32O.js';
2
+ import { Badge } from './chunk-TFCIZFDM.js';
3
+ import { Button } from './chunk-QJAZXCFQ.js';
3
4
  import { SdkPermissionButton, FLUIDGRIDS_PERMISSIONS } from './chunk-5375NUIO.js';
4
5
  import './chunk-JL7CASN5.js';
5
6
  import { useTr } from './chunk-UULVIT25.js';
@@ -1,34 +1,36 @@
1
- export { WorkflowBuilder } from './chunk-LLCVVRCE.js';
2
- import './chunk-Y4UCHFGK.js';
1
+ export { WorkflowBuilder } from './chunk-TKHW2G7O.js';
2
+ import './chunk-I23KAUR6.js';
3
3
  import './chunk-PIKYQE7P.js';
4
- import './chunk-OTOQFZFO.js';
5
- import './chunk-XWINH6CR.js';
4
+ import './chunk-26GYGAC5.js';
5
+ import './chunk-NMYENCP2.js';
6
6
  import './chunk-GEMNVFPK.js';
7
7
  import './chunk-B6CCE2RW.js';
8
8
  import './chunk-IEVSFCFS.js';
9
9
  import './chunk-YXMFRQYV.js';
10
- import './chunk-BQXVT32O.js';
11
- import './chunk-43GSC5Y6.js';
12
- import './chunk-JRLBPR5U.js';
10
+ import './chunk-TFCIZFDM.js';
11
+ import './chunk-JRSCUUBT.js';
12
+ import './chunk-4OZISYDF.js';
13
13
  import './chunk-PASKZCII.js';
14
14
  import './chunk-JDLQ6QIB.js';
15
15
  import './chunk-KHS2DZHH.js';
16
16
  import './chunk-Y53CVZVV.js';
17
- import './chunk-5Z4F24QT.js';
18
- import './chunk-6VIG44VF.js';
19
- import './chunk-EIMTOK6E.js';
17
+ import './chunk-OHKSDHNC.js';
18
+ import './chunk-KE677WYY.js';
19
+ import './chunk-PF7XQA2S.js';
20
+ import './chunk-XRGAH6IQ.js';
21
+ import './chunk-QJAZXCFQ.js';
20
22
  import './chunk-GLYINMOR.js';
21
23
  import './chunk-H4ERTSMX.js';
22
24
  import './chunk-4VJ3MDOV.js';
23
- import './chunk-HSTP2RX3.js';
25
+ import './chunk-5OVWMFPL.js';
24
26
  import './chunk-5375NUIO.js';
25
- import './chunk-JL7CASN5.js';
26
27
  import './chunk-SDZEAIIE.js';
27
- import './chunk-TGWDFLEX.js';
28
+ import './chunk-UZJKX5FN.js';
28
29
  import './chunk-Y7FKJJMF.js';
29
30
  import './chunk-TYI2XOSI.js';
30
31
  import './chunk-G77IGC3Y.js';
31
32
  import './chunk-Z3ABLERJ.js';
33
+ import './chunk-JL7CASN5.js';
32
34
  import './chunk-UULVIT25.js';
33
35
  import './chunk-PDODDDHY.js';
34
36
  import './chunk-JKLZ6YZ3.js';
@@ -1,22 +1,22 @@
1
- export { WorkflowsList } from './chunk-M72SMQOS.js';
2
- import './chunk-Y4UCHFGK.js';
3
- import './chunk-WC526MLS.js';
1
+ export { WorkflowsList } from './chunk-F522K3P5.js';
2
+ import './chunk-I23KAUR6.js';
3
+ import './chunk-2CM26W2I.js';
4
4
  import './chunk-5ERAJC2I.js';
5
- import './chunk-JRLBPR5U.js';
5
+ import './chunk-4OZISYDF.js';
6
6
  import './chunk-FNZZ5JJL.js';
7
- import './chunk-EIMTOK6E.js';
7
+ import './chunk-PF7XQA2S.js';
8
8
  import './chunk-PJAWNFJV.js';
9
9
  import './chunk-H4ERTSMX.js';
10
10
  import './chunk-4VJ3MDOV.js';
11
- import './chunk-HSTP2RX3.js';
11
+ import './chunk-5OVWMFPL.js';
12
12
  import './chunk-5375NUIO.js';
13
- import './chunk-JL7CASN5.js';
14
13
  import './chunk-SDZEAIIE.js';
15
- import './chunk-TGWDFLEX.js';
14
+ import './chunk-UZJKX5FN.js';
16
15
  import './chunk-Y7FKJJMF.js';
17
16
  import './chunk-TYI2XOSI.js';
18
17
  import './chunk-G77IGC3Y.js';
19
18
  import './chunk-Z3ABLERJ.js';
19
+ import './chunk-JL7CASN5.js';
20
20
  import './chunk-UULVIT25.js';
21
21
  import './chunk-PDODDDHY.js';
22
22
  import './chunk-JKLZ6YZ3.js';
@@ -1,14 +1,14 @@
1
- import { nodeTitle, selectedOperationOf, paramsFromOperation, fixedParameterState } from './chunk-WBRW67HX.js';
2
- import { computeAttachPosition } from './chunk-XWINH6CR.js';
3
- import { NODE_CONFIGS, createConfiguredNode, isNodeConfigsInitialized, useSaveStatusStore, autosaveAllowedFor, isFlowComplete, isNodeTypeHiddenFromPalette } from './chunk-HSTP2RX3.js';
1
+ import { nodeTitle, selectedOperationOf, paramsFromOperation, fixedParameterState } from './chunk-3QV3L3YY.js';
2
+ import { computeAttachPosition } from './chunk-NMYENCP2.js';
3
+ import { NODE_CONFIGS, createConfiguredNode, isNodeConfigsInitialized, useSaveStatusStore, autosaveAllowedFor, isFlowComplete, isNodeTypeHiddenFromPalette } from './chunk-5OVWMFPL.js';
4
4
  import './chunk-5375NUIO.js';
5
- import './chunk-JL7CASN5.js';
6
5
  import './chunk-SDZEAIIE.js';
7
- import { resolveOutputHandles, resolveInputHandles, useFlowStore } from './chunk-TGWDFLEX.js';
6
+ import { resolveOutputHandles, resolveInputHandles, useFlowStore } from './chunk-UZJKX5FN.js';
8
7
  import './chunk-Y7FKJJMF.js';
9
8
  import './chunk-TYI2XOSI.js';
10
9
  import './chunk-G77IGC3Y.js';
11
10
  import './chunk-Z3ABLERJ.js';
11
+ import './chunk-JL7CASN5.js';
12
12
  import './chunk-UULVIT25.js';
13
13
  import './chunk-PDODDDHY.js';
14
14
  import './chunk-JKLZ6YZ3.js';
@@ -1,63 +1,27 @@
1
- export { F as FgEnumFilterSpec, a as FgFilterOption, b as FgPageControlsSpec, c as FgRegisterPageControls, d as FgTabsSpec, e as FluidGridsAssistantBridge, f as FluidGridsAssistantBridgeProps, u as useFluidGridsPageControls } from './pageControlsBridge-D6y36qi5.js';
1
+ export { F as FgEnumFilterSpec, a as FgFilterOption, b as FgPageControlsSpec, c as FgRegisterPageControls, d as FgTabsSpec, e as FluidGridsAssistantBridge, f as FluidGridsAssistantBridgeProps, u as useFluidGridsPageControls } from './pageControlsBridge-kfcowd-2.js';
2
2
  import { FC, ComponentType, ReactNode } from 'react';
3
3
 
4
- /**
5
- * AI-credit balance bridge (BOFF-3732).
6
- *
7
- * AI Studio surfaces (the builder's "Generate with AI" panel and the run
8
- * detail's AI assistant) show the workspace's remaining FluidGrids AI credits
9
- * before an action, and tell the host when an action may have spent some.
10
- *
11
- * Like the page-controls bridge, the SDK does NOT import
12
- * `@burdenoff/fe-libs/shared/assistant`: many consumers pin an older fe-libs,
13
- * and embedders have no shell to read a balance from. Instead:
14
- * - the host mounts {@link FluidGridsAiCreditsBridge} with a `Balance`
15
- * component (the fluidgrids-app passes the shared fe-libs `AiCreditBalance`
16
- * bound to `fluidgrids`), and the SDK renders it where an AI action starts;
17
- * - after an AI action settles the SDK dispatches the shared
18
- * `fluidgrids:ai-credits-updated` window event (the same name fe-libs'
19
- * `notifyAiCreditsUpdated("fluidgrids")` uses), so every balance on screen,
20
- * the assistant panel's included, reads again.
21
- *
22
- * No provider mounted: the slot renders nothing and the SDK works unchanged.
23
- */
24
-
25
- /** Props the SDK passes to the host's balance component. */
26
4
  interface FgAiCreditBalanceProps {
27
- /** Layout classes from the mount point. */
28
5
  className?: string;
29
- /** Distinguishes the mounts in tests and in Playwright checks. */
30
6
  testId?: string;
31
7
  }
32
- /** The product key FluidGrids AI credits are charged under. */
33
8
  declare const FLUIDGRIDS_AI_PRODUCT_KEY = "fluidgrids";
34
- /** Window event a balance listens to; mirrors fe-libs `aiCreditsUpdatedEventName`. */
35
9
  declare const FLUIDGRIDS_AI_CREDITS_UPDATED_EVENT = "fluidgrids:ai-credits-updated";
36
10
  interface FluidGridsAiCreditsBridgeProps {
37
- /** Renders the remaining balance; renders nothing when it is unknown. */
38
11
  Balance: ComponentType<FgAiCreditBalanceProps>;
39
12
  children: ReactNode;
40
13
  }
41
14
  declare const FluidGridsAiCreditsBridge: FC<FluidGridsAiCreditsBridgeProps>;
42
- /** Where an AI action starts: the host's balance, or nothing without a bridge. */
43
15
  declare const AiCreditBalanceSlot: FC<FgAiCreditBalanceProps>;
44
- /**
45
- * Tell every balance on screen that an AI action settled and may have spent
46
- * credits. Safe outside a browser and without a bridge (nothing listens).
47
- */
48
16
  declare function notifyFluidGridsAiCreditsUpdated(): void;
49
17
 
50
- /** Mirror of fe-libs' `AssistantPreviewRun`. */
51
18
  interface FgAssistantRun {
52
19
  readonly runId: string;
53
20
  readonly conversationId: string;
54
21
  readonly messageId: string;
55
- /** The workspace the run started in. */
56
22
  readonly workspaceId: string | null;
57
- /** The actor the run started as. */
58
23
  readonly actorId: string | null;
59
24
  }
60
- /** Mirror of fe-libs' `action-result` preview event: one approved write's root field. */
61
25
  interface FgAssistantActionResult {
62
26
  kind: "action-result";
63
27
  run: FgAssistantRun;
@@ -65,45 +29,21 @@ interface FgAssistantActionResult {
65
29
  id: string;
66
30
  operation: string;
67
31
  responseKey: string;
68
- /** Approved inputs, with sensitive arguments omitted. */
69
32
  arguments: Readonly<Record<string, unknown>>;
70
- /** The redacted GraphQL response. */
71
33
  result: unknown;
72
34
  };
73
35
  }
74
- /**
75
- * Mirror of fe-libs' `AssistantPreviewEvent`. Only `action-result` is read;
76
- * the other kinds are listed loosely so every fe-libs event is accepted.
77
- */
78
36
  type FgAssistantPreviewEvent = FgAssistantActionResult | {
79
37
  kind: "start" | "snapshot" | "end";
80
38
  run: FgAssistantRun;
81
39
  };
82
- /** Mirror of fe-libs' `AssistantPreviewController`, headless. */
83
40
  interface FgAssistantPreviewController {
84
41
  onEvent: (event: FgAssistantPreviewEvent) => void;
85
42
  }
86
43
  interface FluidGridsAssistantLiveCanvasOptions {
87
- /**
88
- * The signed-in actor now. When given, a write from a run started by another
89
- * actor (a late result after an account switch) is ignored. Read on every
90
- * event, so it may read a token lazily.
91
- */
92
44
  getActorId?: () => string | null;
93
45
  }
94
- /**
95
- * Build the headless controller outside React (one per panel mount).
96
- * `options` is read on every event.
97
- */
98
46
  declare function createFluidGridsAssistantLiveCanvas(options?: FluidGridsAssistantLiveCanvasOptions): FgAssistantPreviewController;
99
- /**
100
- * The headless preview controller for the shared assistant panel, STABLE for
101
- * the life of the calling component (fe-libs requires a stable controller).
102
- * The latest `getActorId` is used on every event without changing identity.
103
- *
104
- * const liveCanvas = useFluidGridsAssistantLiveCanvas({ getActorId });
105
- * const panelProps = useMemo(() => ({ ..., preview: liveCanvas }), [liveCanvas, ...]);
106
- */
107
47
  declare function useFluidGridsAssistantLiveCanvas(options?: FluidGridsAssistantLiveCanvasOptions): FgAssistantPreviewController;
108
48
 
109
49
  export { AiCreditBalanceSlot, FLUIDGRIDS_AI_CREDITS_UPDATED_EVENT, FLUIDGRIDS_AI_PRODUCT_KEY, type FgAiCreditBalanceProps, type FgAssistantActionResult, type FgAssistantPreviewController, type FgAssistantPreviewEvent, type FgAssistantRun, FluidGridsAiCreditsBridge, type FluidGridsAiCreditsBridgeProps, type FluidGridsAssistantLiveCanvasOptions, createFluidGridsAssistantLiveCanvas, notifyFluidGridsAiCreditsUpdated, useFluidGridsAssistantLiveCanvas };
@@ -1,26 +1,28 @@
1
- import { computeAttachPosition, firstInputHandleId } from './chunk-XWINH6CR.js';
1
+ import { computeAttachPosition, firstInputHandleId } from './chunk-NMYENCP2.js';
2
2
  import { deepClone, applyTemplateInputs } from './chunk-GEMNVFPK.js';
3
3
  import { templatePreview } from './chunk-B6CCE2RW.js';
4
4
  import { Input } from './chunk-IEVSFCFS.js';
5
5
  import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter as DialogFooter$1 } from './chunk-YXMFRQYV.js';
6
- import { Badge as Badge$1, Button } from './chunk-BQXVT32O.js';
7
- import { LogsPanel } from './chunk-43GSC5Y6.js';
8
- import { QuotaExhaustedDialog, WorkflowShareDialog, useWorkflowCodeExport, orderedExportFiles, fileBaseName, downloadWorkflowCodeExport, isLosslessReport, sortFidelityItems, isLossyFidelityItem, lineOfNode } from './chunk-JRLBPR5U.js';
6
+ import { Badge as Badge$1 } from './chunk-TFCIZFDM.js';
7
+ import { LogsPanel } from './chunk-JRSCUUBT.js';
8
+ import { QuotaExhaustedDialog, WorkflowShareDialog, useWorkflowCodeExport, orderedExportFiles, fileBaseName, downloadWorkflowCodeExport, isLosslessReport, sortFidelityItems, isLossyFidelityItem, lineOfNode } from './chunk-4OZISYDF.js';
9
9
  import { emptyTestCaseDraft, EntityTagPicker, useWorkflowProposal, WorkflowProposalCard, useWorkflowTests, pinnedOutputsFromCanvas, enabledCaseIds, isTestRunOpen, MAX_TEST_CASES, draftFromTestCase, testRunSummaryText, testStatusLabel, TEST_STATUS_TONE_CLASS, testStatusTone, MAX_CASE_NAME, nextSortOrder, draftToInput } from './chunk-PASKZCII.js';
10
10
  import { buildNodeDisplayMap } from './chunk-KHS2DZHH.js';
11
11
  import { AiCreditBalanceSlot } from './chunk-Y53CVZVV.js';
12
- import { countLifecycle, VersionLifecycleBar, VersionDiffDialog } from './chunk-5Z4F24QT.js';
13
- import { useRestoreWorkflowVersion, useWorkflowVersions, useActivateWorkflow, useDeleteWorkflow, useDeactivateWorkflow } from './chunk-EIMTOK6E.js';
12
+ import { countLifecycle, VersionLifecycleBar, VersionDiffDialog } from './chunk-OHKSDHNC.js';
13
+ import { useRestoreWorkflowVersion, useWorkflowVersions, useActivateWorkflow, useDeleteWorkflow, useDeactivateWorkflow } from './chunk-PF7XQA2S.js';
14
+ import { PublishCustomNodeAction } from './chunk-XRGAH6IQ.js';
15
+ import { Button } from './chunk-QJAZXCFQ.js';
14
16
  import { useRequestedProposal } from './chunk-GLYINMOR.js';
15
17
  import { FluidGridsDocsLink } from './chunk-4VJ3MDOV.js';
16
- import { leaseCallQueue, RUNS_QUOTA_NAME, BILLING_PLANS_PATH, emitUpgradeClicked, FluidGridsContext, emitWorkflowCreated, emitTemplateUsed, ensureNodeConfigsLoaded, NODE_CONFIGS, useEditLeaseStore, useEditLeaseLocked, registerWorkflowNodeTypes, emitNodeInstalled, useNodeExecution, usePaletteGates, onNodeTypesUpdate, NODE_TYPES, getNodeMetadata, refetchStoreNodes, AVAILABLE_NODES, EDIT_SESSION_ID, useInsertNode, useSaveStatusStore, useManualSave, useDurableFunctionNodesEnabled, bannerOf, editStateFor, useSaveWorkflow, filterPaletteNodes, useFluidGridsAnalytics, useGuardedNavigate, sessionBeforeReload, forgetSessionForReload, releasesOnClose, touchesSavedFields, isLocked, watchLeavingLosesChanges, workflowFingerprint, savedEverythingBeforeLeaving, buildStickyNode, NODES_METADATA, shouldReleaseForIdle, tickAction, rememberSessionForReload, leavingLosesChanges, buildOperationSeed, useDurableParityEnabled, useConnections, ConnectionFormDialog, useWorkflowTestsEnabled, useFluidGridsFlag, FLUIDGRIDS_FLAGS, useFlowValidator, saveIndicatorOf, departingSave, inAppLeaveTarget, isNodeConfigsInitialized, phaseAfterAcquire, rememberOwnStatusChange, useRunGuard, getNodeDetail, NODES, NodePropertyPanel, loadDefinitionJson, canAutosave, isNodeTypeHiddenFromPalette, ConnectionSelector, AUTOSAVE_RETRY_DELAYS_MS, AUTOSAVE_DEBOUNCE_MS, editingLeaseLocked, autosaveAllowedFor, isFlowComplete, rememberRevision, phaseAfterTakeOver } from './chunk-HSTP2RX3.js';
18
+ import { leaseCallQueue, RUNS_QUOTA_NAME, BILLING_PLANS_PATH, emitUpgradeClicked, FluidGridsContext, emitWorkflowCreated, emitTemplateUsed, ensureNodeConfigsLoaded, NODE_CONFIGS, useEditLeaseStore, useEditLeaseLocked, registerWorkflowNodeTypes, emitNodeInstalled, useNodeExecution, usePaletteGates, onNodeTypesUpdate, NODE_TYPES, getNodeMetadata, refetchStoreNodes, AVAILABLE_NODES, EDIT_SESSION_ID, useInsertNode, useSaveStatusStore, useManualSave, useDurableFunctionNodesEnabled, bannerOf, editStateFor, useSaveWorkflow, filterPaletteNodes, useFluidGridsAnalytics, useGuardedNavigate, sessionBeforeReload, forgetSessionForReload, releasesOnClose, touchesSavedFields, isLocked, watchLeavingLosesChanges, workflowFingerprint, savedEverythingBeforeLeaving, buildStickyNode, NODES_METADATA, shouldReleaseForIdle, tickAction, rememberSessionForReload, leavingLosesChanges, buildOperationSeed, useDurableParityEnabled, useConnections, ConnectionFormDialog, useWorkflowTestsEnabled, useFluidGridsFlag, FLUIDGRIDS_FLAGS, useFlowValidator, saveIndicatorOf, departingSave, inAppLeaveTarget, isNodeConfigsInitialized, phaseAfterAcquire, rememberOwnStatusChange, useRunGuard, getNodeDetail, NODES, NodePropertyPanel, loadDefinitionJson, canAutosave, isNodeTypeHiddenFromPalette, ConnectionSelector, AUTOSAVE_RETRY_DELAYS_MS, AUTOSAVE_DEBOUNCE_MS, editingLeaseLocked, autosaveAllowedFor, isFlowComplete, rememberRevision, phaseAfterTakeOver } from './chunk-5OVWMFPL.js';
17
19
  import { SdkPermissionButton, FLUIDGRIDS_PERMISSIONS, useFluidGridsPermission, SdkPermissionGate } from './chunk-5375NUIO.js';
18
- import { cn } from './chunk-JL7CASN5.js';
19
20
  import { BuilderReadOnlyProvider, useBuilderReadOnly } from './chunk-SDZEAIIE.js';
20
- import { useFlowStore, useIsValidConnection, NODE_TYPE_DRAG_DATA_FORMAT, NODE_OPERATION_DRAG_DATA_FORMAT, CODE_WORKFLOW_NODE_TYPE, STICKY_NOTE_TYPE, NodeTypeIcon, isImageIcon, synchronizeOperationUpdate, isTriggerOperation, canRenderOperationPanel, resolveOperationName } from './chunk-TGWDFLEX.js';
21
+ import { useFlowStore, useIsValidConnection, NODE_TYPE_DRAG_DATA_FORMAT, NODE_OPERATION_DRAG_DATA_FORMAT, CODE_WORKFLOW_NODE_TYPE, STICKY_NOTE_TYPE, NodeTypeIcon, isImageIcon, synchronizeOperationUpdate, isTriggerOperation, canRenderOperationPanel, resolveOperationName } from './chunk-UZJKX5FN.js';
21
22
  import { getGlobalStoreClient } from './chunk-TYI2XOSI.js';
22
23
  import { GetMyNodeInstallationsDocument, BrowseWorkflowTemplatesDocument, InstallWorkflowNodeDocument, SubmitWorkflowTemplateDocument, MyWorkflowTemplateSubmissionsDocument, WithdrawWorkflowTemplateSubmissionDocument, InstallPurchasedNodeDocument, BrowseWorkflowNodesDocument, UninstallWorkflowNodeDocument, CreateStoreOrderDocument, GetNodeInstallableVersionsDocument, OrganizationPrivateNodesDocument, InstallOrganizationPrivateNodeDocument, UninstallOrganizationPrivateNodeDocument } from './chunk-G77IGC3Y.js';
23
24
  import { WorkspaceRunsQuotaDocument, WorkflowGenerationTemplatesDocument, ReleaseWorkflowEditLeaseDocument, NodeSchemaIntrospectionDocument, AcquireWorkflowEditLeaseDocument, WorkflowEnvironmentsDocument, WorkflowPromotionRequestsDocument, DeployWorkflowVersionToDevDocument, RequestWorkflowPromotionDocument, ApproveWorkflowPromotionDocument, RejectWorkflowPromotionDocument, CancelWorkflowPromotionDocument, UpdateWorkflowEnvironmentPolicyDocument, WorkflowGitRepositoryDocument, WorkflowGitPushesDocument, WorkflowGitCommitsDocument, LinkWorkflowGitRepositoryDocument, UnlinkWorkflowGitRepositoryDocument, PushWorkflowToGitDocument, WorkflowGitDiffDocument, RestoreWorkflowFromGitDocument, WorkflowAuthoringDocument, WorkflowEditLeaseDocument, WorkflowVersioningDocument, WorkflowVersionDrainageDocument, ActivateWorkflowVersionCheckedDocument, WorkflowDefinitionDocument, NodeUsageStatusDocument, RemoveNodeFromWorkflowsDocument, SetWorkflowRolloutDocument, DeleteWorkflowRolloutDocument, TakeOverWorkflowEditLeaseDocument } from './chunk-Z3ABLERJ.js';
25
+ import { cn } from './chunk-JL7CASN5.js';
24
26
  import { useTr } from './chunk-UULVIT25.js';
25
27
  import { waitForFluidGridsClient, getFluidGridsClient } from './chunk-PDODDDHY.js';
26
28
  import { throwIfResultError, describeOperationError, emitFluidGridsEvent } from './chunk-JKLZ6YZ3.js';
@@ -4006,6 +4008,7 @@ function StoreCategoryList({
4006
4008
  /* Main category list */
4007
4009
  /* @__PURE__ */ jsxs("div", { className: "flex-1 overflow-y-auto px-2 pb-2", children: [
4008
4010
  /* @__PURE__ */ jsx(OrganizationPrivateNodesSection, {}),
4011
+ /* @__PURE__ */ jsx(PublishCustomNodeAction, { appearance: "compact", className: "mb-1" }),
4009
4012
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-0.5 pt-1", children: [
4010
4013
  STORE_CATEGORIES.map((cat) => /* @__PURE__ */ jsxs(
4011
4014
  "button",
@@ -5355,7 +5358,7 @@ function TemplatesGrid({
5355
5358
  ] });
5356
5359
  }
5357
5360
  var LazyTemplateDetailPanel = lazy(
5358
- () => import('./TemplateDetailPanel-7MPY5MYT.js').then((m) => ({
5361
+ () => import('./TemplateDetailPanel-ZTYXKWRI.js').then((m) => ({
5359
5362
  default: m.TemplateDetailPanel
5360
5363
  }))
5361
5364
  );
@@ -5496,7 +5499,7 @@ function TemplatesModal({
5496
5499
  ) });
5497
5500
  }
5498
5501
  var LazyTemplateConfigurationModal = lazy(
5499
- () => import('./TemplateConfigurationModal-SILENYXX.js').then((m) => ({
5502
+ () => import('./TemplateConfigurationModal-PWCDDPKT.js').then((m) => ({
5500
5503
  default: m.TemplateConfigurationModal
5501
5504
  }))
5502
5505
  );
@@ -21241,12 +21244,12 @@ function EditLeaseBanner() {
21241
21244
  );
21242
21245
  }
21243
21246
  var LazyNodeDetailView = lazy(
21244
- () => import('./node-detail-view-P5NV5CMO.js').then((m) => ({
21247
+ () => import('./node-detail-view-GFC3UDYD.js').then((m) => ({
21245
21248
  default: m.NodeDetailView
21246
21249
  }))
21247
21250
  );
21248
21251
  var LazyQuickConfigPanel = lazy(
21249
- () => import('./quick-config-panel-ZNSBVF4G.js').then((m) => ({
21252
+ () => import('./quick-config-panel-6XUUXIHX.js').then((m) => ({
21250
21253
  default: m.QuickConfigPanel
21251
21254
  }))
21252
21255
  );
@@ -21308,7 +21311,7 @@ var FlowBuilder = ({ readOnly = false }) => {
21308
21311
  );
21309
21312
  useEffect(() => {
21310
21313
  let cancelled = false;
21311
- void import('./agentTools-UH4LU6LA.js').then(({ createBuilderAgentTools }) => {
21314
+ void import('./agentTools-3UQNOO7V.js').then(({ createBuilderAgentTools }) => {
21312
21315
  if (cancelled) return;
21313
21316
  setAgentTools(
21314
21317
  createBuilderAgentTools({
@@ -1,5 +1,5 @@
1
1
  import { REPLAY_WORKFLOW_RUN, RETRY_WORKFLOW_RUNS } from './chunk-5ERAJC2I.js';
2
- import { useFluidGridsAnalytics, emitRunStarted, openRunQuotaUpgradePrompt } from './chunk-HSTP2RX3.js';
2
+ import { useFluidGridsAnalytics, emitRunStarted, openRunQuotaUpgradePrompt } from './chunk-5OVWMFPL.js';
3
3
  import { ExecutionsListDocument, ExecutionDetailDocument, ExecutionStatsDocument, PauseExecutionDocument, ResumeExecutionDocument, CancelExecutionDocument, RetryNodeDocument, TriggerWorkflowDocument, TerminateExecutionDocument } from './chunk-Z3ABLERJ.js';
4
4
  import { useTr } from './chunk-UULVIT25.js';
5
5
  import { getFluidGridsClient } from './chunk-PDODDDHY.js';
@@ -1,14 +1,14 @@
1
- import { useDurableRunFields, useRunHistory, useDeterminismStatus, useRunStackTrace, RunHistoryView, SignalRunDialog, terminateDurableRun } from './chunk-ASYYYJG2.js';
2
- import { useDurableParityRunFields, hasAgentNodeState, agentNodeTraces, orderNodesByExecution, useRunMetadata, useRunPending, ExecutionStatusBadge, NodeTimeline, RunLogViewer, NodeStatusBadge, setRunVersioningOverride } from './chunk-UYTPURFW.js';
3
- import { useExecution, useExecutionActions, useAutoRefresh, runChainLinks, shortRunId, callbackTone, parseMetadataDefinition, overrideRequestOf } from './chunk-WC526MLS.js';
1
+ import { useDurableRunFields, useRunHistory, useDeterminismStatus, useRunStackTrace, RunHistoryView, SignalRunDialog, terminateDurableRun } from './chunk-XAXZ4T6H.js';
2
+ import { useDurableParityRunFields, hasAgentNodeState, agentNodeTraces, orderNodesByExecution, useRunMetadata, useRunPending, ExecutionStatusBadge, NodeTimeline, RunLogViewer, NodeStatusBadge, setRunVersioningOverride } from './chunk-WX5BNZVX.js';
3
+ import { useExecution, useExecutionActions, useAutoRefresh, runChainLinks, shortRunId, callbackTone, parseMetadataDefinition, overrideRequestOf } from './chunk-2CM26W2I.js';
4
4
  import { fetchRunFailureClusters, OPEN_STATUSES, dismissRunFailureCluster, BUCKET_LABELS } from './chunk-NZMUKAXG.js';
5
5
  import { aiCost, formatTokens, modelLabel } from './chunk-NZAYYUQ4.js';
6
6
  import { useRunPolicyDecisions, RunPolicyDecisions } from './chunk-EXJW7EKR.js';
7
7
  import { EntityTagPicker, canSaveRunAsTestCase, useWorkflowProposal, WorkflowProposalCard, MAX_CASE_NAME, saveRunAsTestCase } from './chunk-PASKZCII.js';
8
8
  import { buildNodeDisplayMap, formatRunVersion, nodeDisplayTitle } from './chunk-KHS2DZHH.js';
9
9
  import { AiCreditBalanceSlot } from './chunk-Y53CVZVV.js';
10
- import { useWorkflowVersions } from './chunk-EIMTOK6E.js';
11
- import { useDurableFunctionNodesEnabled, useDurableParityEnabled, runSignalTargets, canSignalRun, formatElapsedMs, runDurationMs, useWorkflowTestsEnabled } from './chunk-HSTP2RX3.js';
10
+ import { useWorkflowVersions } from './chunk-PF7XQA2S.js';
11
+ import { useDurableFunctionNodesEnabled, useDurableParityEnabled, runSignalTargets, canSignalRun, formatElapsedMs, runDurationMs, useWorkflowTestsEnabled } from './chunk-5OVWMFPL.js';
12
12
  import { useFluidGridsPermission, FLUIDGRIDS_PERMISSIONS, SdkPermissionButton } from './chunk-5375NUIO.js';
13
13
  import { RunLogsDocument, RunLogAppendedDocument, ExplainRunDocument, RunAiUsageDocument } from './chunk-Z3ABLERJ.js';
14
14
  import { useTr } from './chunk-UULVIT25.js';
@@ -1,6 +1,6 @@
1
- import { structuredParameterType, parseParameterValue, liveInternalOperations, resolveNodeOperation, readDisplayOptions, getNodeDetail, useNodeRegistryRevision, fieldsFromIO, pathToExpression, NODE_CONFIGS, resolveUiSpec, fieldsFromValue, declaredOutputFields, subscribeWorkflowSaved } from './chunk-HSTP2RX3.js';
1
+ import { structuredParameterType, parseParameterValue, liveInternalOperations, resolveNodeOperation, readDisplayOptions, getNodeDetail, useNodeRegistryRevision, fieldsFromIO, pathToExpression, NODE_CONFIGS, resolveUiSpec, fieldsFromValue, declaredOutputFields, subscribeWorkflowSaved } from './chunk-5OVWMFPL.js';
2
2
  import { useBuilderReadOnly } from './chunk-SDZEAIIE.js';
3
- import { useFlowStore } from './chunk-TGWDFLEX.js';
3
+ import { useFlowStore } from './chunk-UZJKX5FN.js';
4
4
  import { EventRegistrationsDocument } from './chunk-Z3ABLERJ.js';
5
5
  import { useTr } from './chunk-UULVIT25.js';
6
6
  import { getFluidGridsClientSafe } from './chunk-PDODDDHY.js';
@@ -1,12 +1,12 @@
1
- import { asRecord, ConditionTreeBuilder, SwitchRulesEditor, casesFromRules, isStringOptionList, optionText, coerceNumber, paramsFromOperation, resolveLoadOptionsSpec, optionListValues, parseMappingValue, optionListText } from './chunk-WBRW67HX.js';
1
+ import { asRecord, ConditionTreeBuilder, SwitchRulesEditor, casesFromRules, isStringOptionList, optionText, coerceNumber, paramsFromOperation, resolveLoadOptionsSpec, optionListValues, parseMappingValue, optionListText } from './chunk-3QV3L3YY.js';
2
2
  import { CodeEditorField, normalizeCodeLanguage } from './chunk-KZCNJAMK.js';
3
3
  import { Popover, PopoverTrigger, PopoverContent } from './chunk-GTEBQQ7J.js';
4
- import { AgentDefinitionSelectField } from './chunk-XNARCHMT.js';
4
+ import { AgentDefinitionSelectField } from './chunk-QHRRYTOL.js';
5
5
  import { isAgentNodeType } from './chunk-WZ3EJVS6.js';
6
6
  import { readAssertRulesSetting, rowsFromRules, normaliseAssertRules, ruleFromRow, describeAssertRuleProblem, operatorSpec, ASSERT_OPERATORS, emptyAssertRuleRow } from './chunk-JDLQ6QIB.js';
7
- import { isParamVisible, ConnectionSelector, structuredParameterType, useRunGuard, FluidGridsContext, ExpressionEditor, formatParameterValue, parseParameterValue, useFluidGridsAnalytics, openRunQuotaUpgradePrompt } from './chunk-HSTP2RX3.js';
7
+ import { isParamVisible, ConnectionSelector, structuredParameterType, useRunGuard, FluidGridsContext, ExpressionEditor, formatParameterValue, parseParameterValue, useFluidGridsAnalytics, openRunQuotaUpgradePrompt } from './chunk-5OVWMFPL.js';
8
8
  import { useBuilderReadOnly } from './chunk-SDZEAIIE.js';
9
- import { useFlowStore } from './chunk-TGWDFLEX.js';
9
+ import { useFlowStore } from './chunk-UZJKX5FN.js';
10
10
  import { useRunFromNodeEligibilityQuery, PreviewScheduleDocument, WebhookTestListenerDocument, StopWebhookTestListenerDocument, ListenForWebhookTestEventDocument } from './chunk-Z3ABLERJ.js';
11
11
  import { useTr } from './chunk-UULVIT25.js';
12
12
  import { getFluidGridsClientSafe, getFluidGridsClient } from './chunk-PDODDDHY.js';
@@ -1,4 +1,4 @@
1
- import { useFluidGridsAnalytics, emitWorkflowLimitHit, emitUpgradeClicked, WORKFLOWS_QUOTA_NAME } from './chunk-HSTP2RX3.js';
1
+ import { useFluidGridsAnalytics, emitWorkflowLimitHit, emitUpgradeClicked, WORKFLOWS_QUOTA_NAME } from './chunk-5OVWMFPL.js';
2
2
  import { ExportWorkflowCodeDocument, ShareWorkflowDocument, WorkflowSharingDocument } from './chunk-Z3ABLERJ.js';
3
3
  import { useTr } from './chunk-UULVIT25.js';
4
4
  import { getFluidGridsClient } from './chunk-PDODDDHY.js';
@@ -1,6 +1,6 @@
1
1
  import { SdkPermissionGate, FLUIDGRIDS_PERMISSIONS } from './chunk-5375NUIO.js';
2
2
  import { useBuilderReadOnly } from './chunk-SDZEAIIE.js';
3
- import { STICKY_NOTE_TYPE, useFlowStore, resolveOperationName, synchronizeOperationUpdate, isNodeTrigger, resolveOutputHandles, resolveInputHandles, outputHandlesSpacerHeight, WAIT_FOR_SIGNAL_NODE_TYPE, CODE_WORKFLOW_NODE_TYPE, readSignalName, LogicNodeCard, NodeCard, NodeCardHeader, NodeCardBody, InputHandles, OutputHandles, NodeTypeIcon, nodeAccent, readCodeWorkflowState, partitionStickyNotes, interfaceFields, interfaceHandlers } from './chunk-TGWDFLEX.js';
3
+ import { STICKY_NOTE_TYPE, useFlowStore, resolveOperationName, synchronizeOperationUpdate, isNodeTrigger, resolveOutputHandles, resolveInputHandles, outputHandlesSpacerHeight, WAIT_FOR_SIGNAL_NODE_TYPE, CODE_WORKFLOW_NODE_TYPE, readSignalName, LogicNodeCard, NodeCard, NodeCardHeader, NodeCardBody, InputHandles, OutputHandles, NodeTypeIcon, nodeAccent, readCodeWorkflowState, partitionStickyNotes, interfaceFields, interfaceHandlers } from './chunk-UZJKX5FN.js';
4
4
  import { getGlobalStoreClient, createGlobalStoreClient, setGlobalStoreClient, resetGlobalStoreClient } from './chunk-TYI2XOSI.js';
5
5
  import { GetMyNodeInstallationsDocument } from './chunk-G77IGC3Y.js';
6
6
  import { fetchAllNodeEndpointConfigs, NodeManifestDocument, UpdateWorkflowDefinitionDocument, CreateWorkflowDefinitionDocument, CreateWorkflowVersionDocument, ExecuteStepDocument, TriggerWorkflowDocument, RunFromNodeDocument, ExecutionDetailDocument, WorkflowDefinitionDocument, WorkflowRunDocument } from './chunk-Z3ABLERJ.js';
@@ -4437,6 +4437,7 @@ function FluidGridsProvider({
4437
4437
  productId,
4438
4438
  userId,
4439
4439
  trustedOrigins,
4440
+ devportalBasePath,
4440
4441
  tenantId,
4441
4442
  organizationId,
4442
4443
  t,
@@ -4578,6 +4579,7 @@ function FluidGridsProvider({
4578
4579
  workspaceId,
4579
4580
  productId: resolvedProductId,
4580
4581
  trustedOrigins,
4582
+ devportalBasePath,
4581
4583
  tenantId,
4582
4584
  organizationId
4583
4585
  };
@@ -4607,6 +4609,7 @@ function FluidGridsProvider({
4607
4609
  workspaceId,
4608
4610
  resolvedProductId,
4609
4611
  trustedOrigins,
4612
+ devportalBasePath,
4610
4613
  tenantId,
4611
4614
  organizationId,
4612
4615
  theme,
@@ -1,3 +1,4 @@
1
+ import { PublishCustomNodeAction } from './chunk-XRGAH6IQ.js';
1
2
  import { NodeEndpointConfigsDocument, NodeEndpointConfigDocument, NodeManifestDocument, fetchAllNodeEndpointConfigs } from './chunk-Z3ABLERJ.js';
2
3
  import { useTr } from './chunk-UULVIT25.js';
3
4
  import { getFluidGridsClient } from './chunk-PDODDDHY.js';
@@ -401,6 +402,7 @@ function NodesPage() {
401
402
  ) })
402
403
  ] }),
403
404
  /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-3", children: [
405
+ /* @__PURE__ */ jsx(PublishCustomNodeAction, {}),
404
406
  /* @__PURE__ */ jsxs(Button, { variant: "outline", onClick: () => refetch(), children: [
405
407
  /* @__PURE__ */ jsx(Icon, { icon: "mdi:refresh", className: "mr-2", width: 16 }),
406
408
  tr("fluidgrids.nodes.nodesPage.refreshButton", "Refresh")
@@ -1,13 +1,13 @@
1
- import { CreateWorkflowRefusalDialog, firstWorkflowProgress, GUIDED_TOUR_STATE, builderPathFor } from './chunk-Y4UCHFGK.js';
2
- import { useExecutions } from './chunk-WC526MLS.js';
3
- import { useExportWorkflowAs, WorkflowShareDialog, downloadWorkflowExport, importAcceptAttribute, canEditWorkflow, canShareWorkflow, QuotaExhaustedDialog, importFileKind, parseWorkflowImport, CODE_EXPORT_FORMATS, ImportSourceError, assertImportByteSize, MAX_IMPORT_ARCHIVE_BYTES, readProjectArchive, checkTypeScriptImport, MAX_IMPORT_SOURCE_BYTES, typeScriptModuleFile, typeScriptImportSource, workflowNameFromFile, primaryImportModule } from './chunk-JRLBPR5U.js';
1
+ import { CreateWorkflowRefusalDialog, firstWorkflowProgress, GUIDED_TOUR_STATE, builderPathFor } from './chunk-I23KAUR6.js';
2
+ import { useExecutions } from './chunk-2CM26W2I.js';
3
+ import { useExportWorkflowAs, WorkflowShareDialog, downloadWorkflowExport, importAcceptAttribute, canEditWorkflow, canShareWorkflow, QuotaExhaustedDialog, importFileKind, parseWorkflowImport, CODE_EXPORT_FORMATS, ImportSourceError, assertImportByteSize, MAX_IMPORT_ARCHIVE_BYTES, readProjectArchive, checkTypeScriptImport, MAX_IMPORT_SOURCE_BYTES, typeScriptModuleFile, typeScriptImportSource, workflowNameFromFile, primaryImportModule } from './chunk-4OZISYDF.js';
4
4
  import { workflowsListControls } from './chunk-FNZZ5JJL.js';
5
- import { useCreateWorkflow, useWorkflowDefinitions, useLazyWorkflowDefinition, useImportWorkflow, usePreviewN8nImport, useDuplicateWorkflow, useDeleteWorkflow } from './chunk-EIMTOK6E.js';
5
+ import { useCreateWorkflow, useWorkflowDefinitions, useLazyWorkflowDefinition, useImportWorkflow, usePreviewN8nImport, useDuplicateWorkflow, useDeleteWorkflow } from './chunk-PF7XQA2S.js';
6
6
  import { useFluidGridsPageControls } from './chunk-PJAWNFJV.js';
7
7
  import { FluidGridsDocsLink } from './chunk-4VJ3MDOV.js';
8
- import { createThenOpen, FluidGridsContext, useFluidGridsFlag, FLUIDGRIDS_FLAGS, BILLING_PLANS_PATH, isQuotaExhaustedFailure } from './chunk-HSTP2RX3.js';
8
+ import { createThenOpen, FluidGridsContext, useFluidGridsFlag, FLUIDGRIDS_FLAGS, BILLING_PLANS_PATH, isQuotaExhaustedFailure } from './chunk-5OVWMFPL.js';
9
9
  import { useFluidGridsPermission, FLUIDGRIDS_PERMISSIONS, SdkPermissionButton, SdkPermissionGate } from './chunk-5375NUIO.js';
10
- import { useFlowStore } from './chunk-TGWDFLEX.js';
10
+ import { useFlowStore } from './chunk-UZJKX5FN.js';
11
11
  import { WorkflowFoldersDocument, CreateWorkflowFolderDocument, RenameWorkflowFolderDocument, MoveWorkflowFolderDocument, DeleteWorkflowFolderDocument, WorkflowProjectsDocument, CreateWorkflowProjectDocument, RenameWorkflowProjectDocument, DeleteWorkflowProjectDocument, BulkMoveWorkflowsToFolderDocument, BulkAssignWorkflowsToProjectDocument, BulkDeleteWorkflowsDocument } from './chunk-Z3ABLERJ.js';
12
12
  import { useTr } from './chunk-UULVIT25.js';
13
13
  import { getFluidGridsClient } from './chunk-PDODDDHY.js';
@@ -1,10 +1,10 @@
1
- import { useImportWorkflowTemplate, FlowBuilderPage, useWorkflowTemplates, TEMPLATE_STORE_CATEGORIES, TemplateCard, useTemplateSubmissions, usePublishToStore } from './chunk-OTOQFZFO.js';
2
- import { QuotaExhaustedDialog } from './chunk-JRLBPR5U.js';
1
+ import { useImportWorkflowTemplate, FlowBuilderPage, useWorkflowTemplates, TEMPLATE_STORE_CATEGORIES, TemplateCard, useTemplateSubmissions, usePublishToStore } from './chunk-26GYGAC5.js';
2
+ import { QuotaExhaustedDialog } from './chunk-4OZISYDF.js';
3
3
  import { templatesControls } from './chunk-FNZZ5JJL.js';
4
- import { useWorkflowDefinitions, useDuplicateWorkflow, useLazyWorkflowDefinition } from './chunk-EIMTOK6E.js';
4
+ import { useWorkflowDefinitions, useDuplicateWorkflow, useLazyWorkflowDefinition } from './chunk-PF7XQA2S.js';
5
5
  import { useFluidGridsPageControls } from './chunk-PJAWNFJV.js';
6
6
  import { FluidGridsDocsLink } from './chunk-4VJ3MDOV.js';
7
- import { BILLING_PLANS_PATH, useFluidGridsAnalytics, emitTemplateUsed, isQuotaExhaustedFailure } from './chunk-HSTP2RX3.js';
7
+ import { BILLING_PLANS_PATH, useFluidGridsAnalytics, emitTemplateUsed, isQuotaExhaustedFailure } from './chunk-5OVWMFPL.js';
8
8
  import { SdkPermissionButton, FLUIDGRIDS_PERMISSIONS } from './chunk-5375NUIO.js';
9
9
  import { useTr } from './chunk-UULVIT25.js';
10
10
  import { useState, useEffect, useCallback, useMemo } from 'react';
@@ -1,10 +1,10 @@
1
- import { AgentsTab } from './chunk-XNARCHMT.js';
1
+ import { AgentsTab } from './chunk-QHRRYTOL.js';
2
2
  import { ActionPoliciesTab } from './chunk-EXJW7EKR.js';
3
- import { LogStreamingTab } from './chunk-KJT5TAOE.js';
3
+ import { LogStreamingTab } from './chunk-ZKRDO4IG.js';
4
4
  import { FluidGridsDocsLink } from './chunk-4VJ3MDOV.js';
5
- import { useFluidGridsFlag, FLUIDGRIDS_FLAGS, useSaveStatusStore, findSaveConflict, useDurableParityEnabled, useConnections } from './chunk-HSTP2RX3.js';
5
+ import { useFluidGridsFlag, FLUIDGRIDS_FLAGS, useSaveStatusStore, findSaveConflict, useDurableParityEnabled, useConnections } from './chunk-5OVWMFPL.js';
6
6
  import { useFluidGridsPermission, FLUIDGRIDS_PERMISSIONS } from './chunk-5375NUIO.js';
7
- import { useFlowStore } from './chunk-TGWDFLEX.js';
7
+ import { useFlowStore } from './chunk-UZJKX5FN.js';
8
8
  import { getGlobalStoreClient } from './chunk-TYI2XOSI.js';
9
9
  import { useWorkflowDefinitionQuery, useUpdateWorkflowDefinitionMutation, useWorkflowDefinitionsQuery, DurableHistoryCapsDocument, UpdateDurableHistoryCapsDocument } from './chunk-Z3ABLERJ.js';
10
10
  import { useTr } from './chunk-UULVIT25.js';
@@ -1,4 +1,4 @@
1
- import { QuotaExhaustedDialog } from './chunk-JRLBPR5U.js';
1
+ import { QuotaExhaustedDialog } from './chunk-4OZISYDF.js';
2
2
  import { useTr } from './chunk-UULVIT25.js';
3
3
  import { jsx } from 'react/jsx-runtime';
4
4
 
@@ -1,4 +1,4 @@
1
- import { useFlowStore } from './chunk-TGWDFLEX.js';
1
+ import { useFlowStore } from './chunk-UZJKX5FN.js';
2
2
  import { useTr } from './chunk-UULVIT25.js';
3
3
  import { useState, useRef, useCallback, useEffect } from 'react';
4
4
  import { cn } from '@burdenoff/fe-libs/utils';
@@ -1,8 +1,8 @@
1
1
  import { FailureTriagePanel } from './chunk-NZMUKAXG.js';
2
2
  import { aiSpendPeriod, AI_SPEND_RANGE_DAYS, evidenceFacts, monthlySavingLabel, evidenceWindowDays, shortRunId, DISMISS_REASONS, MAX_DISMISS_NOTE_LENGTH, aiCost, formatTokens, runsOfWorkflowPath } from './chunk-NZAYYUQ4.js';
3
- import { useDataSinks, useDataSinkData, useInsightsData, useRunReplayActions } from './chunk-KJT5TAOE.js';
3
+ import { useDataSinks, useDataSinkData, useInsightsData, useRunReplayActions } from './chunk-ZKRDO4IG.js';
4
4
  import { proposalCanvasPath } from './chunk-GLYINMOR.js';
5
- import { useContinuousOptimisationEnabled } from './chunk-HSTP2RX3.js';
5
+ import { useContinuousOptimisationEnabled } from './chunk-5OVWMFPL.js';
6
6
  import { useFluidGridsPermission, FLUIDGRIDS_PERMISSIONS, SdkPermissionButton } from './chunk-5375NUIO.js';
7
7
  import { SetContinuousOptimisationEnabledDocument, FgRunOptimisationScanDocument, ProposeOptimisationDocument, WorkflowProposalDocument, DismissOptimisationSuggestionDocument, SnoozeOptimisationSuggestionDocument, WorkspaceAiUsageDocument, OptimisationSuggestionsDocument, ContinuousOptimisationSettingsDocument } from './chunk-Z3ABLERJ.js';
8
8
  import { useTr } from './chunk-UULVIT25.js';
@@ -1,4 +1,4 @@
1
- import { mergeStickyNotes } from './chunk-TGWDFLEX.js';
1
+ import { mergeStickyNotes } from './chunk-UZJKX5FN.js';
2
2
 
3
3
  // src/builder/live/definition-canvas.ts
4
4
  function isRecord(value) {