@burdenoff/fluidgrids-fe-sdk 2026.1113.1 → 2026.1113.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{AiStudioPage-D3MAk-bs.js → AiStudioPage-5KYZ8r8-.js} +464 -7
- package/dist/{ApprovalInboxPage-Bb8H9ruw.js → ApprovalInboxPage-BsJX4osU.js} +4 -3
- package/dist/{ConnectionFormDialog-Bg9_OdHX.js → ConnectionFormDialog-Dr1-CTan.js} +2 -1
- package/dist/CreateFluidgridsTagDocument-Dtp9KPLJ.js +1055 -0
- package/dist/{DataSinkDashboardPage-Dc2QuJbL.js → DataSinkDashboardPage-8ZDn85e2.js} +1 -1
- package/dist/{DataTablesPage-Cv4veaKK.js → DataTablesPage-BBvABuxE.js} +5 -4
- package/dist/{EntityTagPicker-D8ws706D.js → EntityTagPicker-BppBSEJk.js} +2 -2
- package/dist/{ExecutionDetailPage-CTVGE-d-.js → ExecutionDetailPage-BXDF2eoT.js} +1444 -18
- package/dist/ExecutionsListDocument-CzdLPpj5.js +1259 -0
- package/dist/{ExecutionsListPage-J0sJPuoM.js → ExecutionsListPage--4BthM8L.js} +285 -11
- package/dist/FailureTriagePanel-B5WCSRFo.js +1252 -0
- package/dist/{FluidGridsProvider-C4FVNz0n.js → FluidGridsProvider-Dc_Jhtch.js} +8666 -8734
- package/dist/{HistoryPage-B9XcTPrO.js → HistoryPage-BvFk2m1m.js} +4 -3
- package/dist/{InsightsPage-DFOltjyj.js → InsightsPage-Dwmb02F6.js} +2682 -5
- package/dist/{MissingNodesInstallModal-D8H-YNCJ.js → MissingNodesInstallModal-Cze674hp.js} +2 -2
- package/dist/{NodesPage-YQ-hP60x.js → NodesPage-C5Dq-ru-.js} +3 -2
- package/dist/{OpenTemplateAsCodeButton-hH26HQCk.js → OpenTemplateAsCodeButton-8MZHih6I.js} +2 -2
- package/dist/{PaidTemplateConfirm-DoKWMBtR.js → PaidTemplateConfirm-0G-gv29n.js} +1 -1
- package/dist/{PublishCustomNodeAction-5XXnSA3H.js → PublishCustomNodeAction-OOY35dUv.js} +1 -1
- package/dist/QuotaExhaustedDialog-wvu_-WJ-.js +55 -0
- package/dist/{RunnerStatusPill-Ctg4TJcP.js → RunnerStatusPill-Bh7mEsPh.js} +2 -1
- package/dist/{RunnersPage-CAt4YDhB.js → RunnersPage-DHeuUDil.js} +2 -2
- package/dist/{SettingsPage-DEKPCVVP.js → SettingsPage-CfjXiGpb.js} +694 -14
- package/dist/{TagFilterSelect-CwM2-DU6.js → TagFilterSelect-CAShgvbS.js} +1 -1
- package/dist/{TaskQueuesPage-Dhi6SIT4.js → TaskQueuesPage--Mmn36b-.js} +3 -3
- package/dist/{TemplateCard-DVSd_4zJ.js → TemplateCard-BA_9em22.js} +644 -352
- package/dist/{TemplateConfigurationModal-BKi1z7z7.js → TemplateConfigurationModal-BT3PaR0O.js} +4 -3
- package/dist/{TemplateDetailPanel-DK1gF7P5.js → TemplateDetailPanel-BxFNnlXm.js} +2 -1
- package/dist/{TemplatePreview-DuSX2Q7H.js → TemplatePreview-Bagja6WN.js} +7 -7
- package/dist/{TemplatesPage-CAWHh61l.js → TemplatesPage-CAajpJ5w.js} +711 -6
- package/dist/{VariablesPage-D7CoatWf.js → VariablesPage-CgUBKhAe.js} +3 -3
- package/dist/{VersionDiffDialog-DGwysiyE.js → VersionDiffDialog-D9W5Fm56.js} +233 -129
- package/dist/VersionLifecycleBar-DuphLOT0.js +131 -0
- package/dist/{WorkflowBuilder-DAeoQi5E.js → WorkflowBuilder-DMpSPElu.js} +16 -13
- package/dist/{WorkflowBuilder-BJgqDboZ.js → WorkflowBuilder-v8h8skwG.js} +5 -5
- package/dist/WorkflowDefinitionDocument-DZLbTPUZ.js +321 -0
- package/dist/WorkflowEditLeaseStatusDocument-Dp62med3.js +627 -0
- package/dist/WorkflowProposalCard-zCdUpCk8.js +249 -0
- package/dist/WorkflowProposalDocument-BdUbsrd0.js +620 -0
- package/dist/{WorkflowSearchRedirect-CMEvd_AR.js → WorkflowSearchRedirect-G78lINAE.js} +1 -1
- package/dist/{WorkflowShareDialog-BgHRsDP0.js → WorkflowShareDialog-B7VOgr4-.js} +304 -3
- package/dist/WorkflowVersionsDocument-CfPMloRW.js +3195 -0
- package/dist/{WorkflowsList-CcQPxWKL.js → WorkflowsList-CPYzfE4K.js} +11 -9
- package/dist/agent-form-D0uLvzx4.js +718 -0
- package/dist/{agentTools-DKpNKztf.js → agentTools-DTXUqtfu.js} +4 -4
- package/dist/api-BZVyX5d2.js +2286 -0
- package/dist/api-BqA-f-AD.js +8064 -0
- package/dist/app-BJUvugPM.js +3813 -0
- package/dist/assert-rules-CPNrO44K.js +318 -0
- package/dist/attach-node-helpers-CNsYtLOR.js +32 -0
- package/dist/badge-CXfPhoMH.js +26 -0
- package/dist/{canvasNoteTools-C_AN79m0.js → canvasNoteTools-DmfZwtnL.js} +3 -3
- package/dist/{channel-CZ70oI81.js → channel-DtF1n_ab.js} +1 -1
- package/dist/client-Ctl4jmY3.js +127 -0
- package/dist/code-editor-diagnostics-Zr0cIcx1.js +46 -0
- package/dist/{code-editor-field-Dt6KNWwN.js → code-editor-field-Cv907s3W.js} +2 -2
- package/dist/{codec-client-CJ95Rmqo.js → codec-client-CAYl6j46.js} +2 -1
- package/dist/conditionBuilder-D8aLGL1w.js +1134 -0
- package/dist/config-X97zrIvn.js +600 -0
- package/dist/{definition-canvas-Bshn_dSP.js → definition-canvas-DL25_6NH.js} +1 -1
- package/dist/{dialog-Cjb4lB4D.js → dialog-BVd152GS.js} +3 -14
- package/dist/durable-nodes-DXCCQYWD.js +81 -0
- package/dist/errors-xPZ-IbQd.js +142 -0
- package/dist/executions.js +2 -2
- package/dist/{flow-builder-D3Hl2AFk.js → flow-builder-Dv5fWJ6F.js} +9301 -8189
- package/dist/{node-registry-refresh-Dy0uRg9f.js → global-client-DP_Wxe5t.js} +2 -27
- package/dist/global-operations-7pvXw_j9.js +145 -0
- package/dist/history.js +1 -1
- package/dist/{index-CWcP-tG1.d.ts → index-DtMUtXNq.d.ts} +247 -247
- package/dist/index.d.ts +1 -1
- package/dist/index.js +4403 -46
- package/dist/input-ChT6Q-Pr.js +17 -0
- package/dist/logs-panel-DtG93ocy.js +342 -0
- package/dist/mapping-colors-BIX_YeCQ.js +48 -0
- package/dist/{node-detail-view-bVLeYarT.js → node-detail-view-BKI_2kM6.js} +12 -11
- package/dist/{node-editor-tab-body-JHHVtQgR.js → node-editor-tab-body-Cc1MWEFR.js} +3 -3
- package/dist/{node-operation-selection-DAbS6jSY.js → node-operation-selection-Czeeb2D4.js} +2 -139
- package/dist/node-registry-refresh-s3okf83X.js +27 -0
- package/dist/nodes.js +1 -1
- package/dist/notesKey-5EaREBGA.js +12 -0
- package/dist/observability.d.ts +1 -1
- package/dist/observability.js +2 -2
- package/dist/{popover-Xx3gN7vg.js → popover-DDv7J1Kl.js} +717 -6
- package/dist/{quick-config-panel-BvVQXuIL.js → quick-config-panel-BPCRfqWI.js} +4 -4
- package/dist/read-only-context-Dt9N9SIG.js +18 -0
- package/dist/{schedule-panel-DCb40TPN.js → schedule-panel-C1KwfLCE.js} +14 -12
- package/dist/settings.js +1 -1
- package/dist/{shared-CMfn30xT.js → shared-Ctl9ZHo1.js} +2 -1
- package/dist/{sidebar-node-editor-DxCWFZG2.js → sidebar-node-editor-d9Rlq5pU.js} +4 -4
- package/dist/sticky-notes-23j-wL6Q.js +96 -0
- package/dist/template-code-dqRunGOv.js +184 -0
- package/dist/template-preview-C01KV277.js +29 -0
- package/dist/templates.js +2 -2
- package/dist/token-refresh-link-BjN7H4qA.js +291 -0
- package/dist/useAgentDefinitions-ZKX2N9aP.js +3101 -0
- package/dist/useConnections-BlB0gbOB.js +931 -0
- package/dist/useDurableParity-BgLH_SCF.js +2088 -0
- package/dist/{useEntityTags-Db4Pc8_M.js → useEntityTags-4iW6UTly.js} +227 -3
- package/dist/{useExecutions-DOpG1pUQ.js → useExecutions-Bm7q_UwN.js} +6 -3
- package/dist/useGlobalStoreClient-DMTrywdX.js +24 -0
- package/dist/{useHumanRequests-ZiR0sSzS.js → useHumanRequests-DwG2tQ3f.js} +2 -1
- package/dist/{useObservability-rQmwhoZZ.js → useObservability-DPATdbw7.js} +4 -2
- package/dist/{useRunHistory-COn6dl7l.js → useRunHistory-CGfjCsJ3.js} +1122 -4
- package/dist/{useVariables-2ddyJX4a.js → useVariables-DFdZofLQ.js} +2 -1
- package/dist/{useWorkflowCodeExport-ZoUJKRSK.js → useWorkflowCodeExport-D_mCuhKP.js} +289 -4
- package/dist/useWorkflowOrganization-r5FWNBs6.js +1690 -0
- package/dist/useWorkflowProposal-Bh2_qjmM.js +7478 -0
- package/dist/{useWorkflows-jOW60YmD.js → useWorkflows-aqVD7kGa.js} +694 -4
- package/dist/workflow-builder.js +5 -5
- package/dist/{workflow-code-transfer-l9wO34S0.js → workflow-code-transfer-5C0HUzae.js} +1 -53
- package/dist/workflow-host.js +4 -2
- package/dist/workflow-pages.d.ts +1 -1
- package/dist/workflow-pages.js +19 -19
- package/dist/workflow-preview.js +3 -2
- package/dist/workflows-list.js +1 -1
- package/package.json +1 -1
- package/dist/FailureTriagePanel-BbYFYeV_.js +0 -311
- package/dist/WorkflowProposalCard-DGMdZC4R.js +0 -1432
- package/dist/agent-form-Bfvm32j1.js +0 -83
- package/dist/api-DQtHXbIg.js +0 -224
- package/dist/api-MeAm6g7E.js +0 -55
- package/dist/client-C9XSzSXr.js +0 -1147
- package/dist/graphql-operation-types-C9qbvRa8.js +0 -53122
- package/dist/useAgentDefinitions-_hgNCK1A.js +0 -550
- package/dist/useConnections-Cs7LCWEM.js +0 -401
- package/dist/useDurableParity-CcLeCDfv.js +0 -504
- package/dist/useWorkflowOrganization-QxVePSkk.js +0 -282
package/dist/workflow-builder.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { n as WorkflowBuilderCore, t as WorkflowBuilder } from "./WorkflowBuilder-
|
|
3
|
-
import { t as WorkflowBuilder$1 } from "./WorkflowBuilder-
|
|
4
|
-
import {
|
|
5
|
-
import { m as refetchStoreNodes } from "./FluidGridsProvider-
|
|
6
|
-
import { t as WorkflowSearchRedirect } from "./WorkflowSearchRedirect-
|
|
2
|
+
import { n as WorkflowBuilderCore, t as WorkflowBuilder } from "./WorkflowBuilder-v8h8skwG.js";
|
|
3
|
+
import { t as WorkflowBuilder$1 } from "./WorkflowBuilder-DMpSPElu.js";
|
|
4
|
+
import { M as useFlowStore } from "./node-operation-selection-Czeeb2D4.js";
|
|
5
|
+
import { m as refetchStoreNodes } from "./FluidGridsProvider-Dc_Jhtch.js";
|
|
6
|
+
import { t as WorkflowSearchRedirect } from "./WorkflowSearchRedirect-G78lINAE.js";
|
|
7
7
|
|
|
8
8
|
export { WorkflowBuilder, WorkflowBuilderCore, WorkflowBuilder$1 as WorkflowBuilderPage, WorkflowSearchRedirect, refetchStoreNodes, useFlowStore };
|
|
@@ -1,57 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { yn as useFluidGridsAnalytics } from "./FluidGridsProvider-C4FVNz0n.js";
|
|
3
|
-
import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
|
|
4
|
-
import { i as WORKFLOWS_QUOTA_NAME } from "./quota-Cdt8yz7N.js";
|
|
5
|
-
import { c as emitWorkflowLimitHit, o as emitUpgradeClicked } from "./fluidgridsEvents-Dm5CaHtr.js";
|
|
6
2
|
import { pf as FidelityLevel, rI as WorkflowExportFormat } from "./graphql-types-v6CTGwA0.js";
|
|
7
|
-
import { useEffect, useRef } from "react";
|
|
8
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
-
import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle } from "@burdenoff/fe-libs/ui";
|
|
10
|
-
|
|
11
|
-
// src/components/shared/QuotaExhaustedDialog.tsx
|
|
12
|
-
/**
|
|
13
|
-
* Alert shown when a workflow-creating action (save/duplicate/import) is
|
|
14
|
-
* rejected with `QUOTA_EXHAUSTED` for `fluidgrids.workflows.count`. Mirrors
|
|
15
|
-
* the "Folder Limit Reached" dialog in microfe-files' BrowserPage.tsx, built
|
|
16
|
-
* on the same `AlertDialog` primitives already used elsewhere in this SDK
|
|
17
|
-
* (see card-workflow.tsx's delete-confirmation dialog).
|
|
18
|
-
*/
|
|
19
|
-
function QuotaExhaustedDialog({ open, onOpenChange, onUpgrade, title, description, surface, limitHit = true }) {
|
|
20
|
-
const tr = useTr();
|
|
21
|
-
const { bus, workspaceId } = useFluidGridsAnalytics();
|
|
22
|
-
const wasOpen = useRef(false);
|
|
23
|
-
useEffect(() => {
|
|
24
|
-
if (open && !wasOpen.current && limitHit) emitWorkflowLimitHit(bus, {
|
|
25
|
-
workspaceId,
|
|
26
|
-
surface
|
|
27
|
-
});
|
|
28
|
-
wasOpen.current = open;
|
|
29
|
-
}, [
|
|
30
|
-
open,
|
|
31
|
-
bus,
|
|
32
|
-
workspaceId,
|
|
33
|
-
surface,
|
|
34
|
-
limitHit
|
|
35
|
-
]);
|
|
36
|
-
const handleUpgrade = () => {
|
|
37
|
-
emitUpgradeClicked(bus, {
|
|
38
|
-
workspaceId,
|
|
39
|
-
surface: "quota-dialog",
|
|
40
|
-
quotaKey: WORKFLOWS_QUOTA_NAME
|
|
41
|
-
});
|
|
42
|
-
onUpgrade();
|
|
43
|
-
};
|
|
44
|
-
const resolvedTitle = title ?? tr("fluidgrids.components.quotaExhaustedDialog.title", "Workflow Limit Reached");
|
|
45
|
-
const resolvedDescription = description ?? tr("fluidgrids.components.quotaExhaustedDialog.description", "You've reached the workflow limit for your plan. Upgrade your plan to create more workflows.");
|
|
46
|
-
return /* @__PURE__ */ jsx(AlertDialog, {
|
|
47
|
-
open,
|
|
48
|
-
onOpenChange,
|
|
49
|
-
children: /* @__PURE__ */ jsxs(AlertDialogContent, { children: [/* @__PURE__ */ jsxs(AlertDialogHeader, { children: [/* @__PURE__ */ jsx(AlertDialogTitle, { children: resolvedTitle }), /* @__PURE__ */ jsx(AlertDialogDescription, { children: resolvedDescription })] }), /* @__PURE__ */ jsxs(AlertDialogFooter, { children: [/* @__PURE__ */ jsx(AlertDialogCancel, { children: tr("fluidgrids.components.quotaExhaustedDialog.dismiss", "Dismiss") }), /* @__PURE__ */ jsx(AlertDialogAction, {
|
|
50
|
-
onClick: handleUpgrade,
|
|
51
|
-
children: tr("fluidgrids.components.quotaExhaustedDialog.viewPlans", "View plans")
|
|
52
|
-
})] })] })
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
3
|
|
|
56
4
|
// src/utils/workflow-code-transfer.ts
|
|
57
5
|
const CODE_EXPORT_FORMATS = [
|
|
@@ -372,4 +320,4 @@ function lineOfNode(source, nodeId) {
|
|
|
372
320
|
return null;
|
|
373
321
|
}
|
|
374
322
|
|
|
375
|
-
export {
|
|
323
|
+
export { sortFidelityItems as _, assertImportByteSize as a, utf8Length as b, fileBaseName as c, isLosslessReport as d, isLossyFidelityItem as f, readProjectArchive as g, primaryImportModule as h, MAX_IMPORT_SOURCE_BYTES as i, importAcceptAttribute as l, orderedExportFiles as m, ImportSourceError as n, buildExportDownload as o, lineOfNode as p, MAX_IMPORT_ARCHIVE_BYTES as r, checkTypeScriptImport as s, CODE_EXPORT_FORMATS as t, importFileKind as u, typeScriptImportSource as v, workflowNameFromFile as x, typeScriptModuleFile as y };
|
package/dist/workflow-host.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { c as setFluidGridsConfig, o as resetFluidGridsConfig, s as resetFluidGridsExecutionState } from "./config-X97zrIvn.js";
|
|
3
|
+
import { a as resetFluidGridsClient, o as setFluidGridsClient } from "./client-Ctl4jmY3.js";
|
|
4
|
+
import { a as setGlobalStoreClient, i as resetGlobalStoreClient } from "./global-client-DP_Wxe5t.js";
|
|
5
|
+
import { n as refreshNodeRegistry } from "./node-registry-refresh-s3okf83X.js";
|
|
4
6
|
import { n as FluidGridsTranslationProvider } from "./TranslationBridge-Da-TPgQm.js";
|
|
5
7
|
import { r as FluidGridsPermissionsProvider, t as FLUIDGRIDS_PERMISSIONS } from "./constants-dcxg6zG6.js";
|
|
6
8
|
import { t as ManagedAiPolicyAuthorityProvider } from "./ManagedAiPolicyAuthority-BxwJ3ptd.js";
|
package/dist/workflow-pages.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { n as WorkflowsList_d_exports } from "./WorkflowsList-CcNDQge5.js";
|
|
3
3
|
import { a as WorkflowSearchRedirect_d_exports, o as WorkflowBuilder } from "./index-f_Nl7Ons.js";
|
|
4
4
|
import { i as TemplatePreview_d_exports, n as TemplatesPage_d_exports } from "./TemplatesPage-BG3H-6v6.js";
|
|
5
|
-
import { DFa as InsightsPage_d_exports, EFa as InsightsPageProps, Pi as ApprovalInboxPage_d_exports, Wi as TaskQueuesPage_d_exports, YFa as AiStudioPage_d_exports, Yi as RunnersPage_d_exports, di as DataTablesPage_d_exports, kFa as DataSinkDashboardPage_d_exports, ya as VariablesPage_d_exports } from "./index-
|
|
5
|
+
import { DFa as InsightsPage_d_exports, EFa as InsightsPageProps, Pi as ApprovalInboxPage_d_exports, Wi as TaskQueuesPage_d_exports, YFa as AiStudioPage_d_exports, Yi as RunnersPage_d_exports, di as DataTablesPage_d_exports, kFa as DataSinkDashboardPage_d_exports, ya as VariablesPage_d_exports } from "./index-DtMUtXNq.js";
|
|
6
6
|
import { i as ExecutionsListPage_d_exports, n as ExecutionDetailPage_d_exports } from "./ExecutionDetailPage-DvQ667OE.js";
|
|
7
7
|
import { n as HistoryPage_d_exports } from "./HistoryPage-BLoRpJ1R.js";
|
|
8
8
|
import { n as NodesPage_d_exports } from "./NodesPage-DEbnz9iU.js";
|
package/dist/workflow-pages.js
CHANGED
|
@@ -54,25 +54,25 @@ function createWorkflowPages(importers) {
|
|
|
54
54
|
* loader, so it costs a host's first load about a kilobyte.
|
|
55
55
|
*/
|
|
56
56
|
const pages = createWorkflowPages({
|
|
57
|
-
WorkflowsList: () => import("./WorkflowsList-
|
|
58
|
-
WorkflowBuilderPage: () => import("./WorkflowBuilder-
|
|
59
|
-
WorkflowSearchRedirect: () => import("./WorkflowSearchRedirect-
|
|
60
|
-
TemplatePreview: () => import("./TemplatePreview-
|
|
61
|
-
AiStudioPage: () => import("./AiStudioPage-
|
|
62
|
-
ExecutionsListPage: () => import("./ExecutionsListPage
|
|
63
|
-
ExecutionDetailPage: () => import("./ExecutionDetailPage-
|
|
64
|
-
HistoryPage: () => import("./HistoryPage-
|
|
65
|
-
TemplatesPage: () => import("./TemplatesPage-
|
|
66
|
-
NodesPage: () => import("./NodesPage-
|
|
67
|
-
SettingsPage: () => import("./SettingsPage-
|
|
68
|
-
InsightsPage: () => import("./InsightsPage-
|
|
69
|
-
ErrorAnalyticsPage: () => import("./InsightsPage-
|
|
70
|
-
DataSinkDashboardPage: () => import("./DataSinkDashboardPage-
|
|
71
|
-
VariablesPage: () => import("./VariablesPage-
|
|
72
|
-
RunnersPage: () => import("./RunnersPage-
|
|
73
|
-
TaskQueuesPage: () => import("./TaskQueuesPage
|
|
74
|
-
ApprovalInboxPage: () => import("./ApprovalInboxPage-
|
|
75
|
-
DataTablesPage: () => import("./DataTablesPage-
|
|
57
|
+
WorkflowsList: () => import("./WorkflowsList-CPYzfE4K.js").then((n) => n.n),
|
|
58
|
+
WorkflowBuilderPage: () => import("./WorkflowBuilder-DMpSPElu.js").then((n) => n.n).then((m) => ({ WorkflowBuilderPage: m.WorkflowBuilder })),
|
|
59
|
+
WorkflowSearchRedirect: () => import("./WorkflowSearchRedirect-G78lINAE.js").then((n) => n.n),
|
|
60
|
+
TemplatePreview: () => import("./TemplatePreview-Bagja6WN.js").then((n) => n.n),
|
|
61
|
+
AiStudioPage: () => import("./AiStudioPage-5KYZ8r8-.js").then((n) => n.n),
|
|
62
|
+
ExecutionsListPage: () => import("./ExecutionsListPage--4BthM8L.js").then((n) => n.n),
|
|
63
|
+
ExecutionDetailPage: () => import("./ExecutionDetailPage-BXDF2eoT.js").then((n) => n.n),
|
|
64
|
+
HistoryPage: () => import("./HistoryPage-BvFk2m1m.js").then((n) => n.n),
|
|
65
|
+
TemplatesPage: () => import("./TemplatesPage-CAajpJ5w.js").then((n) => n.n),
|
|
66
|
+
NodesPage: () => import("./NodesPage-C5Dq-ru-.js").then((n) => n.n),
|
|
67
|
+
SettingsPage: () => import("./SettingsPage-CfjXiGpb.js").then((n) => n.n),
|
|
68
|
+
InsightsPage: () => import("./InsightsPage-Dwmb02F6.js").then((n) => n.r),
|
|
69
|
+
ErrorAnalyticsPage: () => import("./InsightsPage-Dwmb02F6.js").then((n) => n.r),
|
|
70
|
+
DataSinkDashboardPage: () => import("./DataSinkDashboardPage-8ZDn85e2.js").then((n) => n.n),
|
|
71
|
+
VariablesPage: () => import("./VariablesPage-CgUBKhAe.js").then((n) => n.n),
|
|
72
|
+
RunnersPage: () => import("./RunnersPage-DHeuUDil.js").then((n) => n.n),
|
|
73
|
+
TaskQueuesPage: () => import("./TaskQueuesPage--Mmn36b-.js").then((n) => n.r),
|
|
74
|
+
ApprovalInboxPage: () => import("./ApprovalInboxPage-BsJX4osU.js").then((n) => n.n),
|
|
75
|
+
DataTablesPage: () => import("./DataTablesPage-BBvABuxE.js").then((n) => n.n)
|
|
76
76
|
});
|
|
77
77
|
/** Every workflow page this entry exports. */
|
|
78
78
|
const WORKFLOW_PAGE_NAMES = pages.names;
|
package/dist/workflow-preview.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { t as canvasFromDefinition } from "./definition-canvas-
|
|
3
|
-
import {
|
|
2
|
+
import { t as canvasFromDefinition } from "./definition-canvas-DL25_6NH.js";
|
|
3
|
+
import { C as outputHandlesSpacerHeight, D as NodeCardBody, E as NodeCard, O as NodeCardHeader, P as isNodeTrigger, T as resolveOutputHandles, _ as InputHandles, g as LogicNodeCard, i as WAIT_FOR_SIGNAL_NODE_TYPE, m as readSignalName, r as CODE_WORKFLOW_NODE_TYPE, t as resolveOperationName, v as OutputHandles, w as resolveInputHandles, x as landingSourceHandle } from "./node-operation-selection-Czeeb2D4.js";
|
|
4
|
+
import { l as STICKY_NOTE_TYPE } from "./sticky-notes-23j-wL6Q.js";
|
|
4
5
|
import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
|
|
5
6
|
import { memo, useCallback, useEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
|
|
6
7
|
import { Background, MarkerType, ReactFlow, ReactFlowProvider, getBezierPath, useReactFlow, useStore } from "@xyflow/react";
|
package/dist/workflows-list.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { t as WorkflowsList } from "./WorkflowsList-
|
|
2
|
+
import { t as WorkflowsList } from "./WorkflowsList-CPYzfE4K.js";
|
|
3
3
|
import { n as ACTION_PARAM_VALUES, t as ACTION_PARAM } from "./useActionParam-B0ebTZmg.js";
|
|
4
4
|
|
|
5
5
|
export { ACTION_PARAM, ACTION_PARAM_VALUES, WorkflowsList };
|
package/package.json
CHANGED
|
@@ -1,311 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
|
|
3
|
-
import { _ as throwIfResultError, n as getFluidGridsClient } from "./client-C9XSzSXr.js";
|
|
4
|
-
import { Mn as SetRunFailureTriageEnabledDocument, _t as FgTriageFailedRunsDocument, bn as RunFailureTriageSettingsDocument, tt as DismissRunFailureClusterDocument, yn as RunFailureClustersDocument } from "./graphql-operation-types-C9qbvRa8.js";
|
|
5
|
-
import { qD as RunFailureClusterStatus } from "./graphql-types-v6CTGwA0.js";
|
|
6
|
-
import { useCallback, useEffect, useState } from "react";
|
|
7
|
-
import { Icon } from "@iconify/react";
|
|
8
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
-
import { Button } from "@burdenoff/fe-libs/ui";
|
|
10
|
-
|
|
11
|
-
// src/modules/observability/hooks/useFailureTriage.ts
|
|
12
|
-
/**
|
|
13
|
-
* Failure triage (BOFF-3698): the opt-in, the caller's failure clusters and a
|
|
14
|
-
* manual triage pass. Clusters are built from the caller's own runs only.
|
|
15
|
-
*/
|
|
16
|
-
/** Clusters that still need a decision. */
|
|
17
|
-
const OPEN_STATUSES = ["OPEN", "PROPOSED"];
|
|
18
|
-
function messageOf(error) {
|
|
19
|
-
return error instanceof Error ? error.message : String(error);
|
|
20
|
-
}
|
|
21
|
-
/** The caller's clusters, optionally only those that include one run. */
|
|
22
|
-
async function fetchRunFailureClusters(variables) {
|
|
23
|
-
return throwIfResultError(await getFluidGridsClient().query({
|
|
24
|
-
query: RunFailureClustersDocument,
|
|
25
|
-
variables,
|
|
26
|
-
fetchPolicy: "network-only"
|
|
27
|
-
})).data?.runFailureClusters.items ?? [];
|
|
28
|
-
}
|
|
29
|
-
async function dismissRunFailureCluster(id) {
|
|
30
|
-
throwIfResultError(await getFluidGridsClient().mutate({
|
|
31
|
-
mutation: DismissRunFailureClusterDocument,
|
|
32
|
-
variables: { id }
|
|
33
|
-
}));
|
|
34
|
-
}
|
|
35
|
-
function useFailureTriage() {
|
|
36
|
-
const [settings, setSettings] = useState(null);
|
|
37
|
-
const [clusters, setClusters] = useState([]);
|
|
38
|
-
const [loading, setLoading] = useState(true);
|
|
39
|
-
const [busy, setBusy] = useState(false);
|
|
40
|
-
const [error, setError] = useState(null);
|
|
41
|
-
const [lastRun, setLastRun] = useState(null);
|
|
42
|
-
const refetch = useCallback(async () => {
|
|
43
|
-
setLoading(true);
|
|
44
|
-
setError(null);
|
|
45
|
-
try {
|
|
46
|
-
const [settingsResult, items] = await Promise.all([getFluidGridsClient().query({
|
|
47
|
-
query: RunFailureTriageSettingsDocument,
|
|
48
|
-
fetchPolicy: "network-only"
|
|
49
|
-
}), fetchRunFailureClusters({
|
|
50
|
-
filter: { status: OPEN_STATUSES },
|
|
51
|
-
limit: 20
|
|
52
|
-
})]);
|
|
53
|
-
setSettings(throwIfResultError(settingsResult).data?.runFailureTriageSettings ?? null);
|
|
54
|
-
setClusters(items);
|
|
55
|
-
} catch (loadError) {
|
|
56
|
-
setError(messageOf(loadError));
|
|
57
|
-
} finally {
|
|
58
|
-
setLoading(false);
|
|
59
|
-
}
|
|
60
|
-
}, []);
|
|
61
|
-
useEffect(() => {
|
|
62
|
-
refetch();
|
|
63
|
-
}, [refetch]);
|
|
64
|
-
return {
|
|
65
|
-
settings,
|
|
66
|
-
clusters,
|
|
67
|
-
loading,
|
|
68
|
-
busy,
|
|
69
|
-
error,
|
|
70
|
-
lastRun,
|
|
71
|
-
refetch,
|
|
72
|
-
setEnabled: useCallback(async (enabled) => {
|
|
73
|
-
setBusy(true);
|
|
74
|
-
setError(null);
|
|
75
|
-
try {
|
|
76
|
-
const result = throwIfResultError(await getFluidGridsClient().mutate({
|
|
77
|
-
mutation: SetRunFailureTriageEnabledDocument,
|
|
78
|
-
variables: { enabled }
|
|
79
|
-
}));
|
|
80
|
-
setSettings(result.data?.setRunFailureTriageEnabled ?? null);
|
|
81
|
-
} catch (toggleError) {
|
|
82
|
-
setError(messageOf(toggleError));
|
|
83
|
-
} finally {
|
|
84
|
-
setBusy(false);
|
|
85
|
-
}
|
|
86
|
-
}, []),
|
|
87
|
-
runNow: useCallback(async () => {
|
|
88
|
-
setBusy(true);
|
|
89
|
-
setError(null);
|
|
90
|
-
try {
|
|
91
|
-
const result = throwIfResultError(await getFluidGridsClient().mutate({
|
|
92
|
-
mutation: FgTriageFailedRunsDocument,
|
|
93
|
-
variables: {}
|
|
94
|
-
}));
|
|
95
|
-
setLastRun(result.data?.fgTriageFailedRuns ?? null);
|
|
96
|
-
setClusters(await fetchRunFailureClusters({
|
|
97
|
-
filter: { status: OPEN_STATUSES },
|
|
98
|
-
limit: 20
|
|
99
|
-
}));
|
|
100
|
-
} catch (runError) {
|
|
101
|
-
setError(messageOf(runError));
|
|
102
|
-
} finally {
|
|
103
|
-
setBusy(false);
|
|
104
|
-
}
|
|
105
|
-
}, []),
|
|
106
|
-
dismiss: useCallback(async (id) => {
|
|
107
|
-
setError(null);
|
|
108
|
-
try {
|
|
109
|
-
await dismissRunFailureCluster(id);
|
|
110
|
-
setClusters((current) => current.filter((cluster) => cluster.id !== id));
|
|
111
|
-
} catch (dismissError) {
|
|
112
|
-
setError(messageOf(dismissError));
|
|
113
|
-
}
|
|
114
|
-
}, [])
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
// src/modules/observability/components/FailureTriagePanel.tsx
|
|
119
|
-
/**
|
|
120
|
-
* Insights: Failure triage (BOFF-3698).
|
|
121
|
-
*
|
|
122
|
-
* Failure triage is an opt-in, hourly FluidGrids workflow that groups this
|
|
123
|
-
* workspace's failed production runs into clusters, leaves transient failures
|
|
124
|
-
* to the retry, prepares an AI fix proposal for each new cluster and tells the
|
|
125
|
-
* person the runs ran as. It only proposes: nothing changes until someone
|
|
126
|
-
* applies a proposal on the run page. This panel turns it on and off and lists
|
|
127
|
-
* the caller's open clusters.
|
|
128
|
-
*/
|
|
129
|
-
const BUCKET_LABELS = {
|
|
130
|
-
EXPIRED_CONNECTION: {
|
|
131
|
-
label: "Expired connection",
|
|
132
|
-
icon: "mdi:key-alert-outline"
|
|
133
|
-
},
|
|
134
|
-
CONNECTOR_CONTRACT_CHANGE: {
|
|
135
|
-
label: "Connector change",
|
|
136
|
-
icon: "mdi:swap-horizontal"
|
|
137
|
-
},
|
|
138
|
-
BAD_NODE_CONFIG: {
|
|
139
|
-
label: "Node configuration",
|
|
140
|
-
icon: "mdi:cog-outline"
|
|
141
|
-
},
|
|
142
|
-
UPSTREAM_TRANSIENT: {
|
|
143
|
-
label: "Transient",
|
|
144
|
-
icon: "mdi:weather-cloudy-alert"
|
|
145
|
-
},
|
|
146
|
-
UNKNOWN: {
|
|
147
|
-
label: "Unclassified",
|
|
148
|
-
icon: "mdi:help-circle-outline"
|
|
149
|
-
}
|
|
150
|
-
};
|
|
151
|
-
function ClusterRow({ cluster, canRetry, onOpenRun, onRetry, onDismiss }) {
|
|
152
|
-
const tr = useTr();
|
|
153
|
-
const bucket = BUCKET_LABELS[String(cluster.bucket)] ?? {
|
|
154
|
-
label: String(cluster.bucket),
|
|
155
|
-
icon: "mdi:alert-outline"
|
|
156
|
-
};
|
|
157
|
-
return /* @__PURE__ */ jsx("li", {
|
|
158
|
-
className: "rounded-lg border border-border-secondary bg-background-primary p-3",
|
|
159
|
-
"data-testid": "failure-cluster",
|
|
160
|
-
"data-bucket": String(cluster.bucket),
|
|
161
|
-
children: /* @__PURE__ */ jsxs("div", {
|
|
162
|
-
className: "flex flex-col gap-2 sm:flex-row sm:items-start sm:justify-between",
|
|
163
|
-
children: [/* @__PURE__ */ jsxs("div", {
|
|
164
|
-
className: "min-w-0",
|
|
165
|
-
children: [
|
|
166
|
-
/* @__PURE__ */ jsxs("div", {
|
|
167
|
-
className: "flex flex-wrap items-center gap-2 text-sm",
|
|
168
|
-
children: [
|
|
169
|
-
/* @__PURE__ */ jsxs("span", {
|
|
170
|
-
className: "inline-flex items-center gap-1 rounded-full bg-background-secondary px-2 py-0.5 text-xs text-text-secondary",
|
|
171
|
-
children: [/* @__PURE__ */ jsx(Icon, {
|
|
172
|
-
icon: bucket.icon,
|
|
173
|
-
width: 14
|
|
174
|
-
}), tr(`fluidgrids.triage.bucket.${String(cluster.bucket)}`, bucket.label)]
|
|
175
|
-
}),
|
|
176
|
-
/* @__PURE__ */ jsx("span", {
|
|
177
|
-
className: "font-medium text-text-primary",
|
|
178
|
-
children: cluster.workflowName || cluster.workflowKey
|
|
179
|
-
}),
|
|
180
|
-
/* @__PURE__ */ jsx("span", {
|
|
181
|
-
className: "text-text-secondary",
|
|
182
|
-
children: tr("fluidgrids.triage.atNode", "at {{node}}", { node: cluster.nodeId })
|
|
183
|
-
})
|
|
184
|
-
]
|
|
185
|
-
}),
|
|
186
|
-
/* @__PURE__ */ jsx("p", {
|
|
187
|
-
className: "mt-1 break-words text-sm text-text-secondary",
|
|
188
|
-
children: cluster.signature
|
|
189
|
-
}),
|
|
190
|
-
/* @__PURE__ */ jsxs("p", {
|
|
191
|
-
className: "mt-1 text-xs text-text-secondary",
|
|
192
|
-
children: [tr("fluidgrids.triage.runCount", "{{count}} failed run(s), last {{when}}", {
|
|
193
|
-
count: cluster.runCount,
|
|
194
|
-
when: new Date(String(cluster.lastSeenAt)).toLocaleString()
|
|
195
|
-
}), cluster.proposalId ? ` · ${tr("fluidgrids.triage.proposalReady", "Fix proposal ready to review")}` : ""]
|
|
196
|
-
}),
|
|
197
|
-
/* @__PURE__ */ jsx("p", {
|
|
198
|
-
className: "mt-1 text-xs text-text-primary",
|
|
199
|
-
children: cluster.advice
|
|
200
|
-
})
|
|
201
|
-
]
|
|
202
|
-
}), /* @__PURE__ */ jsxs("div", {
|
|
203
|
-
className: "flex shrink-0 flex-wrap gap-2",
|
|
204
|
-
children: [
|
|
205
|
-
/* @__PURE__ */ jsx(Button, {
|
|
206
|
-
size: "sm",
|
|
207
|
-
variant: "outline",
|
|
208
|
-
onClick: () => onOpenRun(cluster.lastRunId),
|
|
209
|
-
"data-testid": "failure-cluster-open",
|
|
210
|
-
children: cluster.proposalId ? tr("fluidgrids.triage.reviewFix", "Review fix") : tr("fluidgrids.triage.openRun", "Open run")
|
|
211
|
-
}),
|
|
212
|
-
canRetry && /* @__PURE__ */ jsx(Button, {
|
|
213
|
-
size: "sm",
|
|
214
|
-
variant: "outline",
|
|
215
|
-
onClick: () => onRetry([cluster.lastRunId]),
|
|
216
|
-
children: tr("fluidgrids.triage.retry", "Retry")
|
|
217
|
-
}),
|
|
218
|
-
/* @__PURE__ */ jsx(Button, {
|
|
219
|
-
size: "sm",
|
|
220
|
-
variant: "ghost",
|
|
221
|
-
onClick: () => onDismiss(cluster.id),
|
|
222
|
-
"data-testid": "failure-cluster-dismiss",
|
|
223
|
-
children: tr("fluidgrids.triage.dismiss", "Dismiss")
|
|
224
|
-
})
|
|
225
|
-
]
|
|
226
|
-
})]
|
|
227
|
-
})
|
|
228
|
-
});
|
|
229
|
-
}
|
|
230
|
-
function FailureTriagePanel({ canManage, canRetry, onOpenRun, onRetry }) {
|
|
231
|
-
const tr = useTr();
|
|
232
|
-
const triage = useFailureTriage();
|
|
233
|
-
const enabled = triage.settings?.enabled ?? false;
|
|
234
|
-
return /* @__PURE__ */ jsxs("section", {
|
|
235
|
-
className: "mb-6 rounded-xl border border-border-secondary bg-background-secondary p-4",
|
|
236
|
-
"data-testid": "failure-triage-panel",
|
|
237
|
-
children: [
|
|
238
|
-
/* @__PURE__ */ jsxs("div", {
|
|
239
|
-
className: "flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between",
|
|
240
|
-
children: [/* @__PURE__ */ jsxs("div", { children: [
|
|
241
|
-
/* @__PURE__ */ jsxs("h2", {
|
|
242
|
-
className: "flex items-center gap-2 text-base font-semibold text-text-primary",
|
|
243
|
-
children: [/* @__PURE__ */ jsx(Icon, {
|
|
244
|
-
icon: "mdi:stethoscope",
|
|
245
|
-
width: 18
|
|
246
|
-
}), tr("fluidgrids.triage.title", "Failure triage")]
|
|
247
|
-
}),
|
|
248
|
-
/* @__PURE__ */ jsx("p", {
|
|
249
|
-
className: "mt-1 max-w-2xl text-sm text-text-secondary",
|
|
250
|
-
children: tr("fluidgrids.triage.description", "Every hour, groups failed production runs, leaves temporary failures to the retry and prepares a fix proposal for you to review. It never changes a workflow on its own.")
|
|
251
|
-
}),
|
|
252
|
-
/* @__PURE__ */ jsxs("p", {
|
|
253
|
-
className: "mt-1 text-xs text-text-secondary",
|
|
254
|
-
"data-testid": "failure-triage-status",
|
|
255
|
-
children: [
|
|
256
|
-
enabled ? tr("fluidgrids.triage.on", "On") : tr("fluidgrids.triage.off", "Off"),
|
|
257
|
-
triage.settings?.lastTickAt ? ` · ${tr("fluidgrids.triage.lastRun", "last run {{when}}", { when: new Date(String(triage.settings.lastTickAt)).toLocaleString() })}` : "",
|
|
258
|
-
triage.settings && !triage.settings.killSwitchOn ? ` · ${tr("fluidgrids.triage.paused", "paused for this workspace")}` : ""
|
|
259
|
-
]
|
|
260
|
-
})
|
|
261
|
-
] }), canManage && /* @__PURE__ */ jsxs("div", {
|
|
262
|
-
className: "flex shrink-0 flex-wrap gap-2",
|
|
263
|
-
children: [enabled && /* @__PURE__ */ jsx(Button, {
|
|
264
|
-
size: "sm",
|
|
265
|
-
variant: "outline",
|
|
266
|
-
onClick: () => void triage.runNow(),
|
|
267
|
-
disabled: triage.busy,
|
|
268
|
-
"data-testid": "failure-triage-run-now",
|
|
269
|
-
children: tr("fluidgrids.triage.runNow", "Run now")
|
|
270
|
-
}), /* @__PURE__ */ jsx(Button, {
|
|
271
|
-
size: "sm",
|
|
272
|
-
variant: enabled ? "outline" : "default",
|
|
273
|
-
onClick: () => void triage.setEnabled(!enabled),
|
|
274
|
-
disabled: triage.busy || triage.loading,
|
|
275
|
-
"data-testid": "failure-triage-toggle",
|
|
276
|
-
children: enabled ? tr("fluidgrids.triage.turnOff", "Turn off") : tr("fluidgrids.triage.turnOn", "Turn on")
|
|
277
|
-
})]
|
|
278
|
-
})]
|
|
279
|
-
}),
|
|
280
|
-
triage.error && /* @__PURE__ */ jsx("p", {
|
|
281
|
-
className: "mt-3 text-sm text-status-error-text",
|
|
282
|
-
children: triage.error
|
|
283
|
-
}),
|
|
284
|
-
triage.lastRun && !triage.lastRun.skipped && /* @__PURE__ */ jsx("p", {
|
|
285
|
-
className: "mt-3 text-xs text-text-secondary",
|
|
286
|
-
children: tr("fluidgrids.triage.lastRunSummary", "Checked {{scanned}} failed run(s): {{created}} new cluster(s), {{suppressed}} left to the retry.", {
|
|
287
|
-
scanned: triage.lastRun.scannedRuns,
|
|
288
|
-
created: triage.lastRun.newClusterCount,
|
|
289
|
-
suppressed: triage.lastRun.suppressedTransient
|
|
290
|
-
})
|
|
291
|
-
}),
|
|
292
|
-
triage.clusters.length > 0 ? /* @__PURE__ */ jsx("ul", {
|
|
293
|
-
className: "mt-4 space-y-2",
|
|
294
|
-
"data-testid": "failure-cluster-list",
|
|
295
|
-
children: triage.clusters.map((cluster) => /* @__PURE__ */ jsx(ClusterRow, {
|
|
296
|
-
cluster,
|
|
297
|
-
canRetry,
|
|
298
|
-
onOpenRun,
|
|
299
|
-
onRetry,
|
|
300
|
-
onDismiss: (id) => void triage.dismiss(id)
|
|
301
|
-
}, cluster.id))
|
|
302
|
-
}) : !triage.loading && /* @__PURE__ */ jsx("p", {
|
|
303
|
-
className: "mt-4 text-sm text-text-secondary",
|
|
304
|
-
"data-testid": "failure-triage-empty",
|
|
305
|
-
children: enabled ? tr("fluidgrids.triage.empty", "No repeated failures need attention.") : tr("fluidgrids.triage.emptyOff", "Turn failure triage on to have repeated failures grouped and explained here.")
|
|
306
|
-
})
|
|
307
|
-
]
|
|
308
|
-
});
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
export { fetchRunFailureClusters as a, dismissRunFailureCluster as i, FailureTriagePanel as n, OPEN_STATUSES as r, BUCKET_LABELS as t };
|