@burdenoff/fluidgrids-fe-sdk 2026.1111.16 → 2026.1111.18
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 +41 -0
- package/dist/AiStudioPage-BHVEU4Wp.js +774 -0
- package/dist/ApprovalInboxPage-dbBDSJ-f.js +558 -0
- package/dist/DataSinkDashboardPage-1h2QsMzH.js +270 -0
- package/dist/DataTablesPage-BZy2z0LB.js +1690 -0
- package/dist/EntityTagPicker-BqRNsLCQ.js +135 -0
- package/dist/{ExecutionDetailPage-D-0_POAf.js → ExecutionDetailPage-BdcZmLT4.js} +799 -4420
- package/dist/ExecutionDetailPage-DvQ667OE.d.ts +10 -0
- package/dist/ExecutionsListPage-BCUJoAIE.js +2742 -0
- package/dist/{FailureTriagePanel-BHiduL7A.js → FailureTriagePanel-B9hDQymi.js} +4 -97
- package/dist/{FluidGridsProvider-DmvFADFa.js → FluidGridsProvider-dvZSNtSW.js} +10 -350
- package/dist/HistoryPage-BLoRpJ1R.d.ts +6 -0
- package/dist/{HistoryPage-BbUgxx1I.js → HistoryPage-U0tqupBN.js} +6 -4
- package/dist/HumanRequestCard-D-ooVPDn.js +439 -0
- package/dist/{InsightsPage-s6f5bU-8.js → InsightsPage-CALo16eB.js} +17 -328
- package/dist/ManagedAiPolicyAuthority-BxwJ3ptd.js +40 -0
- package/dist/{ManagedAiPolicyAuthority-CGux_DaV.d.ts → ManagedAiPolicyAuthority-DM3t3wNr.d.ts} +1 -5
- package/dist/ManagedAiPolicyAuthorityContext-CNkxIOZ1.js +10 -0
- package/dist/{MissingNodesInstallModal-B-9gHy2K.js → MissingNodesInstallModal-CMybsI8h.js} +3 -2
- package/dist/{NodesPage-ClvhUfbh.js → NodesPage-Bf5PhfBK.js} +7 -3
- package/dist/NodesPage-DEbnz9iU.d.ts +6 -0
- package/dist/{PublishCustomNodeAction-D2F7oN0S.js → PublishCustomNodeAction-5XXnSA3H.js} +3 -45
- package/dist/QuotaExhaustedDialog-7IFSaLyi.js +54 -0
- package/dist/RunnerStatusPill-Ctg4TJcP.js +187 -0
- package/dist/RunnersPage-CLCOCclc.js +467 -0
- package/dist/{ManagedAiPolicyAuthority-DsSaz-vg.js → SettingsPage-CJLZvv4J.js} +743 -773
- package/dist/SettingsPage-DMHQFj5-.d.ts +9 -0
- package/dist/TagFilterSelect-DCBOH6Ou.js +41 -0
- package/dist/TaskQueuesPage-9VgSnLdL.js +951 -0
- package/dist/TemplateCard-DsC0KNH1.js +1416 -0
- package/dist/{TemplateConfigurationModal-D_Mvgxqa.js → TemplateConfigurationModal-BhGWIzpm.js} +3 -2
- package/dist/{TemplateDetailPanel-DfFfUcOe.js → TemplateDetailPanel-D4cUVr-m.js} +3 -3
- package/dist/TemplatePreview-FayF6jxh.js +231 -0
- package/dist/TemplatesPage-BG3H-6v6.d.ts +10 -0
- package/dist/{TemplatesPage-Cku13bav.js → TemplatesPage-CsDNT54N.js} +11 -228
- package/dist/VariablesPage-67WR_lVE.js +949 -0
- package/dist/{VersionDiffDialog-Dq2xlPFI.js → VersionDiffDialog-DSN0mU0f.js} +2 -1
- package/dist/WorkflowBuilder-CPnXEL5J.js +555 -0
- package/dist/{WorkflowSearchRedirect-CaoOOpEl.js → WorkflowBuilder-YXRysvZc.js} +19 -585
- package/dist/{WorkflowProposalCard-8Vr56kQa.js → WorkflowProposalCard-qrEeNyYG.js} +4 -405
- package/dist/WorkflowSearchRedirect-DwDNZ_q5.js +36 -0
- package/dist/WorkflowShareDialog-mbIwRQUY.js +168 -0
- package/dist/WorkflowsList-CcNDQge5.d.ts +6 -0
- package/dist/{WorkflowsList-B2j1Pehb.js → WorkflowsList-DiiGyZkT.js} +12 -6
- package/dist/agent-form-Bfvm32j1.js +83 -0
- package/dist/{agentTools-DJ5o2ekg.js → agentTools-8s_25Q_F.js} +3 -2
- package/dist/{ai-usage-D5p7ZeRR.js → ai-usage-glCwHyQz.js} +1 -1
- package/dist/api-BrCHB5oA.js +224 -0
- package/dist/api-C8e0iV-Q.js +55 -0
- package/dist/button-DG7y_FVJ.js +48 -0
- package/dist/{canvasNoteTools-D3zUdEeg.js → canvasNoteTools-B6pYARgU.js} +2 -2
- package/dist/client-C9XSzSXr.js +1147 -0
- package/dist/code-editor-field-9-GdVE_8.js +111 -0
- package/dist/{codec-client-DstqyzTN.js → codec-client-CJ95Rmqo.js} +1 -1
- package/dist/constants-B2lhWNoN.js +202 -0
- package/dist/constants-XdvUxeWK.d.ts +162 -0
- package/dist/dialog-Cjb4lB4D.js +105 -0
- package/dist/executions.d.ts +1 -1
- package/dist/executions.js +2 -1
- package/dist/feature-flags-DM5myWaD.js +296 -0
- package/dist/flags.d.ts +3 -0
- package/dist/flags.js +4 -0
- package/dist/{flow-builder-DEzT8TQu.js → flow-builder-CZDKRc6f.js} +662 -10716
- package/dist/{node-endpoint-configs-DHFGA5MQ.js → graphql-operation-types-kX-MMjgW.js} +1 -1194
- package/dist/{graphql-types-XcDLtFwU.js → graphql-types-CDKVWH2R.js} +2 -202
- package/dist/history.d.ts +1 -1
- package/dist/history.js +1 -1
- package/dist/{index-DRf25-D3.d.ts → index-6JR2vD9J.d.ts} +33 -215
- package/dist/index-72XFgvbn.d.ts +132 -0
- package/dist/index-BcdtKBM-.d.ts +56 -0
- package/dist/{index-B3BWqafN.d.ts → index-DjiFgEQl.d.ts} +5 -131
- package/dist/index.d.ts +13 -9
- package/dist/index.js +52 -5300
- package/dist/{node-detail-view-LNqeIqN-.js → node-detail-view-CV4ZRwqh.js} +13 -8
- package/dist/node-editor-tab-body-DU-dh35X.js +174 -0
- package/dist/node-endpoint-configs-B5bjNMDW.js +37 -0
- package/dist/node-registry-refresh-Dy0uRg9f.js +84 -0
- package/dist/nodes.d.ts +1 -1
- package/dist/nodes.js +1 -1
- package/dist/observability.d.ts +1 -1
- package/dist/observability.js +2 -1
- package/dist/popover-BJHvrFGR.js +472 -0
- package/dist/{quick-config-panel-D3ogsaFL.js → quick-config-panel-ws3pLvbt.js} +3 -2
- package/dist/rolldown-runtime-hDbaFkMy.js +18 -0
- package/dist/run-display-BycKYSU0.js +46 -0
- package/dist/run-list-links-ByYC0OlV.js +98 -0
- package/dist/schedule-panel-C0mfGQSD.js +7542 -0
- package/dist/settings.d.ts +2 -1
- package/dist/settings.js +2 -1
- package/dist/shared-CMfn30xT.js +196 -0
- package/dist/sidebar-node-editor-CR1PiZO-.js +177 -0
- package/dist/templates.d.ts +1 -1
- package/dist/templates.js +2 -1
- package/dist/theme-provider-B3mIuz2d.js +11 -0
- package/dist/{useAgentDefinitions-NFtLytDR.js → useAgentDefinitions-B0dam3_o.js} +3 -397
- package/dist/useConnections-Cs7LCWEM.js +401 -0
- package/dist/useDurableParity-CzUQMFJ3.js +415 -0
- package/dist/useEntityTags-DhnsZcTl.js +236 -0
- package/dist/{useExecutions-DAzeWHS6.js → useExecutions-9aLuOt1c.js} +4 -3
- package/dist/{useObservability-COCZ0hUS.js → useObservability-CfEw3ZFD.js} +2 -2
- package/dist/{useRunHistory-CsYUbouO.js → useRunHistory-B1xJDwl1.js} +4 -3
- package/dist/{WorkflowShareDialog-6RRDe-_v.js → useWorkflowCodeExport-Bu2QYJzA.js} +7 -210
- package/dist/{useWorkflows-w4Dx2fF2.js → useWorkflows-BlVVu8NM.js} +3 -2
- package/dist/utils-uaL5UVxb.js +65 -0
- package/dist/workflow-builder.d.ts +1 -1
- package/dist/workflow-builder.js +4 -2
- package/dist/workflow-host.d.ts +6 -0
- package/dist/workflow-host.js +9 -0
- package/dist/workflow-pages.d.ts +55 -0
- package/dist/workflow-pages.js +113 -0
- package/dist/workflows-list.d.ts +1 -1
- package/dist/workflows-list.js +1 -1
- package/package.json +13 -1
- package/dist/ExecutionDetailPage-MvsnOnE1.d.ts +0 -4
- package/dist/HistoryPage-BqUizaFv.d.ts +0 -3
- package/dist/NodesPage-C97-9K2Y.d.ts +0 -3
- package/dist/TemplatesPage-D0qnXzHh.d.ts +0 -4
- package/dist/WorkflowsList-0d5GSKdh.d.ts +0 -3
- package/dist/agent-form-BvMWhQ42.js +0 -496
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
|
|
3
3
|
import { H as useFlowStore, a as changedSourceFiles, c as diagnosticsByPath, d as isEditableSourcePath, f as projectLanguage, h as sourceLanguageOf, l as interfaceFields, o as childRunIdOf, p as readCodeWorkflowState, r as CODE_WORKFLOW_NODE_TYPE, s as defaultSourcePath, u as interfaceHandlers } from "./node-operation-selection--oy-yEq_.js";
|
|
4
|
-
import { G as nodeSubtitle, K as nodeTitle,
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
4
|
+
import { G as nodeSubtitle, K as nodeTitle, Mn as getNodeDetail, X as useNodeConfig, _n as clearCodeWorkflowDefinitionCache, ct as latestNodeLog, dt as useGuardedNavigate, ot as FieldTree, rn as useNodeExecution, un as fieldsFromValue, xn as declaredSignals, yn as useCodeWorkflowInterface } from "./FluidGridsProvider-dvZSNtSW.js";
|
|
5
|
+
import { a as TabButton, c as NDV_Z_INDEX, i as ReadOnlyFieldset, n as SchedulePanel, o as NodeSettingsPanel, r as NodeExecutionActions, s as NodeParamsForm, t as SCHEDULE_NODE_TYPE } from "./schedule-panel-C0mfGQSD.js";
|
|
6
|
+
import { _ as throwIfResultError, m as describeOperationError, n as getFluidGridsClient, r as getFluidGridsClientSafe } from "./client-C9XSzSXr.js";
|
|
7
|
+
import { Mt as NodeStatesDocument, Tr as WorkflowCodeSourceDocument, ht as FileDownloadUrlDocument, jr as WorkflowEditLeaseStatusDocument, p as BuildWorkflowCodeDocument } from "./graphql-operation-types-kX-MMjgW.js";
|
|
8
|
+
import { v as JsonView, y as TableView } from "./flow-builder-CZDKRc6f.js";
|
|
9
|
+
import { jt as useUnpinNodeDataMutation, qt as useWorkflowPinnedDataQuery, st as usePinNodeDataMutation } from "./useAgentDefinitions-B0dam3_o.js";
|
|
10
|
+
import { f as usePhaseCFlags, s as useDurableFunctionNodesEnabled } from "./feature-flags-DM5myWaD.js";
|
|
11
|
+
import { s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-B2lhWNoN.js";
|
|
12
|
+
import { t as CodeEditorField } from "./code-editor-field-9-GdVE_8.js";
|
|
13
|
+
import { h as fetchCodeBundleSdk } from "./api-BrCHB5oA.js";
|
|
14
|
+
import { n as SignalRunDialog, s as RunHistoryView, t as useRunHistory } from "./useRunHistory-B1xJDwl1.js";
|
|
15
|
+
import { s as isAgentNodeType } from "./agent-form-Bfvm32j1.js";
|
|
16
|
+
import { n as agentTracePath } from "./ai-usage-glCwHyQz.js";
|
|
12
17
|
import * as React$1 from "react";
|
|
13
18
|
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
14
19
|
import { useNavigate } from "react-router";
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { H as useFlowStore } from "./node-operation-selection--oy-yEq_.js";
|
|
3
|
+
import { K as nodeTitle, ot as FieldTree } from "./FluidGridsProvider-dvZSNtSW.js";
|
|
4
|
+
import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
|
|
5
|
+
import { f as usePhaseCFlags } from "./feature-flags-DM5myWaD.js";
|
|
6
|
+
import { s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-B2lhWNoN.js";
|
|
7
|
+
import { a as TabButton, i as ReadOnlyFieldset, n as SchedulePanel, o as NodeSettingsPanel, s as NodeParamsForm, t as SCHEDULE_NODE_TYPE } from "./schedule-panel-C0mfGQSD.js";
|
|
8
|
+
import { useState } from "react";
|
|
9
|
+
import { Icon } from "@iconify/react";
|
|
10
|
+
import { cn } from "@burdenoff/fe-libs/utils";
|
|
11
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
12
|
+
|
|
13
|
+
// src/builder/components/ndv/node-input-fields.tsx
|
|
14
|
+
/**
|
|
15
|
+
* The input-data mapper body: pick the upstream node, then drag its declared
|
|
16
|
+
* output fields onto a parameter. Shared by the quick panel's flyout and the
|
|
17
|
+
* sidebar node editor so the two can't drift (BOFF-11325).
|
|
18
|
+
*/
|
|
19
|
+
function NodeInputFields({ config, testIdPrefix }) {
|
|
20
|
+
const tr = useTr();
|
|
21
|
+
const { nodes, sourceIds, selectedSource, setSelectedSource, inputFields } = config;
|
|
22
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
23
|
+
/* @__PURE__ */ jsxs("div", {
|
|
24
|
+
className: "flex shrink-0 items-center gap-2 border-b border-border px-3 py-2",
|
|
25
|
+
children: [
|
|
26
|
+
/* @__PURE__ */ jsx(Icon, {
|
|
27
|
+
icon: "mdi:tray-arrow-down",
|
|
28
|
+
className: "size-3.5 text-muted-foreground"
|
|
29
|
+
}),
|
|
30
|
+
/* @__PURE__ */ jsx("span", {
|
|
31
|
+
className: "text-[11px] font-semibold uppercase tracking-[0.12em] text-muted-foreground",
|
|
32
|
+
children: tr("fluidgrids.builder.quickConfigPanel.inputHeading", "Input")
|
|
33
|
+
}),
|
|
34
|
+
sourceIds.length > 0 && /* @__PURE__ */ jsx("select", {
|
|
35
|
+
className: "ml-auto max-w-[55%] truncate rounded-md border border-border-default bg-bg-surface px-1.5 py-0.5 text-[11px] text-text-primary scheme-normal dark:scheme-dark outline-none focus:border-action-primary-border [&_option]:bg-bg-surface [&_option]:text-text-primary",
|
|
36
|
+
value: selectedSource ?? "",
|
|
37
|
+
onChange: (e) => setSelectedSource(e.target.value),
|
|
38
|
+
"aria-label": tr("fluidgrids.builder.quickConfigPanel.inputHeading", "Input"),
|
|
39
|
+
"data-testid": `${testIdPrefix}-source-selector`,
|
|
40
|
+
children: sourceIds.map((sid) => {
|
|
41
|
+
const sn = nodes.find((n) => n.id === sid);
|
|
42
|
+
return /* @__PURE__ */ jsx("option", {
|
|
43
|
+
value: sid,
|
|
44
|
+
children: nodeTitle(sn)
|
|
45
|
+
}, sid);
|
|
46
|
+
})
|
|
47
|
+
})
|
|
48
|
+
]
|
|
49
|
+
}),
|
|
50
|
+
/* @__PURE__ */ jsx("div", {
|
|
51
|
+
className: "min-h-0 flex-1 overflow-auto px-2 py-2",
|
|
52
|
+
children: inputFields.length > 0 ? /* @__PURE__ */ jsx(FieldTree, {
|
|
53
|
+
fields: inputFields,
|
|
54
|
+
draggable: true
|
|
55
|
+
}) : /* @__PURE__ */ jsx("p", {
|
|
56
|
+
className: "px-2 py-4 text-center text-xs text-muted-foreground",
|
|
57
|
+
children: sourceIds.length === 0 ? tr("fluidgrids.builder.quickConfigPanel.noUpstreamNode", "Connect an upstream node to map its fields.") : tr("fluidgrids.builder.quickConfigPanel.noOutputFields", "The selected source has no declared output fields.")
|
|
58
|
+
})
|
|
59
|
+
}),
|
|
60
|
+
/* @__PURE__ */ jsx("p", {
|
|
61
|
+
className: "shrink-0 border-t border-border px-3 py-1.5 text-[10px] leading-snug text-muted-foreground",
|
|
62
|
+
children: tr("fluidgrids.builder.quickConfigPanel.dragFieldHint", "Drag a field onto a parameter to map it.")
|
|
63
|
+
})
|
|
64
|
+
] });
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// src/builder/components/ndv/node-editor-tabs.tsx
|
|
68
|
+
/**
|
|
69
|
+
* The Parameters / Schedule / Settings row of the compact node editors (quick
|
|
70
|
+
* panel, sidebar), matching the NDV's tabs (BOFF-11325). Tab state comes from
|
|
71
|
+
* `useNodeEditorTab` in node-editor-tab-state.ts.
|
|
72
|
+
*/
|
|
73
|
+
function NodeEditorTabs({ active, onChange, hasSchedule, testIdPrefix, className }) {
|
|
74
|
+
const tr = useTr();
|
|
75
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
76
|
+
className: cn("flex shrink-0 items-center gap-4 border-b border-border px-3", className),
|
|
77
|
+
children: [
|
|
78
|
+
/* @__PURE__ */ jsx(TabButton, {
|
|
79
|
+
active: active === "parameters",
|
|
80
|
+
onClick: () => onChange("parameters"),
|
|
81
|
+
testId: `${testIdPrefix}-tab-parameters`,
|
|
82
|
+
children: tr("fluidgrids.builder.nodeDetailView.tabParameters", "Parameters")
|
|
83
|
+
}),
|
|
84
|
+
hasSchedule && /* @__PURE__ */ jsx(TabButton, {
|
|
85
|
+
active: active === "schedule",
|
|
86
|
+
onClick: () => onChange("schedule"),
|
|
87
|
+
testId: `${testIdPrefix}-tab-schedule`,
|
|
88
|
+
children: tr("fluidgrids.builder.nodeDetailView.tabSchedule", "Schedule")
|
|
89
|
+
}),
|
|
90
|
+
/* @__PURE__ */ jsx(TabButton, {
|
|
91
|
+
active: active === "settings",
|
|
92
|
+
onClick: () => onChange("settings"),
|
|
93
|
+
testId: `${testIdPrefix}-tab-settings`,
|
|
94
|
+
children: tr("fluidgrids.builder.nodeDetailView.tabSettings", "Settings")
|
|
95
|
+
})
|
|
96
|
+
]
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// src/builder/components/ndv/node-editor-tab-state.ts
|
|
101
|
+
/**
|
|
102
|
+
* The tab to show: Schedule only exists for a Schedule Trigger while the
|
|
103
|
+
* schedule-policies flag is on, so a stale "schedule" falls back to
|
|
104
|
+
* Parameters (for example after the flag turns off).
|
|
105
|
+
*/
|
|
106
|
+
function activeNodeEditorTab(tab, hasSchedule) {
|
|
107
|
+
return tab === "schedule" && !hasSchedule ? "parameters" : tab;
|
|
108
|
+
}
|
|
109
|
+
/** True when a node of this type gets the Schedule tab (BOFF-9906). */
|
|
110
|
+
function nodeHasScheduleTab(nodeType, schedulePolicies) {
|
|
111
|
+
return schedulePolicies && nodeType === "internal:schedule";
|
|
112
|
+
}
|
|
113
|
+
/** Tab state for a compact node editor. Call before any early return. */
|
|
114
|
+
function useNodeEditorTab(nodeType) {
|
|
115
|
+
const { schedulePolicies } = usePhaseCFlags();
|
|
116
|
+
const hasSchedule = nodeHasScheduleTab(nodeType, schedulePolicies);
|
|
117
|
+
const [tab, setTab] = useState("parameters");
|
|
118
|
+
return {
|
|
119
|
+
tab: activeNodeEditorTab(tab, hasSchedule),
|
|
120
|
+
setTab,
|
|
121
|
+
hasSchedule
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
// src/builder/components/ndv/node-editor-tab-body.tsx
|
|
126
|
+
/**
|
|
127
|
+
* The selected tab's content in a compact node editor (quick panel, sidebar):
|
|
128
|
+
* the shared parameter form, the node settings, or a Schedule Trigger's
|
|
129
|
+
* schedule, exactly as the NDV renders them (BOFF-11325).
|
|
130
|
+
*/
|
|
131
|
+
function NodeEditorTabBody({ tab, config, nodeId, testIdPrefix }) {
|
|
132
|
+
if (tab === "schedule") return /* @__PURE__ */ jsx(NodeEditorSchedule, {
|
|
133
|
+
config,
|
|
134
|
+
nodeId,
|
|
135
|
+
testIdPrefix
|
|
136
|
+
});
|
|
137
|
+
if (tab === "settings") return /* @__PURE__ */ jsx("div", {
|
|
138
|
+
className: "p-3",
|
|
139
|
+
"data-testid": `${testIdPrefix}-settings`,
|
|
140
|
+
children: /* @__PURE__ */ jsx(ReadOnlyFieldset, { children: /* @__PURE__ */ jsx(NodeSettingsPanel, { config }) })
|
|
141
|
+
});
|
|
142
|
+
return /* @__PURE__ */ jsx("div", {
|
|
143
|
+
className: "space-y-4 p-3",
|
|
144
|
+
"data-testid": `${testIdPrefix}-params`,
|
|
145
|
+
children: /* @__PURE__ */ jsx(ReadOnlyFieldset, {
|
|
146
|
+
className: "space-y-4",
|
|
147
|
+
children: /* @__PURE__ */ jsx(NodeParamsForm, {
|
|
148
|
+
config,
|
|
149
|
+
nodeType: config.node?.type,
|
|
150
|
+
testIdPrefix
|
|
151
|
+
})
|
|
152
|
+
})
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
/** A Schedule Trigger's Schedule tab, with the NDV's permission gates. */
|
|
156
|
+
function NodeEditorSchedule({ config, nodeId, testIdPrefix }) {
|
|
157
|
+
const workflowKey = useFlowStore((s) => s.workflow.workflowKey);
|
|
158
|
+
const workflowDbId = useFlowStore((s) => s.workflow.dbId);
|
|
159
|
+
const { allowed: canExecute } = useFluidGridsPermission(FLUIDGRIDS_PERMISSIONS.WORKFLOW_RUN_EXECUTE);
|
|
160
|
+
const { allowed: canUpdate } = useFluidGridsPermission(FLUIDGRIDS_PERMISSIONS.WORKFLOW_UPDATE);
|
|
161
|
+
return /* @__PURE__ */ jsx("div", {
|
|
162
|
+
"data-testid": `${testIdPrefix}-schedule`,
|
|
163
|
+
children: /* @__PURE__ */ jsx(SchedulePanel, {
|
|
164
|
+
state: config.argsState,
|
|
165
|
+
writeField: config.writeFixed,
|
|
166
|
+
workflowKey: workflowDbId && workflowKey ? workflowKey : null,
|
|
167
|
+
triggerNodeId: nodeId,
|
|
168
|
+
canExecute,
|
|
169
|
+
canUpdate
|
|
170
|
+
})
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
export { NodeInputFields as i, useNodeEditorTab as n, NodeEditorTabs as r, NodeEditorTabBody as t };
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { Dt as NodeEndpointConfigsDocument } from "./graphql-operation-types-kX-MMjgW.js";
|
|
3
|
+
|
|
4
|
+
// src/utils/node-endpoint-configs.ts
|
|
5
|
+
const NODE_CONFIG_PAGE_SIZE = 500;
|
|
6
|
+
/** Stops a server that keeps answering `hasMore: true` from looping forever. */
|
|
7
|
+
const NODE_CONFIG_MAX_PAGES = 20;
|
|
8
|
+
/**
|
|
9
|
+
* `query` is any `nodeEndpointConfigs` document with the same variables: the builder
|
|
10
|
+
* palette uses a listing without the operations JSON (BOFF-10387).
|
|
11
|
+
*/
|
|
12
|
+
async function fetchAllNodeEndpointConfigs(client, filters = {}, fetchPolicy = "network-only", query = NodeEndpointConfigsDocument) {
|
|
13
|
+
const byId = /* @__PURE__ */ new Map();
|
|
14
|
+
let offset = 0;
|
|
15
|
+
for (let page = 0; page < 20; page++) {
|
|
16
|
+
const { data } = await client.query({
|
|
17
|
+
query,
|
|
18
|
+
variables: {
|
|
19
|
+
...filters,
|
|
20
|
+
pagination: {
|
|
21
|
+
limit: 500,
|
|
22
|
+
offset
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
fetchPolicy
|
|
26
|
+
});
|
|
27
|
+
const result = data?.nodeEndpointConfigs;
|
|
28
|
+
const configs = result?.configs ?? [];
|
|
29
|
+
for (const config of configs) if (config?.id && !byId.has(config.id)) byId.set(config.id, config);
|
|
30
|
+
if (!result?.pagination?.hasMore || configs.length === 0) return [...byId.values()];
|
|
31
|
+
offset += configs.length;
|
|
32
|
+
}
|
|
33
|
+
console.warn(`[Workflows] Stopped loading node configs after ${20} pages; the catalog may be incomplete.`);
|
|
34
|
+
return [...byId.values()];
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export { fetchAllNodeEndpointConfigs as t };
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
|
|
3
|
+
import { c as createFluidGridsTokenRefreshLink, v as createLiveTokenReader } from "./client-C9XSzSXr.js";
|
|
4
|
+
import { ApolloClient, InMemoryCache, createHttpLink } from "@apollo/client/core";
|
|
5
|
+
import { setContext } from "@apollo/client/link/context";
|
|
6
|
+
|
|
7
|
+
// src/graphql/global-client.ts
|
|
8
|
+
var global_client_exports = /* @__PURE__ */ __exportAll({ getGlobalStoreClient: () => getGlobalStoreClient });
|
|
9
|
+
let globalClientInstance = null;
|
|
10
|
+
/**
|
|
11
|
+
* Set the global Apollo client singleton
|
|
12
|
+
*/
|
|
13
|
+
function setGlobalStoreClient(client) {
|
|
14
|
+
globalClientInstance = client;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Get the current global Apollo client
|
|
18
|
+
*/
|
|
19
|
+
function getGlobalStoreClient() {
|
|
20
|
+
return globalClientInstance;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Reset/clear the global Apollo client
|
|
24
|
+
*/
|
|
25
|
+
function resetGlobalStoreClient() {
|
|
26
|
+
globalClientInstance = null;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Create a new Apollo client for Global Gateway (Store operations)
|
|
30
|
+
*
|
|
31
|
+
* The auth token is read per request and follows a token refreshed through
|
|
32
|
+
* `auth.onTokenExpired`; expired-token responses are refreshed and retried
|
|
33
|
+
* once (see `createFluidGridsTokenRefreshLink`).
|
|
34
|
+
* @param config - Configuration including globalApiUrl, auth, and context IDs
|
|
35
|
+
*/
|
|
36
|
+
function createGlobalStoreClient(config) {
|
|
37
|
+
const httpLink = createHttpLink({ uri: config.globalApiUrl });
|
|
38
|
+
const readTokens = createLiveTokenReader({ authToken: config.authToken });
|
|
39
|
+
const authLink = setContext((_, { headers }) => {
|
|
40
|
+
const { authToken } = readTokens();
|
|
41
|
+
return { headers: {
|
|
42
|
+
...headers,
|
|
43
|
+
...authToken && { authorization: `Bearer ${authToken}` },
|
|
44
|
+
"x-workspace-id": config.workspaceId,
|
|
45
|
+
...config.tenantId && { "x-tenant-id": config.tenantId },
|
|
46
|
+
...config.organizationId && { "x-organization-id": config.organizationId }
|
|
47
|
+
} };
|
|
48
|
+
});
|
|
49
|
+
return new ApolloClient({
|
|
50
|
+
link: createFluidGridsTokenRefreshLink().concat(authLink).concat(httpLink),
|
|
51
|
+
cache: new InMemoryCache(),
|
|
52
|
+
defaultOptions: {
|
|
53
|
+
watchQuery: { fetchPolicy: "cache-and-network" },
|
|
54
|
+
query: { fetchPolicy: "network-only" }
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// src/builder/node-registry-refresh.ts
|
|
60
|
+
/**
|
|
61
|
+
* Refreshing the builder's node registry without loading it (BOFF-11826).
|
|
62
|
+
*
|
|
63
|
+
* A host calls `refreshNodeRegistry()` when it sets the workspace's clients, so
|
|
64
|
+
* a registry that is already loaded reloads for the new workspace. The registry
|
|
65
|
+
* itself (`blocks/index.ts`) is part of the builder's code. Importing it for
|
|
66
|
+
* this call put the builder's registry, its node components and every GraphQL
|
|
67
|
+
* document into each workflow page's first load. While the registry module has
|
|
68
|
+
* not loaded there is nothing loaded to refresh, so this module only holds the
|
|
69
|
+
* refresh the registry hands it when it loads.
|
|
70
|
+
*/
|
|
71
|
+
let refresh = null;
|
|
72
|
+
/** Called once by the registry module when it loads. */
|
|
73
|
+
function provideNodeRegistryRefresh(fn) {
|
|
74
|
+
refresh = fn;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Reloads the node registry if it has loaded; otherwise there is nothing to
|
|
78
|
+
* refresh and it resolves at once. The builder loads the registry on demand.
|
|
79
|
+
*/
|
|
80
|
+
function refreshNodeRegistry() {
|
|
81
|
+
return refresh ? refresh() : Promise.resolve();
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export { global_client_exports as a, getGlobalStoreClient as i, refreshNodeRegistry as n, resetGlobalStoreClient as o, createGlobalStoreClient as r, setGlobalStoreClient as s, provideNodeRegistryRefresh as t };
|
package/dist/nodes.d.ts
CHANGED
package/dist/nodes.js
CHANGED
package/dist/observability.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
|
|
2
|
-
import {
|
|
2
|
+
import { Aa as DataSinkData, Fa as LogStreamEventType, Ia as LogStreamProvider, La as NodeUsageStat, Ma as FailedRun, Na as LogStreamDestination, Pa as LogStreamDestinationInput, ja as DataSinkSummary, ka as DashboardSummary, oAa as ErrorAnalyticsPage, sAa as InsightsPage, uAa as DataSinkDashboardPage } from "./index-6JR2vD9J.js";
|
|
3
3
|
export { type DashboardSummary, DataSinkDashboardPage, type DataSinkData, type DataSinkSummary, ErrorAnalyticsPage, type FailedRun, InsightsPage, type LogStreamDestination, type LogStreamDestinationInput, type LogStreamEventType, type LogStreamProvider, type NodeUsageStat };
|
package/dist/observability.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
2
|
+
import { t as DataSinkDashboardPage } from "./DataSinkDashboardPage-1h2QsMzH.js";
|
|
3
|
+
import { n as InsightsPage, t as ErrorAnalyticsPage } from "./InsightsPage-CALo16eB.js";
|
|
3
4
|
|
|
4
5
|
export { DataSinkDashboardPage, ErrorAnalyticsPage, InsightsPage };
|