@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
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useMemo } from "react";
|
|
3
|
+
import { useOptionalFeatureFlags } from "@burdenoff/fe-libs/shared/feature-flags";
|
|
4
|
+
|
|
5
|
+
// src/feature-flags/index.ts
|
|
6
|
+
/**
|
|
7
|
+
* FluidGrids feature flags evaluated in the builder.
|
|
8
|
+
*
|
|
9
|
+
* Keys are registered in global-tenant-svc (`DEFAULT_PLATFORM_FLAGS`, category
|
|
10
|
+
* `fluidgrids`, so tenant-svc scopes them to FluidGrids) and toggled per
|
|
11
|
+
* workspace from admin.burdenoff.com. wspace-workflow-svc enforces the same
|
|
12
|
+
* keys with `requireFeatureEnabled`, so hiding a control here only mirrors a
|
|
13
|
+
* server-side gate; it is never the gate itself.
|
|
14
|
+
*
|
|
15
|
+
* The SDK runs inside many app shells and only some of them mount
|
|
16
|
+
* `FeatureFlagProvider`, so it reads the optional flag context rather than
|
|
17
|
+
* `useFeatureFlag`, which throws without one. Each flag falls back to its own
|
|
18
|
+
* default (see `FLUIDGRIDS_FLAG_DEFAULTS`).
|
|
19
|
+
*/
|
|
20
|
+
const FLUIDGRIDS_FLAGS = {
|
|
21
|
+
/**
|
|
22
|
+
* Operational kill switch for log stream destinations (webhook, syslog,
|
|
23
|
+
* Sentry). Defaults on; an admin turning it off hides the Log streaming
|
|
24
|
+
* settings and the backend rejects destination writes with FEATURE_DISABLED.
|
|
25
|
+
*/
|
|
26
|
+
logStreams: "fluidgrids.log-streams",
|
|
27
|
+
/**
|
|
28
|
+
* Code-first workflows (BOFF-9902): the builder's Code view, Export as
|
|
29
|
+
* TypeScript / Python and TypeScript import. A rollout gate, not a kill
|
|
30
|
+
* switch, so it defaults OFF: the controls stay hidden until tenant-svc
|
|
31
|
+
* evaluates the flag on for the workspace, including when the shell mounts
|
|
32
|
+
* no FeatureFlagProvider or the evaluation is still loading.
|
|
33
|
+
*/
|
|
34
|
+
codeFirst: "fluidgrids.code-first",
|
|
35
|
+
/**
|
|
36
|
+
* Durable functions (BOFF-9905): the Code Workflow and Wait for Signal
|
|
37
|
+
* nodes, run history, signals and the source editor. A rollout gate like
|
|
38
|
+
* `codeFirst`, so it defaults OFF and fails closed. The durable nodes are
|
|
39
|
+
* shown in the palette only while both this flag and `codeFirst` are on.
|
|
40
|
+
*/
|
|
41
|
+
durableFunctions: "fluidgrids.durable-functions",
|
|
42
|
+
/**
|
|
43
|
+
* Durable-function parity (BOFF-9905, spec code-first 11): workflow ids and
|
|
44
|
+
* run chains, run metadata, what a run is waiting on, run counts,
|
|
45
|
+
* completion callbacks, versioning (rollouts, drainage, per-run overrides)
|
|
46
|
+
* and the history caps. A rollout gate like `durableFunctions`, so it
|
|
47
|
+
* defaults OFF and fails closed; the parity surfaces show only while this
|
|
48
|
+
* flag, `durableFunctions` and `codeFirst` are all on.
|
|
49
|
+
*/
|
|
50
|
+
durableParity: "fluidgrids.durable-parity",
|
|
51
|
+
/**
|
|
52
|
+
* Phase C (BOFF-9906, PLAN-C §2.1): self-hosted task queues, worker tokens,
|
|
53
|
+
* the task-queue pages and the codec settings. A rollout gate that also
|
|
54
|
+
* needs `codeFirst` and `durableFunctions`, so it defaults OFF and fails
|
|
55
|
+
* closed (see {@link resolvePhaseCFlags}).
|
|
56
|
+
*/
|
|
57
|
+
selfHostedWorkers: "fluidgrids.self-hosted-workers",
|
|
58
|
+
/**
|
|
59
|
+
* Phase C run control: updates and queries, reset, activity pause and
|
|
60
|
+
* options, pause rules, signal tokens, batch operations and the Signal Run
|
|
61
|
+
* node. Needs `codeFirst`, plus `durableFunctions` for anything acting on a
|
|
62
|
+
* durable-function run. Defaults OFF, fails closed.
|
|
63
|
+
*/
|
|
64
|
+
runControl: "fluidgrids.run-control",
|
|
65
|
+
/**
|
|
66
|
+
* Phase C search attributes: definitions, the runs-list filter, the Set
|
|
67
|
+
* Search Attributes node. Needs `codeFirst`. Defaults OFF, fails closed.
|
|
68
|
+
*/
|
|
69
|
+
searchAttributes: "fluidgrids.search-attributes",
|
|
70
|
+
/** Phase C run archival: the archive destination settings. Needs `codeFirst`. */
|
|
71
|
+
runArchival: "fluidgrids.run-archival",
|
|
72
|
+
/**
|
|
73
|
+
* Phase C schedule policies: the schedule panel of a Schedule Trigger
|
|
74
|
+
* (overlap policy, trigger now, backfill, pause with a note). Needs
|
|
75
|
+
* `codeFirst`. Defaults OFF, fails closed.
|
|
76
|
+
*/
|
|
77
|
+
schedulePolicies: "fluidgrids.schedule-policies",
|
|
78
|
+
/**
|
|
79
|
+
* Phase C Python durable functions: editing Python sources in the browser
|
|
80
|
+
* editor. Needs `codeFirst` and `durableFunctions`. Defaults OFF.
|
|
81
|
+
*/
|
|
82
|
+
pythonDurableFunctions: "fluidgrids.python-durable-functions",
|
|
83
|
+
/**
|
|
84
|
+
* Workflow test suites (BOFF-9960): the builder's Tests panel, saving a run
|
|
85
|
+
* as a test case and the Assert node in the palette. A rollout gate, so it
|
|
86
|
+
* defaults OFF and fails closed; wspace-workflow-svc answers every test-suite
|
|
87
|
+
* field with FEATURE_DISABLED while it is off for the workspace.
|
|
88
|
+
*/
|
|
89
|
+
workflowTests: "fluidgrids.workflow-tests",
|
|
90
|
+
/**
|
|
91
|
+
* Continuous optimisation (BOFF-9969): the Suggestions panel on Insights
|
|
92
|
+
* (the per-workspace opt-in, the nightly suggestions, Apply, Dismiss and
|
|
93
|
+
* Snooze). A rollout gate, so it defaults OFF and fails closed;
|
|
94
|
+
* wspace-workflow-svc answers every suggestion field with FEATURE_DISABLED
|
|
95
|
+
* while it is off for the workspace.
|
|
96
|
+
*/
|
|
97
|
+
continuousOptimisation: "fluidgrids.continuous-optimisation"
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* The value each flag takes when it cannot be evaluated (no provider, still
|
|
101
|
+
* loading, or not returned). Kill switches default on so an outage of the
|
|
102
|
+
* flag service never removes a shipped feature; rollout gates default off so
|
|
103
|
+
* it never exposes an unreleased one.
|
|
104
|
+
*/
|
|
105
|
+
const FLUIDGRIDS_FLAG_DEFAULTS = {
|
|
106
|
+
[FLUIDGRIDS_FLAGS.logStreams]: true,
|
|
107
|
+
[FLUIDGRIDS_FLAGS.codeFirst]: false,
|
|
108
|
+
[FLUIDGRIDS_FLAGS.durableFunctions]: false,
|
|
109
|
+
[FLUIDGRIDS_FLAGS.durableParity]: false,
|
|
110
|
+
[FLUIDGRIDS_FLAGS.selfHostedWorkers]: false,
|
|
111
|
+
[FLUIDGRIDS_FLAGS.runControl]: false,
|
|
112
|
+
[FLUIDGRIDS_FLAGS.searchAttributes]: false,
|
|
113
|
+
[FLUIDGRIDS_FLAGS.runArchival]: false,
|
|
114
|
+
[FLUIDGRIDS_FLAGS.schedulePolicies]: false,
|
|
115
|
+
[FLUIDGRIDS_FLAGS.pythonDurableFunctions]: false,
|
|
116
|
+
[FLUIDGRIDS_FLAGS.workflowTests]: false,
|
|
117
|
+
[FLUIDGRIDS_FLAGS.continuousOptimisation]: false
|
|
118
|
+
};
|
|
119
|
+
/**
|
|
120
|
+
* Each evaluations map the provider has published as settled (loaded, not
|
|
121
|
+
* fetching), with the workspace it was settled for. The provider replaces the
|
|
122
|
+
* map on every successful fetch and keeps it while a refetch is in flight, so
|
|
123
|
+
* the map itself identifies one completed evaluation.
|
|
124
|
+
*/
|
|
125
|
+
const settledEvaluations = /* @__PURE__ */ new WeakMap();
|
|
126
|
+
/**
|
|
127
|
+
* Whether the context's evaluations can be read for the active workspace.
|
|
128
|
+
*
|
|
129
|
+
* Settled: yes, unless the map was settled for another workspace (the
|
|
130
|
+
* provider keeps the old map for the first render after a workspace switch).
|
|
131
|
+
* Fetching: only when this map was already seen settled for this same
|
|
132
|
+
* workspace, i.e. a background refetch (`refreshInterval`, every 5 minutes by
|
|
133
|
+
* default) rather than a first load or a workspace switch. The last known
|
|
134
|
+
* evaluation then stays in force until the refetch settles, instead of the
|
|
135
|
+
* rollout gates blinking off for its duration.
|
|
136
|
+
*/
|
|
137
|
+
function evaluationsUsable(context) {
|
|
138
|
+
const { evaluations } = context;
|
|
139
|
+
if (!evaluations) return !context.isLoading;
|
|
140
|
+
const workspace = context.workspaceId ?? null;
|
|
141
|
+
const settledFor = settledEvaluations.get(evaluations);
|
|
142
|
+
if (context.isLoading) return settledFor !== void 0 && settledFor === workspace;
|
|
143
|
+
if (settledFor === void 0) {
|
|
144
|
+
settledEvaluations.set(evaluations, workspace);
|
|
145
|
+
return true;
|
|
146
|
+
}
|
|
147
|
+
return settledFor === workspace;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Resolves one FluidGrids flag from the optional flag context (exported for
|
|
151
|
+
* tests).
|
|
152
|
+
*
|
|
153
|
+
* A kill switch (default on) keeps the resolution it has always had: the
|
|
154
|
+
* evaluated value, else on, and on while the flags are loading.
|
|
155
|
+
* A rollout gate (default off) fails closed, the way wspace-workflow-svc
|
|
156
|
+
* resolves it: it is on only when the flags have loaded without a fetch error
|
|
157
|
+
* and tenant-svc returned an evaluation for it that carries no `errorCode` and
|
|
158
|
+
* the boolean value `true`. No provider, a first load or workspace switch
|
|
159
|
+
* still in flight, a failed fetch, a missing evaluation or an evaluation error
|
|
160
|
+
* all leave it off. A background refetch of the same workspace keeps the last
|
|
161
|
+
* settled evaluation (see `evaluationsUsable`).
|
|
162
|
+
*/
|
|
163
|
+
function resolveFluidGridsFlag(context, flag) {
|
|
164
|
+
const fallback = FLUIDGRIDS_FLAG_DEFAULTS[flag];
|
|
165
|
+
if (!context) return fallback;
|
|
166
|
+
if (fallback) {
|
|
167
|
+
if (context.isLoading) return fallback;
|
|
168
|
+
const evaluation = context.getEvaluation(flag);
|
|
169
|
+
return evaluation ? Boolean(evaluation.value) : fallback;
|
|
170
|
+
}
|
|
171
|
+
if (context.error || !evaluationsUsable(context)) return false;
|
|
172
|
+
const evaluation = context.getEvaluation(flag);
|
|
173
|
+
return !!evaluation && !evaluation.errorCode && evaluation.value === true;
|
|
174
|
+
}
|
|
175
|
+
/** Whether a FluidGrids flag is on for the active workspace. */
|
|
176
|
+
function useFluidGridsFlag(flag) {
|
|
177
|
+
const context = useOptionalFeatureFlags();
|
|
178
|
+
return useMemo(() => resolveFluidGridsFlag(context, flag), [context, flag]);
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Whether the durable-function nodes (`internal:code-workflow`,
|
|
182
|
+
* `internal:wait-for-signal`) may appear in the builder palette: only while
|
|
183
|
+
* both the code-first and the durable-functions rollout gates are on. Either
|
|
184
|
+
* gate off, unevaluated or failing hides them.
|
|
185
|
+
*/
|
|
186
|
+
function useDurableFunctionNodesEnabled() {
|
|
187
|
+
const context = useOptionalFeatureFlags();
|
|
188
|
+
return useMemo(() => resolveFluidGridsFlag(context, FLUIDGRIDS_FLAGS.codeFirst) && resolveFluidGridsFlag(context, FLUIDGRIDS_FLAGS.durableFunctions), [context]);
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Whether the durable-function parity surfaces (BOFF-9905) are shown: only
|
|
192
|
+
* while the code-first, durable-functions and durable-parity rollout gates
|
|
193
|
+
* are all on, the same three flags wspace-workflow-svc checks before it
|
|
194
|
+
* answers a parity field. Any of them off, unevaluated or failing hides them,
|
|
195
|
+
* and the pages then send exactly the requests they sent before.
|
|
196
|
+
*/
|
|
197
|
+
function resolveDurableParity(context) {
|
|
198
|
+
return resolveFluidGridsFlag(context, FLUIDGRIDS_FLAGS.codeFirst) && resolveFluidGridsFlag(context, FLUIDGRIDS_FLAGS.durableFunctions) && resolveFluidGridsFlag(context, FLUIDGRIDS_FLAGS.durableParity);
|
|
199
|
+
}
|
|
200
|
+
/** {@link resolveDurableParity} for the active workspace. */
|
|
201
|
+
function useDurableParityEnabled() {
|
|
202
|
+
const context = useOptionalFeatureFlags();
|
|
203
|
+
return useMemo(() => resolveDurableParity(context), [context]);
|
|
204
|
+
}
|
|
205
|
+
/** Every Phase C gate off: what a shell without the flags sees. */
|
|
206
|
+
const PHASE_C_FLAGS_OFF = Object.freeze({
|
|
207
|
+
runControl: false,
|
|
208
|
+
runControlDurable: false,
|
|
209
|
+
selfHostedWorkers: false,
|
|
210
|
+
searchAttributes: false,
|
|
211
|
+
runArchival: false,
|
|
212
|
+
schedulePolicies: false,
|
|
213
|
+
pythonDurableFunctions: false
|
|
214
|
+
});
|
|
215
|
+
/** Resolves the Phase C gates from the optional flag context (exported for tests). */
|
|
216
|
+
function resolvePhaseCFlags(context) {
|
|
217
|
+
const flag = (key) => resolveFluidGridsFlag(context, key);
|
|
218
|
+
if (!flag(FLUIDGRIDS_FLAGS.codeFirst)) return { ...PHASE_C_FLAGS_OFF };
|
|
219
|
+
const durable = flag(FLUIDGRIDS_FLAGS.durableFunctions);
|
|
220
|
+
const runControl = flag(FLUIDGRIDS_FLAGS.runControl);
|
|
221
|
+
return {
|
|
222
|
+
runControl,
|
|
223
|
+
runControlDurable: runControl && durable,
|
|
224
|
+
selfHostedWorkers: durable && flag(FLUIDGRIDS_FLAGS.selfHostedWorkers),
|
|
225
|
+
searchAttributes: flag(FLUIDGRIDS_FLAGS.searchAttributes),
|
|
226
|
+
runArchival: flag(FLUIDGRIDS_FLAGS.runArchival),
|
|
227
|
+
schedulePolicies: flag(FLUIDGRIDS_FLAGS.schedulePolicies),
|
|
228
|
+
pythonDurableFunctions: durable && flag(FLUIDGRIDS_FLAGS.pythonDurableFunctions)
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
/** {@link resolvePhaseCFlags} for the active workspace. */
|
|
232
|
+
function usePhaseCFlags() {
|
|
233
|
+
const context = useOptionalFeatureFlags();
|
|
234
|
+
return useMemo(() => resolvePhaseCFlags(context), [context]);
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Whether the rollout gates have settled for the active workspace, so that an
|
|
238
|
+
* off gate means "off" rather than "not evaluated yet" (exported for tests).
|
|
239
|
+
*
|
|
240
|
+
* Settled: no provider (the gates stay off for good), a failed fetch (they
|
|
241
|
+
* fail closed), or evaluations that can be read for this workspace (see
|
|
242
|
+
* `evaluationsUsable`, so a background refetch stays settled). Not settled:
|
|
243
|
+
* the provider's first load, or the first render after a workspace switch.
|
|
244
|
+
* A route that redirects away when its gate is off waits for this, so a deep
|
|
245
|
+
* link to a gated page is not bounced during the first load.
|
|
246
|
+
*/
|
|
247
|
+
function resolveFluidGridsFlagsSettled(context) {
|
|
248
|
+
if (!context) return true;
|
|
249
|
+
if (context.error) return true;
|
|
250
|
+
return evaluationsUsable(context);
|
|
251
|
+
}
|
|
252
|
+
/** {@link resolveFluidGridsFlagsSettled} for the active workspace. */
|
|
253
|
+
function useFluidGridsFlagsSettled() {
|
|
254
|
+
const context = useOptionalFeatureFlags();
|
|
255
|
+
return useMemo(() => resolveFluidGridsFlagsSettled(context), [context]);
|
|
256
|
+
}
|
|
257
|
+
/** Whether the self-hosted workers surfaces (task queues, worker tokens) show. */
|
|
258
|
+
function useSelfHostedWorkersEnabled() {
|
|
259
|
+
return usePhaseCFlags().selfHostedWorkers;
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Whether the workflow test suites (BOFF-9960) are shown: the Tests panel,
|
|
263
|
+
* "Save as test case" on a run and the Assert node. Fails closed.
|
|
264
|
+
*/
|
|
265
|
+
function useWorkflowTestsEnabled() {
|
|
266
|
+
return useFluidGridsFlag(FLUIDGRIDS_FLAGS.workflowTests);
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Whether the continuous-optimisation Suggestions panel (BOFF-9969) is shown
|
|
270
|
+
* on Insights. Fails closed: with the flag off the page sends none of the
|
|
271
|
+
* optimisation operations.
|
|
272
|
+
*/
|
|
273
|
+
function useContinuousOptimisationEnabled() {
|
|
274
|
+
return useFluidGridsFlag(FLUIDGRIDS_FLAGS.continuousOptimisation);
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* The gates the builder palettes apply (durable-function nodes, the two
|
|
278
|
+
* run-control nodes of Phase C and the Assert node of the workflow test
|
|
279
|
+
* suites).
|
|
280
|
+
*/
|
|
281
|
+
function resolvePaletteGates(context) {
|
|
282
|
+
const phaseC = resolvePhaseCFlags(context);
|
|
283
|
+
return {
|
|
284
|
+
durableFunctions: resolveFluidGridsFlag(context, FLUIDGRIDS_FLAGS.codeFirst) && resolveFluidGridsFlag(context, FLUIDGRIDS_FLAGS.durableFunctions),
|
|
285
|
+
runControl: phaseC.runControl,
|
|
286
|
+
searchAttributes: phaseC.searchAttributes,
|
|
287
|
+
workflowTests: resolveFluidGridsFlag(context, FLUIDGRIDS_FLAGS.workflowTests)
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
/** {@link resolvePaletteGates} for the active workspace. */
|
|
291
|
+
function usePaletteGates() {
|
|
292
|
+
const context = useOptionalFeatureFlags();
|
|
293
|
+
return useMemo(() => resolvePaletteGates(context), [context]);
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
export { resolvePhaseCFlags as a, useDurableParityEnabled as c, usePaletteGates as d, usePhaseCFlags as f, resolveFluidGridsFlagsSettled as i, useFluidGridsFlag as l, useWorkflowTestsEnabled as m, FLUIDGRIDS_FLAG_DEFAULTS as n, useContinuousOptimisationEnabled as o, useSelfHostedWorkersEnabled as p, PHASE_C_FLAGS_OFF as r, useDurableFunctionNodesEnabled as s, FLUIDGRIDS_FLAGS as t, useFluidGridsFlagsSettled as u };
|
package/dist/flags.d.ts
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
|
|
2
|
+
import { a as PhaseCFlags, c as useContinuousOptimisationEnabled, d as useFluidGridsFlag, f as useFluidGridsFlagsSettled, g as useWorkflowTestsEnabled, h as useSelfHostedWorkersEnabled, l as useDurableFunctionNodesEnabled, m as usePhaseCFlags, n as FLUIDGRIDS_FLAG_DEFAULTS, r as FluidGridsFlagKey, t as FLUIDGRIDS_FLAGS } from "./index-BcdtKBM-.js";
|
|
3
|
+
export { FLUIDGRIDS_FLAGS, FLUIDGRIDS_FLAG_DEFAULTS, type FluidGridsFlagKey, type PhaseCFlags, useContinuousOptimisationEnabled, useDurableFunctionNodesEnabled, useFluidGridsFlag, useFluidGridsFlagsSettled, usePhaseCFlags, useSelfHostedWorkersEnabled, useWorkflowTestsEnabled };
|
package/dist/flags.js
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { f as usePhaseCFlags, l as useFluidGridsFlag, m as useWorkflowTestsEnabled, n as FLUIDGRIDS_FLAG_DEFAULTS, o as useContinuousOptimisationEnabled, p as useSelfHostedWorkersEnabled, s as useDurableFunctionNodesEnabled, t as FLUIDGRIDS_FLAGS, u as useFluidGridsFlagsSettled } from "./feature-flags-DM5myWaD.js";
|
|
3
|
+
|
|
4
|
+
export { FLUIDGRIDS_FLAGS, FLUIDGRIDS_FLAG_DEFAULTS, useContinuousOptimisationEnabled, useDurableFunctionNodesEnabled, useFluidGridsFlag, useFluidGridsFlagsSettled, usePhaseCFlags, useSelfHostedWorkersEnabled, useWorkflowTestsEnabled };
|