@burdenoff/fluidgrids-fe-sdk 2026.1105.3 → 2026.1106.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.
- package/README.md +16 -3
- package/dist/{ExecutionDetailPage-JXGPSLS3.js → ExecutionDetailPage-OOHJQR2L.js} +14 -14
- package/dist/{ExecutionsListPage-U3TC5JUI.js → ExecutionsListPage-6HS5VQOV.js} +10 -10
- package/dist/{WorkflowBuilder-6DOD6WWH.js → WorkflowBuilder-PICIS7FI.js} +16 -16
- package/dist/{WorkflowsList-XOWRQNST.js → WorkflowsList-SD5XQC4Q.js} +10 -10
- package/dist/{agentTools-YQBN33WG.js → agentTools-UH4LU6LA.js} +7 -7
- package/dist/{chunk-MY7SEUXM.js → chunk-43GSC5Y6.js} +1 -1
- package/dist/{chunk-EKDUYCTS.js → chunk-4XAXF5VP.js} +4 -4
- package/dist/{chunk-G774FI2E.js → chunk-5GG2FEKW.js} +2 -2
- package/dist/{chunk-TJAG2DQT.js → chunk-5Z4F24QT.js} +3 -3
- package/dist/{chunk-JYYN3CLL.js → chunk-6VIG44VF.js} +1 -1
- package/dist/{chunk-2WUVF4EQ.js → chunk-ASYYYJG2.js} +4 -4
- package/dist/{chunk-OXXXUAWM.js → chunk-CTKWMPQQ.js} +1 -1
- package/dist/{chunk-YGOGJDN4.js → chunk-EIMTOK6E.js} +3 -3
- package/dist/{chunk-AMXJLVZN.js → chunk-EXJW7EKR.js} +2 -2
- package/dist/{chunk-MP44TAOO.js → chunk-GBJWPSLJ.js} +70 -5
- package/dist/{chunk-LDWBMCX4.js → chunk-GBQC5WDH.js} +16 -9
- package/dist/{chunk-3ZYRLGDF.js → chunk-GPABUQTD.js} +650 -636
- package/dist/{chunk-ZBPRNWKY.js → chunk-HSTP2RX3.js} +35 -6
- package/dist/{chunk-US5QSLPV.js → chunk-JKLZ6YZ3.js} +22 -11
- package/dist/{chunk-KAWRHIJZ.js → chunk-JRLBPR5U.js} +3 -3
- package/dist/{chunk-IL343FKX.js → chunk-KHS2DZHH.js} +1 -1
- package/dist/{chunk-4NNF7DIB.js → chunk-KJT5TAOE.js} +3 -3
- package/dist/{chunk-TLHX4DK4.js → chunk-LLCVVRCE.js} +9 -9
- package/dist/{chunk-IJ7UIDCW.js → chunk-M72SMQOS.js} +8 -8
- package/dist/{chunk-TCIBTMJI.js → chunk-NZMUKAXG.js} +3 -69
- package/dist/{chunk-G33OMSW6.js → chunk-OLRIWGYM.js} +6 -6
- package/dist/{chunk-NMQENSPW.js → chunk-OTOQFZFO.js} +38 -38
- package/dist/{chunk-EYQ7GJRW.js → chunk-PASKZCII.js} +3 -3
- package/dist/{chunk-3IXU7WUC.js → chunk-PDODDDHY.js} +1 -1
- package/dist/{chunk-5DVP2UYH.js → chunk-TGWDFLEX.js} +11 -3
- package/dist/{chunk-AU7LACOY.js → chunk-TYI2XOSI.js} +1 -1
- package/dist/{chunk-L2N6DDOI.js → chunk-U7UNWR3D.js} +2 -2
- package/dist/{chunk-NZFPCTIS.js → chunk-UIS7KGHW.js} +4 -4
- package/dist/{chunk-KN37RIFC.js → chunk-UWCD7JUU.js} +8 -8
- package/dist/{chunk-MA6I4KY5.js → chunk-UYTPURFW.js} +16 -50
- package/dist/{chunk-ZLBTUCC2.js → chunk-WBRW67HX.js} +3 -3
- package/dist/{chunk-VESQH55Q.js → chunk-WC526MLS.js} +3 -3
- package/dist/{chunk-22U3TUKZ.js → chunk-XNARCHMT.js} +2 -2
- package/dist/{chunk-3MZOYJ5I.js → chunk-XWINH6CR.js} +1 -1
- package/dist/{chunk-FVWRGL7S.js → chunk-Y4UCHFGK.js} +1 -1
- package/dist/{client-YVZMLEQX.js → client-62VHXHKN.js} +2 -2
- package/dist/executions.js +15 -15
- package/dist/{global-client-N5EIFW6T.js → global-client-PJ5LANJA.js} +2 -2
- package/dist/history.js +9 -9
- package/dist/index.d.ts +10 -4
- package/dist/index.js +67 -53
- package/dist/{node-detail-view-U5HOP2WX.js → node-detail-view-P5NV5CMO.js} +11 -11
- package/dist/nodes.js +3 -3
- package/dist/observability.js +8 -8
- package/dist/{quick-config-panel-XAISBW6Y.js → quick-config-panel-ZNSBVF4G.js} +8 -8
- package/dist/settings.js +9 -9
- package/dist/templates.js +15 -15
- package/dist/{workflow-builder-7vv9dCdp.d.ts → workflow-builder-C-ekFbwR.d.ts} +37 -4
- package/dist/workflow-builder.d.ts +1 -1
- package/dist/workflow-builder.js +17 -17
- package/dist/workflow-preview.d.ts +10 -3
- package/dist/workflow-preview.js +78 -43
- package/dist/workflows-list.js +10 -10
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -256,6 +256,10 @@ import { WorkflowPreviewCanvas, previewCanvasFromDefinition, previewRevealOrder
|
|
|
256
256
|
- `resolveNodeMeta(nodeType)` (optional, keep it stable) supplies registry names
|
|
257
257
|
and icons; without it a card uses the node's saved manifest, then a name and
|
|
258
258
|
icon derived from its type.
|
|
259
|
+
- Edges follow the builder's rule: an edge whose source or target handle the
|
|
260
|
+
builder's card for that node does not have (read from the node's stored data,
|
|
261
|
+
as the builder reads it) is not drawn, so the preview never shows a
|
|
262
|
+
connection the builder drops.
|
|
259
263
|
- Nodes cannot be dragged, connected, selected or deleted; pan and zoom work.
|
|
260
264
|
- `prefers-reduced-motion: reduce` turns every animation off.
|
|
261
265
|
|
|
@@ -292,16 +296,25 @@ embedding props (also settable with `setFluidGridsConfig`):
|
|
|
292
296
|
values are validated (`themeToCssVariables`) and applied document-wide as
|
|
293
297
|
inline properties on `<html>`, restored on unmount (`applyFluidGridsTheme`,
|
|
294
298
|
`useFluidGridsTheme`). The public embed viewer also reads `accent`, `radius`
|
|
295
|
-
and `font` query parameters next to `theme
|
|
299
|
+
and `font` query parameters next to `theme`; its single `radius` sets
|
|
300
|
+
`radius.base`, `radius.card`, `radius.button` and `radius.input` (builder node
|
|
301
|
+
cards follow `--radius-card`).
|
|
296
302
|
- **`auth.onTokenExpired`** — called once per expired-session failure (401,
|
|
297
303
|
`UNAUTHENTICATED`, expired/revoked credential); concurrent failures share one
|
|
298
304
|
call; the request is retried once with the new token; on rejection the SDK
|
|
299
|
-
emits `auth:failed` and surfaces the original error.
|
|
305
|
+
emits `auth:failed` and surfaces the original error. A failed refresh is
|
|
306
|
+
reported once: requests already in flight with the expired token fail with
|
|
307
|
+
their own error without a second call or event; a request sent after the
|
|
308
|
+
failure may refresh again. Host-injected Apollo
|
|
300
309
|
clients add `createFluidGridsTokenRefreshLink()` before their auth link.
|
|
301
310
|
- **`onEvent`** — typed `FluidGridsEventMap`: `workflow:saved`,
|
|
302
311
|
`workflow:activated`, `run:started`, `run:completed`, `node:selected`,
|
|
303
312
|
`error`, `auth:failed`. Contract version `FLUIDGRIDS_EVENTS_VERSION` (semver:
|
|
304
|
-
additive = minor, payload break = major).
|
|
313
|
+
additive = minor, payload break = major). The standalone `WorkflowBuilder` /
|
|
314
|
+
`WorkflowBuilderCore` canvas saves and runs locally (`onSave` / `onExecute`),
|
|
315
|
+
so it emits only `node:selected`.
|
|
316
|
+
- `FluidGridsRoot`, `WorkflowBuilder` and `WorkflowBuilderCore` work without a
|
|
317
|
+
host `ThemeProvider`; they reuse the host's when there is one.
|
|
305
318
|
|
|
306
319
|
Full guide: [docs.fluidgrids.ai/developers/embedding](https://docs.fluidgrids.ai/developers/embedding).
|
|
307
320
|
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
export { ExecutionDetailPage } from './chunk-
|
|
2
|
-
import './chunk-
|
|
3
|
-
import './chunk-
|
|
4
|
-
import './chunk-
|
|
5
|
-
import './chunk-
|
|
1
|
+
export { ExecutionDetailPage } from './chunk-GPABUQTD.js';
|
|
2
|
+
import './chunk-ASYYYJG2.js';
|
|
3
|
+
import './chunk-UYTPURFW.js';
|
|
4
|
+
import './chunk-WC526MLS.js';
|
|
5
|
+
import './chunk-NZMUKAXG.js';
|
|
6
6
|
import './chunk-NZAYYUQ4.js';
|
|
7
|
-
import './chunk-
|
|
7
|
+
import './chunk-EXJW7EKR.js';
|
|
8
8
|
import './chunk-WZ3EJVS6.js';
|
|
9
9
|
import './chunk-5ERAJC2I.js';
|
|
10
|
-
import './chunk-
|
|
10
|
+
import './chunk-PASKZCII.js';
|
|
11
11
|
import './chunk-JDLQ6QIB.js';
|
|
12
|
-
import './chunk-
|
|
12
|
+
import './chunk-KHS2DZHH.js';
|
|
13
13
|
import './chunk-Y53CVZVV.js';
|
|
14
14
|
import './chunk-FNZZ5JJL.js';
|
|
15
|
-
import './chunk-
|
|
15
|
+
import './chunk-EIMTOK6E.js';
|
|
16
16
|
import './chunk-PJAWNFJV.js';
|
|
17
17
|
import './chunk-H4ERTSMX.js';
|
|
18
|
-
import './chunk-
|
|
18
|
+
import './chunk-HSTP2RX3.js';
|
|
19
19
|
import './chunk-5375NUIO.js';
|
|
20
20
|
import './chunk-JL7CASN5.js';
|
|
21
21
|
import './chunk-SDZEAIIE.js';
|
|
22
|
-
import './chunk-
|
|
22
|
+
import './chunk-TGWDFLEX.js';
|
|
23
23
|
import './chunk-Y7FKJJMF.js';
|
|
24
|
-
import './chunk-
|
|
24
|
+
import './chunk-TYI2XOSI.js';
|
|
25
25
|
import './chunk-G77IGC3Y.js';
|
|
26
26
|
import './chunk-Z3ABLERJ.js';
|
|
27
27
|
import './chunk-UULVIT25.js';
|
|
28
|
-
import './chunk-
|
|
29
|
-
import './chunk-
|
|
28
|
+
import './chunk-PDODDDHY.js';
|
|
29
|
+
import './chunk-JKLZ6YZ3.js';
|
|
30
30
|
import './chunk-UEG2WC3G.js';
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
export { ExecutionsListPage } from './chunk-
|
|
2
|
-
import './chunk-
|
|
3
|
-
import './chunk-
|
|
1
|
+
export { ExecutionsListPage } from './chunk-UIS7KGHW.js';
|
|
2
|
+
import './chunk-UYTPURFW.js';
|
|
3
|
+
import './chunk-WC526MLS.js';
|
|
4
4
|
import './chunk-WZ3EJVS6.js';
|
|
5
5
|
import './chunk-5ERAJC2I.js';
|
|
6
|
-
import './chunk-
|
|
6
|
+
import './chunk-KHS2DZHH.js';
|
|
7
7
|
import './chunk-FNZZ5JJL.js';
|
|
8
|
-
import './chunk-
|
|
8
|
+
import './chunk-EIMTOK6E.js';
|
|
9
9
|
import './chunk-PJAWNFJV.js';
|
|
10
10
|
import './chunk-H4ERTSMX.js';
|
|
11
11
|
import './chunk-4VJ3MDOV.js';
|
|
12
|
-
import './chunk-
|
|
12
|
+
import './chunk-HSTP2RX3.js';
|
|
13
13
|
import './chunk-5375NUIO.js';
|
|
14
14
|
import './chunk-JL7CASN5.js';
|
|
15
15
|
import './chunk-SDZEAIIE.js';
|
|
16
|
-
import './chunk-
|
|
16
|
+
import './chunk-TGWDFLEX.js';
|
|
17
17
|
import './chunk-Y7FKJJMF.js';
|
|
18
|
-
import './chunk-
|
|
18
|
+
import './chunk-TYI2XOSI.js';
|
|
19
19
|
import './chunk-G77IGC3Y.js';
|
|
20
20
|
import './chunk-Z3ABLERJ.js';
|
|
21
21
|
import './chunk-UULVIT25.js';
|
|
22
|
-
import './chunk-
|
|
23
|
-
import './chunk-
|
|
22
|
+
import './chunk-PDODDDHY.js';
|
|
23
|
+
import './chunk-JKLZ6YZ3.js';
|
|
24
24
|
import './chunk-UEG2WC3G.js';
|
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
export { WorkflowBuilder } from './chunk-
|
|
2
|
-
import './chunk-
|
|
1
|
+
export { WorkflowBuilder } from './chunk-LLCVVRCE.js';
|
|
2
|
+
import './chunk-Y4UCHFGK.js';
|
|
3
3
|
import './chunk-PIKYQE7P.js';
|
|
4
|
-
import './chunk-
|
|
5
|
-
import './chunk-
|
|
4
|
+
import './chunk-OTOQFZFO.js';
|
|
5
|
+
import './chunk-XWINH6CR.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
10
|
import './chunk-BQXVT32O.js';
|
|
11
|
-
import './chunk-
|
|
12
|
-
import './chunk-
|
|
13
|
-
import './chunk-
|
|
11
|
+
import './chunk-43GSC5Y6.js';
|
|
12
|
+
import './chunk-JRLBPR5U.js';
|
|
13
|
+
import './chunk-PASKZCII.js';
|
|
14
14
|
import './chunk-JDLQ6QIB.js';
|
|
15
|
-
import './chunk-
|
|
15
|
+
import './chunk-KHS2DZHH.js';
|
|
16
16
|
import './chunk-Y53CVZVV.js';
|
|
17
|
-
import './chunk-
|
|
18
|
-
import './chunk-
|
|
19
|
-
import './chunk-
|
|
17
|
+
import './chunk-5Z4F24QT.js';
|
|
18
|
+
import './chunk-6VIG44VF.js';
|
|
19
|
+
import './chunk-EIMTOK6E.js';
|
|
20
20
|
import './chunk-GLYINMOR.js';
|
|
21
21
|
import './chunk-H4ERTSMX.js';
|
|
22
22
|
import './chunk-4VJ3MDOV.js';
|
|
23
|
-
import './chunk-
|
|
23
|
+
import './chunk-HSTP2RX3.js';
|
|
24
24
|
import './chunk-5375NUIO.js';
|
|
25
25
|
import './chunk-JL7CASN5.js';
|
|
26
26
|
import './chunk-SDZEAIIE.js';
|
|
27
|
-
import './chunk-
|
|
27
|
+
import './chunk-TGWDFLEX.js';
|
|
28
28
|
import './chunk-Y7FKJJMF.js';
|
|
29
|
-
import './chunk-
|
|
29
|
+
import './chunk-TYI2XOSI.js';
|
|
30
30
|
import './chunk-G77IGC3Y.js';
|
|
31
31
|
import './chunk-Z3ABLERJ.js';
|
|
32
32
|
import './chunk-UULVIT25.js';
|
|
33
|
-
import './chunk-
|
|
34
|
-
import './chunk-
|
|
33
|
+
import './chunk-PDODDDHY.js';
|
|
34
|
+
import './chunk-JKLZ6YZ3.js';
|
|
35
35
|
import './chunk-UEG2WC3G.js';
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
export { WorkflowsList } from './chunk-
|
|
2
|
-
import './chunk-
|
|
3
|
-
import './chunk-
|
|
1
|
+
export { WorkflowsList } from './chunk-M72SMQOS.js';
|
|
2
|
+
import './chunk-Y4UCHFGK.js';
|
|
3
|
+
import './chunk-WC526MLS.js';
|
|
4
4
|
import './chunk-5ERAJC2I.js';
|
|
5
|
-
import './chunk-
|
|
5
|
+
import './chunk-JRLBPR5U.js';
|
|
6
6
|
import './chunk-FNZZ5JJL.js';
|
|
7
|
-
import './chunk-
|
|
7
|
+
import './chunk-EIMTOK6E.js';
|
|
8
8
|
import './chunk-PJAWNFJV.js';
|
|
9
9
|
import './chunk-H4ERTSMX.js';
|
|
10
10
|
import './chunk-4VJ3MDOV.js';
|
|
11
|
-
import './chunk-
|
|
11
|
+
import './chunk-HSTP2RX3.js';
|
|
12
12
|
import './chunk-5375NUIO.js';
|
|
13
13
|
import './chunk-JL7CASN5.js';
|
|
14
14
|
import './chunk-SDZEAIIE.js';
|
|
15
|
-
import './chunk-
|
|
15
|
+
import './chunk-TGWDFLEX.js';
|
|
16
16
|
import './chunk-Y7FKJJMF.js';
|
|
17
|
-
import './chunk-
|
|
17
|
+
import './chunk-TYI2XOSI.js';
|
|
18
18
|
import './chunk-G77IGC3Y.js';
|
|
19
19
|
import './chunk-Z3ABLERJ.js';
|
|
20
20
|
import './chunk-UULVIT25.js';
|
|
21
|
-
import './chunk-
|
|
22
|
-
import './chunk-
|
|
21
|
+
import './chunk-PDODDDHY.js';
|
|
22
|
+
import './chunk-JKLZ6YZ3.js';
|
|
23
23
|
import './chunk-UEG2WC3G.js';
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { nodeTitle, selectedOperationOf, paramsFromOperation, fixedParameterState } from './chunk-
|
|
2
|
-
import { computeAttachPosition } from './chunk-
|
|
3
|
-
import { NODE_CONFIGS, createConfiguredNode, isNodeConfigsInitialized, useSaveStatusStore, autosaveAllowedFor, isFlowComplete, isNodeTypeHiddenFromPalette } from './chunk-
|
|
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';
|
|
4
4
|
import './chunk-5375NUIO.js';
|
|
5
5
|
import './chunk-JL7CASN5.js';
|
|
6
6
|
import './chunk-SDZEAIIE.js';
|
|
7
|
-
import { resolveOutputHandles, resolveInputHandles, useFlowStore } from './chunk-
|
|
7
|
+
import { resolveOutputHandles, resolveInputHandles, useFlowStore } from './chunk-TGWDFLEX.js';
|
|
8
8
|
import './chunk-Y7FKJJMF.js';
|
|
9
|
-
import './chunk-
|
|
9
|
+
import './chunk-TYI2XOSI.js';
|
|
10
10
|
import './chunk-G77IGC3Y.js';
|
|
11
11
|
import './chunk-Z3ABLERJ.js';
|
|
12
12
|
import './chunk-UULVIT25.js';
|
|
13
|
-
import './chunk-
|
|
14
|
-
import './chunk-
|
|
13
|
+
import './chunk-PDODDDHY.js';
|
|
14
|
+
import './chunk-JKLZ6YZ3.js';
|
|
15
15
|
import './chunk-UEG2WC3G.js';
|
|
16
16
|
import { defineAgentTool, AgentToolError } from '@burdenoff/fe-libs/shared/agent-tools';
|
|
17
17
|
import { z } from 'zod';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { useImportWorkflowTemplate, FlowBuilderPage, useWorkflowTemplates, TEMPLATE_STORE_CATEGORIES, TemplateCard, useTemplateSubmissions, usePublishToStore } from './chunk-
|
|
2
|
-
import { QuotaExhaustedDialog } from './chunk-
|
|
1
|
+
import { useImportWorkflowTemplate, FlowBuilderPage, useWorkflowTemplates, TEMPLATE_STORE_CATEGORIES, TemplateCard, useTemplateSubmissions, usePublishToStore } from './chunk-OTOQFZFO.js';
|
|
2
|
+
import { QuotaExhaustedDialog } from './chunk-JRLBPR5U.js';
|
|
3
3
|
import { templatesControls } from './chunk-FNZZ5JJL.js';
|
|
4
|
-
import { useWorkflowDefinitions, useDuplicateWorkflow, useLazyWorkflowDefinition } from './chunk-
|
|
4
|
+
import { useWorkflowDefinitions, useDuplicateWorkflow, useLazyWorkflowDefinition } from './chunk-EIMTOK6E.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-
|
|
7
|
+
import { BILLING_PLANS_PATH, useFluidGridsAnalytics, emitTemplateUsed, isQuotaExhaustedFailure } from './chunk-HSTP2RX3.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,6 +1,6 @@
|
|
|
1
|
-
import { versionsOfWorkflow, VersionDiffDialog } from './chunk-
|
|
1
|
+
import { versionsOfWorkflow, VersionDiffDialog } from './chunk-5Z4F24QT.js';
|
|
2
2
|
import { historyControls } from './chunk-FNZZ5JJL.js';
|
|
3
|
-
import { useWorkflowDefinitions, useRestoreWorkflowVersion } from './chunk-
|
|
3
|
+
import { useWorkflowDefinitions, useRestoreWorkflowVersion } from './chunk-EIMTOK6E.js';
|
|
4
4
|
import { useFluidGridsPageControls } from './chunk-PJAWNFJV.js';
|
|
5
5
|
import { FluidGridsDocsLink } from './chunk-4VJ3MDOV.js';
|
|
6
6
|
import { useTr } from './chunk-UULVIT25.js';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { canvasFromDefinition } from './chunk-
|
|
1
|
+
import { canvasFromDefinition } from './chunk-6VIG44VF.js';
|
|
2
2
|
import { WorkflowDefinitionDocument, WorkflowVersionDiffDocument } from './chunk-Z3ABLERJ.js';
|
|
3
3
|
import { useTr } from './chunk-UULVIT25.js';
|
|
4
|
-
import { getFluidGridsClient } from './chunk-
|
|
5
|
-
import { describeOperationError, throwIfResultError } from './chunk-
|
|
4
|
+
import { getFluidGridsClient } from './chunk-PDODDDHY.js';
|
|
5
|
+
import { describeOperationError, throwIfResultError } from './chunk-JKLZ6YZ3.js';
|
|
6
6
|
import { memo, useState, useEffect, useMemo, useRef, useCallback } from 'react';
|
|
7
7
|
import { ArrowLeftRight, Eye, RotateCcw, Loader2 } from 'lucide-react';
|
|
8
8
|
import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, Button, Badge, AlertDialog, AlertDialogContent, AlertDialogHeader, AlertDialogTitle, AlertDialogDescription, AlertDialogFooter, AlertDialogCancel, AlertDialogAction, Tabs, TabsList, TabsTrigger, TabsContent } from '@burdenoff/fe-libs/ui';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { signalPayloadCard, components_default, payloadFromCardValues, parseRawSignalPayload } from './chunk-
|
|
1
|
+
import { signalPayloadCard, components_default, payloadFromCardValues, parseRawSignalPayload } from './chunk-HSTP2RX3.js';
|
|
2
2
|
import { TerminateWorkflowRunDocument, WorkflowRunHistoryDocument, RunEventAppendedDocument, DurableRunFieldsDocument, WorkflowRunDeterminismStatusDocument, WorkflowRunStackTraceDocument, SignalWorkflowRunDocument } from './chunk-Z3ABLERJ.js';
|
|
3
3
|
import { useTr } from './chunk-UULVIT25.js';
|
|
4
|
-
import { getFluidGridsClient, getFluidGridsClientSafe } from './chunk-
|
|
5
|
-
import { throwIfResultError, describeOperationError } from './chunk-
|
|
4
|
+
import { getFluidGridsClient, getFluidGridsClientSafe } from './chunk-PDODDDHY.js';
|
|
5
|
+
import { throwIfResultError, describeOperationError } from './chunk-JKLZ6YZ3.js';
|
|
6
6
|
import { useState, useMemo, useRef, useCallback, useEffect } from 'react';
|
|
7
7
|
import { Icon } from '@iconify/react';
|
|
8
8
|
import { Button } from '@burdenoff/fe-libs/button';
|
|
@@ -579,7 +579,7 @@ function HistoryRow({
|
|
|
579
579
|
href: event.payloadUrl ?? void 0,
|
|
580
580
|
target: "_blank",
|
|
581
581
|
rel: "noreferrer noopener",
|
|
582
|
-
className: "text-
|
|
582
|
+
className: "text-text-link hover:text-text-linkHover hover:underline",
|
|
583
583
|
children: tr(
|
|
584
584
|
"fluidgrids.executions.history.offloadedPayload",
|
|
585
585
|
"Download payload"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { NodeEndpointConfigsDocument, NodeEndpointConfigDocument, NodeManifestDocument, fetchAllNodeEndpointConfigs } from './chunk-Z3ABLERJ.js';
|
|
2
2
|
import { useTr } from './chunk-UULVIT25.js';
|
|
3
|
-
import { getFluidGridsClient } from './chunk-
|
|
3
|
+
import { getFluidGridsClient } from './chunk-PDODDDHY.js';
|
|
4
4
|
import { useMemo, useState, useCallback, useEffect } from 'react';
|
|
5
5
|
import { useNavigate } from 'react-router';
|
|
6
6
|
import { Icon } from '@iconify/react';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { useFluidGridsAnalytics, emitWorkflowCreated, emitRunStarted, runTriggerFromMode, openRunQuotaUpgradePrompt, emitWorkflowPublished } from './chunk-
|
|
1
|
+
import { useFluidGridsAnalytics, emitWorkflowCreated, emitRunStarted, runTriggerFromMode, openRunQuotaUpgradePrompt, emitWorkflowPublished } from './chunk-HSTP2RX3.js';
|
|
2
2
|
import { WorkflowDefinitionsDocument, WorkflowDefinitionDocument, WorkflowVersionsDocument, CreateWorkflowDefinitionDocument, ImportWorkflowDocument, PreviewN8nImportDocument, UpdateWorkflowDefinitionDocument, CreateWorkflowVersionDocument, DeleteWorkflowDefinitionDocument, DuplicateWorkflowDocument, RestoreWorkflowVersionDocument, TriggerWorkflowDocument, WorkflowRunsDocument, WorkflowRunDocument, DashboardSummaryDocument, ActivateWorkflowDefinitionDocument, DeactivateWorkflowDefinitionDocument } from './chunk-Z3ABLERJ.js';
|
|
3
3
|
import { useTr } from './chunk-UULVIT25.js';
|
|
4
|
-
import { getFluidGridsClient } from './chunk-
|
|
5
|
-
import { throwIfResultError, emitFluidGridsEvent, emitOperationErrorEvent } from './chunk-
|
|
4
|
+
import { getFluidGridsClient } from './chunk-PDODDDHY.js';
|
|
5
|
+
import { throwIfResultError, emitFluidGridsEvent, emitOperationErrorEvent } from './chunk-JKLZ6YZ3.js';
|
|
6
6
|
import { getFluidGridsConfig } from './chunk-UEG2WC3G.js';
|
|
7
7
|
import { useState, useCallback, useEffect, useMemo } from 'react';
|
|
8
8
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useTr } from './chunk-UULVIT25.js';
|
|
2
|
-
import { getFluidGridsClient } from './chunk-
|
|
3
|
-
import { throwIfResultError, describeOperationError } from './chunk-
|
|
2
|
+
import { getFluidGridsClient } from './chunk-PDODDDHY.js';
|
|
3
|
+
import { throwIfResultError, describeOperationError } from './chunk-JKLZ6YZ3.js';
|
|
4
4
|
import { useState, useCallback, useEffect, useMemo } from 'react';
|
|
5
5
|
import { gql } from '@apollo/client';
|
|
6
6
|
import { Button } from '@burdenoff/fe-libs/button';
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import {
|
|
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-
|
|
3
|
+
import { useDataSinks, useDataSinkData, useInsightsData, useRunReplayActions } from './chunk-KJT5TAOE.js';
|
|
4
4
|
import { proposalCanvasPath } from './chunk-GLYINMOR.js';
|
|
5
|
-
import { useContinuousOptimisationEnabled } from './chunk-
|
|
5
|
+
import { useContinuousOptimisationEnabled } from './chunk-HSTP2RX3.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';
|
|
9
|
-
import { getFluidGridsClient } from './chunk-
|
|
10
|
-
import { throwIfResultError } from './chunk-
|
|
9
|
+
import { getFluidGridsClient } from './chunk-PDODDDHY.js';
|
|
10
|
+
import { throwIfResultError } from './chunk-JKLZ6YZ3.js';
|
|
11
11
|
import { useState, useMemo, useEffect, useRef, useCallback } from 'react';
|
|
12
12
|
import { Icon } from '@iconify/react';
|
|
13
13
|
import { Button } from '@burdenoff/fe-libs/button';
|
|
@@ -17,6 +17,71 @@ import { useNavigate, Link } from 'react-router';
|
|
|
17
17
|
import { toast } from 'sonner';
|
|
18
18
|
import { Lightbulb, Scissors, Timer, ShieldCheck, DatabaseZap, BadgeDollarSign, RotateCcw } from 'lucide-react';
|
|
19
19
|
|
|
20
|
+
// src/modules/observability/utils.ts
|
|
21
|
+
function percentage(value, total) {
|
|
22
|
+
if (total <= 0) return 0;
|
|
23
|
+
return Math.round(value / total * 1e3) / 10;
|
|
24
|
+
}
|
|
25
|
+
function getFailureBreakdown(runs) {
|
|
26
|
+
const counts = /* @__PURE__ */ new Map();
|
|
27
|
+
for (const run of runs) {
|
|
28
|
+
const key = run.errorType || "UNKNOWN";
|
|
29
|
+
counts.set(key, (counts.get(key) ?? 0) + 1);
|
|
30
|
+
}
|
|
31
|
+
return [...counts.entries()].map(([key, count]) => ({ key, count })).sort((a, b) => b.count - a.count || a.key.localeCompare(b.key));
|
|
32
|
+
}
|
|
33
|
+
function getTopFailingWorkflows(runs) {
|
|
34
|
+
const counts = /* @__PURE__ */ new Map();
|
|
35
|
+
for (const run of runs) {
|
|
36
|
+
const current = counts.get(run.workflowKey);
|
|
37
|
+
if (current) {
|
|
38
|
+
current.count += 1;
|
|
39
|
+
} else {
|
|
40
|
+
counts.set(run.workflowKey, {
|
|
41
|
+
workflowKey: run.workflowKey,
|
|
42
|
+
label: run.workflow?.name || run.workflowKey,
|
|
43
|
+
count: 1
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return [...counts.values()].sort(
|
|
48
|
+
(a, b) => b.count - a.count || a.label.localeCompare(b.label)
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
function getTopFailingNodes(nodeUsageStats) {
|
|
52
|
+
return [...nodeUsageStats].filter((stat) => stat.failureCount > 0).sort(
|
|
53
|
+
(a, b) => b.failureCount - a.failureCount || a.nodeType.localeCompare(b.nodeType)
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
function formatDuration(seconds) {
|
|
57
|
+
if (seconds === null || seconds === void 0 || !Number.isFinite(seconds)) {
|
|
58
|
+
return "\u2014";
|
|
59
|
+
}
|
|
60
|
+
if (seconds < 1) return `${Math.round(seconds * 1e3)}ms`;
|
|
61
|
+
if (seconds < 60) return `${seconds.toFixed(1)}s`;
|
|
62
|
+
const minutes = Math.floor(seconds / 60);
|
|
63
|
+
const remainingSeconds = Math.round(seconds % 60);
|
|
64
|
+
return `${minutes}m ${remainingSeconds}s`;
|
|
65
|
+
}
|
|
66
|
+
function formatBytes(bytes) {
|
|
67
|
+
if (!Number.isFinite(bytes) || bytes < 0) return "\u2014";
|
|
68
|
+
if (bytes < 1024) return `${bytes} B`;
|
|
69
|
+
const units = ["KB", "MB", "GB", "TB"];
|
|
70
|
+
let value = bytes / 1024;
|
|
71
|
+
let unit = units[0];
|
|
72
|
+
for (let i = 1; i < units.length && value >= 1024; i += 1) {
|
|
73
|
+
value /= 1024;
|
|
74
|
+
unit = units[i];
|
|
75
|
+
}
|
|
76
|
+
return `${value.toFixed(value >= 10 ? 0 : 1)} ${unit}`;
|
|
77
|
+
}
|
|
78
|
+
function prettyJson(value) {
|
|
79
|
+
try {
|
|
80
|
+
return JSON.stringify(value, null, 2) ?? "null";
|
|
81
|
+
} catch {
|
|
82
|
+
return String(value);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
20
85
|
function valueLabel(value) {
|
|
21
86
|
if (value === null || value === void 0) return "\u2014";
|
|
22
87
|
if (typeof value === "object") return JSON.stringify(value);
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { Card, FluidGridsMark } from './chunk-
|
|
1
|
+
import { useNodeSelectedEvent, Card, FluidGridsMark } from './chunk-OTOQFZFO.js';
|
|
2
2
|
import { Input } from './chunk-IEVSFCFS.js';
|
|
3
3
|
import { Button } from './chunk-BQXVT32O.js';
|
|
4
|
-
import { useWorkflowDefinition } from './chunk-
|
|
5
|
-
import { FluidGridsProvider } from './chunk-
|
|
4
|
+
import { useWorkflowDefinition } from './chunk-EIMTOK6E.js';
|
|
5
|
+
import { FluidGridsProvider } from './chunk-HSTP2RX3.js';
|
|
6
6
|
import { cn } from './chunk-JL7CASN5.js';
|
|
7
|
-
import { useFlowStore } from './chunk-
|
|
7
|
+
import { useFlowStore } from './chunk-TGWDFLEX.js';
|
|
8
8
|
import { useTr } from './chunk-UULVIT25.js';
|
|
9
9
|
import { useState, useRef, useEffect, useCallback } from 'react';
|
|
10
10
|
import { MarkerType, ReactFlowProvider, useReactFlow, ReactFlow, Background, Controls, MiniMap, Handle, Position } from '@xyflow/react';
|
|
@@ -12,9 +12,10 @@ import { useShallow } from 'zustand/shallow';
|
|
|
12
12
|
import { edgeColor, nodeCategoryColor } from '@burdenoff/fe-libs/shared/utils';
|
|
13
13
|
import '@xyflow/react/dist/style.css';
|
|
14
14
|
import { ArrowLeft, Save, Play, Trash2 } from 'lucide-react';
|
|
15
|
-
import { useTheme } from '@burdenoff/fe-libs/shared/hooks/shell';
|
|
15
|
+
import { useThemeOrNull, useTheme } from '@burdenoff/fe-libs/shared/hooks/shell';
|
|
16
16
|
import { Toaster as Toaster$1 } from 'sonner';
|
|
17
|
-
import {
|
|
17
|
+
import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
|
|
18
|
+
import { ThemeProvider } from '@burdenoff/fe-libs/shared/providers/shell';
|
|
18
19
|
import { useParams, Navigate } from 'react-router';
|
|
19
20
|
import { Icon } from '@iconify/react';
|
|
20
21
|
|
|
@@ -37,6 +38,11 @@ var Toaster = ({ ...props }) => {
|
|
|
37
38
|
}
|
|
38
39
|
);
|
|
39
40
|
};
|
|
41
|
+
function EnsureThemeProvider({ children }) {
|
|
42
|
+
const hostTheme = useThemeOrNull();
|
|
43
|
+
if (hostTheme) return /* @__PURE__ */ jsx(Fragment, { children });
|
|
44
|
+
return /* @__PURE__ */ jsx(ThemeProvider, { children });
|
|
45
|
+
}
|
|
40
46
|
var defaultEdgeOptions = {
|
|
41
47
|
type: "smoothstep",
|
|
42
48
|
markerEnd: {
|
|
@@ -154,6 +160,7 @@ function FlowBuilderInner({
|
|
|
154
160
|
}) {
|
|
155
161
|
const reactFlowInstance = useReactFlow();
|
|
156
162
|
const tr = useTr();
|
|
163
|
+
useNodeSelectedEvent();
|
|
157
164
|
const setWorkflow = useFlowStore((s) => s.actions.setWorkflow);
|
|
158
165
|
const resetWorkflow = useFlowStore((s) => s.actions.resetWorkflow);
|
|
159
166
|
const deleteNode = useFlowStore((s) => s.actions.nodes.deleteNode);
|
|
@@ -475,10 +482,10 @@ function FlowBuilderInner({
|
|
|
475
482
|
);
|
|
476
483
|
}
|
|
477
484
|
function WorkflowBuilderCore(props) {
|
|
478
|
-
return /* @__PURE__ */ jsxs(ReactFlowProvider, { children: [
|
|
485
|
+
return /* @__PURE__ */ jsx(EnsureThemeProvider, { children: /* @__PURE__ */ jsxs(ReactFlowProvider, { children: [
|
|
479
486
|
/* @__PURE__ */ jsx(FlowBuilderInner, { ...props }),
|
|
480
487
|
/* @__PURE__ */ jsx(Toaster, { richColors: true, position: "bottom-center", duration: 2e3 })
|
|
481
|
-
] });
|
|
488
|
+
] }) });
|
|
482
489
|
}
|
|
483
490
|
function WorkflowBuilder({
|
|
484
491
|
workflowId,
|
|
@@ -561,4 +568,4 @@ function WorkflowSearchRedirect() {
|
|
|
561
568
|
);
|
|
562
569
|
}
|
|
563
570
|
|
|
564
|
-
export { WorkflowBuilder, WorkflowBuilderCore, WorkflowSearchRedirect };
|
|
571
|
+
export { EnsureThemeProvider, WorkflowBuilder, WorkflowBuilderCore, WorkflowSearchRedirect };
|