@burdenoff/fluidgrids-fe-sdk 2026.1111.12 → 2026.1111.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/dist/{ExecutionDetailPage-CDkJeeu2.js → ExecutionDetailPage-itor_whl.js} +4 -4
  2. package/dist/{FluidGridsProvider-CDZjKmfD.js → FluidGridsProvider-B30VcLdX.js} +236 -17
  3. package/dist/{HistoryPage-DnVGN_72.js → HistoryPage-DueEld8g.js} +1 -1
  4. package/dist/{InsightsPage-CGRpZtGu.js → InsightsPage-DQ7KCR9h.js} +2 -2
  5. package/dist/{ManagedAiPolicyAuthority-DbJBledZ.js → ManagedAiPolicyAuthority-C0YPTJMS.js} +2 -2
  6. package/dist/{MissingNodesInstallModal-YI57ImRx.js → MissingNodesInstallModal-Cj31oMDX.js} +1 -1
  7. package/dist/{TemplateConfigurationModal-BimyvVH6.js → TemplateConfigurationModal-BAPCG8y-.js} +1 -1
  8. package/dist/{TemplateDetailPanel-CkwB6vrW.js → TemplateDetailPanel-CZ1uxEQL.js} +1 -1
  9. package/dist/{TemplatesPage-ZK6cMWur.js → TemplatesPage-DWdgZnIH.js} +4 -4
  10. package/dist/{WorkflowSearchRedirect-BHtdF64q.js → WorkflowSearchRedirect-C8vhSZK9.js} +32 -49
  11. package/dist/{WorkflowShareDialog-ByTSWwwR.js → WorkflowShareDialog-DnBQA3V6.js} +1 -1
  12. package/dist/{WorkflowsList-B9F2e8M6.js → WorkflowsList-74jjJFsJ.js} +4 -4
  13. package/dist/{agentTools-Dgrdql-W.js → agentTools-D5AW7zHn.js} +2 -2
  14. package/dist/canvasNoteTools-BqQTTCll.js +136 -0
  15. package/dist/executions.js +1 -1
  16. package/dist/{flow-builder-CukxgO65.js → flow-builder-BR8p5tXG.js} +520 -65
  17. package/dist/history.js +1 -1
  18. package/dist/{index-BES5GtJJ.d.ts → index-CLqh2u28.d.ts} +73 -2
  19. package/dist/index.d.ts +2 -2
  20. package/dist/index.js +440 -19
  21. package/dist/{node-detail-view-DRk8Ln5L.js → node-detail-view-Dnhqdn8C.js} +3 -3
  22. package/dist/observability.d.ts +1 -1
  23. package/dist/observability.js +1 -1
  24. package/dist/{quick-config-panel-40_1utiL.js → quick-config-panel-C4tSpCrt.js} +2 -2
  25. package/dist/settings.js +1 -1
  26. package/dist/templates.js +1 -1
  27. package/dist/{useExecutions-BqoD7XWi.js → useExecutions-CNEN1ENQ.js} +1 -1
  28. package/dist/{useObservability-Cs-5_NHh.js → useObservability-CmFFXmKb.js} +1 -1
  29. package/dist/{useRunHistory-CEL-CIz-.js → useRunHistory-DhU_mrzF.js} +1 -1
  30. package/dist/{useWorkflows-Bwpvfdgv.js → useWorkflows-D01LC39Y.js} +1 -1
  31. package/dist/workflow-builder.js +2 -2
  32. package/dist/workflows-list.js +1 -1
  33. package/package.json +1 -1
@@ -1,10 +1,10 @@
1
1
  "use client";
2
2
  import { $r as WorkflowRunMetadataDocument, A as CreateWorkerTokenDocument, An as SetWorkerTokenConnectionAllowlistDocument, Bi as describeOperationError, Gn as TaskQueuesDocument, Mn as SetWorkflowRunVersioningOverrideDocument, Oi as getFluidGridsClient, Sn as RunLogsDocument, Sr as WorkflowBatchOperationUpdatedDocument, U as DeleteTaskQueueDocument, Ui as throwIfResultError, W as DeleteWorkerTokenDocument, Wn as TaskQueueStatsDocument, Xr as WorkflowRunHierarchyDocument, aa as useExecutionsStore, bn as RunLogAppendedDocument, c as AgentTraceDocument, dn as RotateWorkerTokenDocument, dt as ExplainRunDocument, ei as WorkflowRunPendingDocument, fn as RunAiUsageDocument, hr as WorkerTokensDocument, ia as DEFAULT_EXECUTIONS_FILTER, k as CreateTaskQueueDocument, ki as getFluidGridsClientSafe, nt as DurableParityRunFieldsDocument, oa as __exportAll, or as UpdateTaskQueueDocument, qi as getFluidGridsConfig, ri as WorkflowRunsCountDocument, s as AgentStepUpdatedDocument, wi as WorkflowWorkersDocument } from "./node-endpoint-configs-DHFGA5MQ.js";
3
- import { $n as useWorkflowTestsEnabled, Fn as durableInterfaceOf, Kn as useDurableFunctionNodesEnabled, Nn as canSignalRun, Rn as runSignalTargets, Zn as usePhaseCFlags, en as formatElapsedMs, nn as runDurationMs, qn as useDurableParityEnabled, tn as nodeStateDurationMs } from "./FluidGridsProvider-CDZjKmfD.js";
3
+ import { In as canSignalRun, Rn as durableInterfaceOf, Vn as runSignalTargets, Xn as useDurableParityEnabled, Yn as useDurableFunctionNodesEnabled, an as runDurationMs, er as usePhaseCFlags, in as nodeStateDurationMs, nr as useWorkflowTestsEnabled, rn as formatElapsedMs } from "./FluidGridsProvider-B30VcLdX.js";
4
4
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
5
- import { h as useWorkflowDefinitions, v as useWorkflowVersions } from "./useWorkflows-Bwpvfdgv.js";
5
+ import { h as useWorkflowDefinitions, v as useWorkflowVersions } from "./useWorkflows-D01LC39Y.js";
6
6
  import { $u as ErrorType, L as AgentStepKind, LF as WorkflowQueryRejectCondition, RF as WorkflowResetType, bF as WorkflowBatchOperationType, hI as FLUIDGRIDS_PERMISSIONS, tI as WorkflowUpdateWaitFor, vI as SdkPermissionButton, xI as useFluidGridsPermission, yP as VersioningBehavior } from "./graphql-types-XcDLtFwU.js";
7
- import { _ as statusCountFilter, c as OPERATORS_BY_TYPE, d as STATUS_COUNT_GROUP_BY, f as callbackTone, g as shortRunId, h as runChainLinks, i as useExecutionStats, l as buildSearchAttributeFilter, m as parseMetadataDefinition, n as useExecution, o as useExecutionsWithStore, p as overrideRequestOf, r as useExecutionActions, s as EMPTY_SEARCH_FILTER, t as useAutoRefresh, u as searchFilterConflicts, v as statusCountsOf, y as validateDateRange } from "./useExecutions-BqoD7XWi.js";
7
+ import { _ as statusCountFilter, c as OPERATORS_BY_TYPE, d as STATUS_COUNT_GROUP_BY, f as callbackTone, g as shortRunId, h as runChainLinks, i as useExecutionStats, l as buildSearchAttributeFilter, m as parseMetadataDefinition, n as useExecution, o as useExecutionsWithStore, p as overrideRequestOf, r as useExecutionActions, s as EMPTY_SEARCH_FILTER, t as useAutoRefresh, u as searchFilterConflicts, v as statusCountsOf, y as validateDateRange } from "./useExecutions-CNEN1ENQ.js";
8
8
  import { n as useFluidGridsPageControls } from "./pageControlsBridge-0pX9s-3k.js";
9
9
  import { t as executionsControls } from "./pageControlSpecs-DZJ9K37m.js";
10
10
  import { t as FluidGridsDocsLink } from "./FluidGridsDocsLink-JxkBpOeb.js";
@@ -13,7 +13,7 @@ import { C as useAvailableTags, _ as buildNodeDisplayMap, b as EntityTagPicker,
13
13
  import { t as AiCreditBalanceSlot } from "./aiCreditsBridge-BuE92tKo.js";
14
14
  import { a as fetchRunFailureClusters, i as dismissRunFailureCluster, o as runListFilterFromSearch, r as OPEN_STATUSES, s as runListLinkKey, t as BUCKET_LABELS } from "./FailureTriagePanel-BHiduL7A.js";
15
15
  import { a as encodedPayloadBytes, f as EffectBadge, h as useRunPolicyDecisions, i as decodePayloads, l as formatBudgetUsd, n as checkCodecServerUrl, o as isEncodedPayload, r as containsEncodedPayload, t as CodecServerError } from "./codec-client-DstqyzTN.js";
16
- import { a as useDurableRunFields, i as useDeterminismStatus, n as SignalRunDialog, o as useRunStackTrace, r as terminateDurableRun, s as RunHistoryView, t as useRunHistory } from "./useRunHistory-CEL-CIz-.js";
16
+ import { a as useDurableRunFields, i as useDeterminismStatus, n as SignalRunDialog, o as useRunStackTrace, r as terminateDurableRun, s as RunHistoryView, t as useRunHistory } from "./useRunHistory-DhU_mrzF.js";
17
17
  import { a as formatTokens, d as formatMicroUsd, o as modelLabel, r as aiCost } from "./ai-usage-D5p7ZeRR.js";
18
18
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
19
19
  import { Link, useNavigate, useParams, useSearchParams } from "react-router";
@@ -10145,6 +10145,181 @@ const OrganizationPrivateNodesDocument = {
10145
10145
  "end": 432
10146
10146
  }
10147
10147
  };
10148
+ const StoreNodeProductsByTypeDocument = {
10149
+ "kind": "Document",
10150
+ "definitions": [{
10151
+ "kind": "OperationDefinition",
10152
+ "operation": "query",
10153
+ "name": {
10154
+ "kind": "Name",
10155
+ "value": "StoreNodeProductsByType"
10156
+ },
10157
+ "variableDefinitions": [{
10158
+ "kind": "VariableDefinition",
10159
+ "variable": {
10160
+ "kind": "Variable",
10161
+ "name": {
10162
+ "kind": "Name",
10163
+ "value": "nodeTypes"
10164
+ }
10165
+ },
10166
+ "type": {
10167
+ "kind": "NonNullType",
10168
+ "type": {
10169
+ "kind": "ListType",
10170
+ "type": {
10171
+ "kind": "NonNullType",
10172
+ "type": {
10173
+ "kind": "NamedType",
10174
+ "name": {
10175
+ "kind": "Name",
10176
+ "value": "String"
10177
+ }
10178
+ }
10179
+ }
10180
+ }
10181
+ },
10182
+ "directives": []
10183
+ }, {
10184
+ "kind": "VariableDefinition",
10185
+ "variable": {
10186
+ "kind": "Variable",
10187
+ "name": {
10188
+ "kind": "Name",
10189
+ "value": "compatibleWith"
10190
+ }
10191
+ },
10192
+ "type": {
10193
+ "kind": "NamedType",
10194
+ "name": {
10195
+ "kind": "Name",
10196
+ "value": "String"
10197
+ }
10198
+ },
10199
+ "directives": []
10200
+ }],
10201
+ "directives": [],
10202
+ "selectionSet": {
10203
+ "kind": "SelectionSet",
10204
+ "selections": [{
10205
+ "kind": "Field",
10206
+ "name": {
10207
+ "kind": "Name",
10208
+ "value": "storeNodeProductsByType"
10209
+ },
10210
+ "arguments": [{
10211
+ "kind": "Argument",
10212
+ "name": {
10213
+ "kind": "Name",
10214
+ "value": "nodeTypes"
10215
+ },
10216
+ "value": {
10217
+ "kind": "Variable",
10218
+ "name": {
10219
+ "kind": "Name",
10220
+ "value": "nodeTypes"
10221
+ }
10222
+ }
10223
+ }, {
10224
+ "kind": "Argument",
10225
+ "name": {
10226
+ "kind": "Name",
10227
+ "value": "compatibleWith"
10228
+ },
10229
+ "value": {
10230
+ "kind": "Variable",
10231
+ "name": {
10232
+ "kind": "Name",
10233
+ "value": "compatibleWith"
10234
+ }
10235
+ }
10236
+ }],
10237
+ "directives": [],
10238
+ "selectionSet": {
10239
+ "kind": "SelectionSet",
10240
+ "selections": [
10241
+ {
10242
+ "kind": "Field",
10243
+ "name": {
10244
+ "kind": "Name",
10245
+ "value": "id"
10246
+ },
10247
+ "arguments": [],
10248
+ "directives": []
10249
+ },
10250
+ {
10251
+ "kind": "Field",
10252
+ "name": {
10253
+ "kind": "Name",
10254
+ "value": "productId"
10255
+ },
10256
+ "arguments": [],
10257
+ "directives": []
10258
+ },
10259
+ {
10260
+ "kind": "Field",
10261
+ "name": {
10262
+ "kind": "Name",
10263
+ "value": "name"
10264
+ },
10265
+ "arguments": [],
10266
+ "directives": []
10267
+ },
10268
+ {
10269
+ "kind": "Field",
10270
+ "name": {
10271
+ "kind": "Name",
10272
+ "value": "manifest"
10273
+ },
10274
+ "arguments": [],
10275
+ "directives": []
10276
+ },
10277
+ {
10278
+ "kind": "Field",
10279
+ "name": {
10280
+ "kind": "Name",
10281
+ "value": "manifestVersion"
10282
+ },
10283
+ "arguments": [],
10284
+ "directives": []
10285
+ },
10286
+ {
10287
+ "kind": "Field",
10288
+ "name": {
10289
+ "kind": "Name",
10290
+ "value": "pricingModel"
10291
+ },
10292
+ "arguments": [],
10293
+ "directives": []
10294
+ },
10295
+ {
10296
+ "kind": "Field",
10297
+ "name": {
10298
+ "kind": "Name",
10299
+ "value": "downloads"
10300
+ },
10301
+ "arguments": [],
10302
+ "directives": []
10303
+ },
10304
+ {
10305
+ "kind": "Field",
10306
+ "name": {
10307
+ "kind": "Name",
10308
+ "value": "publishedAt"
10309
+ },
10310
+ "arguments": [],
10311
+ "directives": []
10312
+ }
10313
+ ]
10314
+ }
10315
+ }]
10316
+ }
10317
+ }],
10318
+ "loc": {
10319
+ "start": 0,
10320
+ "end": 290
10321
+ }
10322
+ };
10148
10323
 
10149
10324
  // src/graphql/global-operations.ts
10150
10325
  var global_operations_exports = /* @__PURE__ */ __exportAll({ InstallWorkflowNodeDocument: () => InstallWorkflowNodeDocument });
@@ -10364,17 +10539,27 @@ async function initializeNodeConfigs() {
10364
10539
  function isRegistryNodeType(type) {
10365
10540
  return Boolean(type) && type !== "sticky-note" && type !== "default";
10366
10541
  }
10367
- /** Node types being loaded for a canvas, so concurrent callers share one request. */
10542
+ /**
10543
+ * Node types the registry is known not to carry: the manifests that came with a
10544
+ * workflow left them out (BOFF-11754). The registry is not asked about them again
10545
+ * until it is reloaded; the workspace's installed store nodes may still provide
10546
+ * them.
10547
+ */
10548
+ const registryLacks = /* @__PURE__ */ new Set();
10549
+ /** Registry loads in flight, by node type, so concurrent callers share one request. */
10368
10550
  const nodeTypeLoads = /* @__PURE__ */ new Map();
10369
- async function loadNodeTypes(types) {
10551
+ /** The distinct registry node types of `types` that are not registered yet. */
10552
+ function unregisteredTypes(types) {
10553
+ if (isInitialized) return [];
10554
+ return [...new Set(types)].filter((type) => isRegistryNodeType(type) && !hasNodeConfig(type));
10555
+ }
10556
+ async function loadRegistryNodeTypes(types) {
10370
10557
  try {
10371
10558
  const client = await waitForFluidGridsClient(15e3, 150);
10372
10559
  if (client) {
10373
10560
  const manifests = await loadNodeManifests(client, types.map((nodeType) => ({ nodeType })));
10374
10561
  for (const manifest of manifests) addNodeConfig(toNodeConfig(manifest, manifest.publishType));
10375
10562
  }
10376
- const missing = new Set(types.filter((type) => !hasNodeConfig(type)));
10377
- if (missing.size > 0) await loadInstalledStoreNodes(missing);
10378
10563
  } catch (error) {
10379
10564
  const message = error instanceof Error ? error.message : "Unknown error";
10380
10565
  console.error("[Workflows] Could not load node types:", message);
@@ -10382,16 +10567,12 @@ async function loadNodeTypes(types) {
10382
10567
  rebuildNodeArrays();
10383
10568
  }
10384
10569
  /**
10385
- * Make sure the given node types are registered, without loading the rest of the
10386
- * palette: what a canvas needs before it is drawn. Types already registered cost
10387
- * nothing; the rest are fetched with one batched request, and a type the registry
10388
- * does not carry is looked up among the workspace's installed store nodes. Types
10389
- * that resolve nowhere stay unregistered (the canvas draws them with the fallback
10390
- * card). Never rejects.
10570
+ * Register the given node types from the node registry: one batched
10571
+ * `nodeManifests` request for the ones not registered yet. Types the registry is
10572
+ * known to lack (see `registerNodeManifests`) are not asked about. Never rejects.
10391
10573
  */
10392
- function ensureNodeTypesLoaded(types) {
10393
- if (isInitialized) return Promise.resolve();
10394
- const wanted = [...new Set(types)].filter((type) => isRegistryNodeType(type) && !hasNodeConfig(type));
10574
+ function ensureRegistryNodeTypesLoaded(types) {
10575
+ const wanted = unregisteredTypes(types).filter((type) => !registryLacks.has(type));
10395
10576
  if (wanted.length === 0) return Promise.resolve();
10396
10577
  const pending = /* @__PURE__ */ new Set();
10397
10578
  const fresh = [];
@@ -10401,7 +10582,7 @@ function ensureNodeTypesLoaded(types) {
10401
10582
  else fresh.push(type);
10402
10583
  }
10403
10584
  if (fresh.length > 0) {
10404
- const load = loadNodeTypes(fresh).finally(() => {
10585
+ const load = loadRegistryNodeTypes(fresh).finally(() => {
10405
10586
  for (const type of fresh) if (nodeTypeLoads.get(type) === load) nodeTypeLoads.delete(type);
10406
10587
  });
10407
10588
  for (const type of fresh) nodeTypeLoads.set(type, load);
@@ -10410,12 +10591,46 @@ function ensureNodeTypesLoaded(types) {
10410
10591
  return Promise.all(pending).then(() => void 0);
10411
10592
  }
10412
10593
  /**
10594
+ * Register the given node types from the workspace's installed store nodes, for
10595
+ * the ones not registered yet. Concurrent callers share one installations
10596
+ * request. Never rejects.
10597
+ */
10598
+ async function ensureInstalledNodeTypesLoaded(types) {
10599
+ const wanted = unregisteredTypes(types);
10600
+ if (wanted.length === 0) return;
10601
+ try {
10602
+ await loadInstalledStoreNodes(new Set(wanted));
10603
+ } catch (error) {
10604
+ const message = error instanceof Error ? error.message : "Unknown error";
10605
+ console.error("[Workflows] Could not load installed node types:", message);
10606
+ }
10607
+ rebuildNodeArrays();
10608
+ }
10609
+ /**
10610
+ * Make sure the given node types are registered, without loading the rest of the
10611
+ * palette: what a canvas needs before it is drawn. Types already registered cost
10612
+ * nothing; the rest are fetched with one batched request, and a type the registry
10613
+ * does not carry is looked up among the workspace's installed store nodes. Types
10614
+ * that resolve nowhere stay unregistered (the canvas draws them with the fallback
10615
+ * card). Never rejects.
10616
+ */
10617
+ async function ensureNodeTypesLoaded(types) {
10618
+ const wanted = [...types];
10619
+ await ensureRegistryNodeTypesLoaded(wanted);
10620
+ await ensureInstalledNodeTypesLoaded(wanted);
10621
+ }
10622
+ /**
10413
10623
  * Register manifests that arrived with a workflow (`WorkflowDefinition.nodeManifests`)
10414
10624
  * and keep them in the session cache, so the canvas needs no further request.
10625
+ *
10626
+ * `lookedUp` names the node types those manifests answer for (the workflow's own
10627
+ * node types): one the response left out is a type the registry does not carry,
10628
+ * and it is not asked about again (BOFF-11754).
10415
10629
  */
10416
- function registerNodeManifests(values) {
10630
+ function registerNodeManifests(values, lookedUp = []) {
10417
10631
  let added = false;
10418
10632
  for (const manifest of rememberNodeManifests(values)) if (addNodeConfig(toNodeConfig(manifest, manifest.publishType))) added = true;
10633
+ for (const type of lookedUp) if (isRegistryNodeType(type) && !hasNodeConfig(type)) registryLacks.add(type);
10419
10634
  if (added) rebuildNodeArrays();
10420
10635
  }
10421
10636
  /** Register the client-side node components every canvas needs. */
@@ -10434,6 +10649,7 @@ function resetNodeRegistry() {
10434
10649
  isInitialized = false;
10435
10650
  initPromise = null;
10436
10651
  nodeTypeLoads.clear();
10652
+ registryLacks.clear();
10437
10653
  registerBaseNodeTypes();
10438
10654
  }
10439
10655
  /**
@@ -10448,7 +10664,10 @@ function resetNodeRegistry() {
10448
10664
  * anything.
10449
10665
  */
10450
10666
  async function refetchStoreNodes() {
10451
- if (NODE_CONFIGS.length === 0 && !initPromise && nodeTypeLoads.size === 0) return;
10667
+ if (NODE_CONFIGS.length === 0 && !initPromise && nodeTypeLoads.size === 0 && !installationsRequest) {
10668
+ registryLacks.clear();
10669
+ return;
10670
+ }
10452
10671
  try {
10453
10672
  resetNodeRegistry();
10454
10673
  await initializeNodeConfigs();
@@ -10827,4 +11046,4 @@ function useFluidGridsContext() {
10827
11046
  return context;
10828
11047
  }
10829
11048
 
10830
- export { resolveLoadOptionsSpec as $, useWorkflowTestsEnabled as $n, useNodeExecution as $t, UninstallWorkflowNodeDocument as A, clearCodeWorkflowDefinitionCache as An, bannerOf as At, coerceNumber as B, FLUIDGRIDS_FLAGS as Bn, forgetSessionForReload as Bt, InstallOrganizationPrivateNodeDocument as C, RUNS_QUOTA_NAME as Cn, classifyCreateRefusal as Ct, OrganizationPrivateNodesDocument as D, isQuotaExhaustedFailure as Dn, useSaveStatusStore as Dt, MyWorkflowTemplateSubmissionsDocument as E, findQuotaRefusal as En, saveIndicatorOf as Et, useInsertNode as F, durableInterfaceOf as Fn, phaseAfterTakeOver as Ft, paramsFromOperation as G, useContinuousOptimisationEnabled as Gn, AUTOSAVE_DEBOUNCE_MS as Gt, nodeSubtitle as H, PHASE_C_FLAGS_OFF as Hn, sessionBeforeReload as Ht, MissingParametersDialog as I, parseRawSignalPayload as In, releasesOnClose as It, resolveUiSpec as J, useFluidGridsFlag as Jn, codeBuildIdOf as Jt, selectedOperationOf as K, useDurableFunctionNodesEnabled as Kn, AUTOSAVE_RETRY_DELAYS_MS as Kt, useRunGuard as L, payloadFromCardValues as Ln, shouldReleaseForIdle as Lt, getNodeMetadata as M, useCodeWorkflowInterface as Mn, leaseCallQueue as Mt, buildOperationSeed as N, canSignalRun as Nn, leaseCallSequence as Nt, SubmitWorkflowTemplateDocument as O, useCanvasEdges as On, useEditLeaseLocked as Ot, createConfiguredNode as P, declaredSignals as Pn, phaseAfterAcquire as Pt, optionListValues as Q, useSelfHostedWorkersEnabled as Qn, workflowFingerprint as Qt, workflowParameterIssues as R, runSignalTargets as Rn, tickAction as Rt, GetNodeInstallableVersionsDocument as S, BILLING_PLANS_PATH as Sn, builderPathOf as St, InstallWorkflowNodeDocument as T, collectExtensions as Tn, refusalOfQuota as Tt, nodeTitle as U, resolveFluidGridsFlagsSettled as Un, rememberOwnStatusChange as Ut, fixedParameterState as V, FLUIDGRIDS_FLAG_DEFAULTS as Vn, rememberSessionForReload as Vt, optionText as W, resolvePhaseCFlags as Wn, rememberRevision as Wt, isStringOptionList as X, usePaletteGates as Xn, inAppLeaveTarget as Xt, stripSubmitActions as Y, useFluidGridsFlagsSettled as Yn, findSaveConflict as Yt, optionListText as Z, usePhaseCFlags as Zn, saveFailureActionOf as Zt, global_operations_exports as _, emitWorkflowCreated as _n, watchLeavingLosesChanges as _t, NODES_METADATA as a, structuredParameterType as an, getNodeDetail as ar, latestNodeLog as at, CreateStoreOrderDocument as b, nodesOf as bn, useSaveWorkflow as bt, ensureNodeConfigsLoaded as c, isParamVisible as cn, useBuilderReadOnly as cr, useGuardedNavigate as ct, onNodeTypesUpdate as d, emitNodeInstalled as dn, global_client_exports as dr, departingSave as dt, formatElapsedMs as en, connectionsForAdapter as er, ConditionTreeBuilder as et, refetchStoreNodes as f, emitRunFailed as fn, resetGlobalStoreClient as fr, editStateFor as ft, scheduleNodePaletteLoad as g, emitUpgradeClicked as gn, touchesSavedFields as gt, registryNodeData as h, emitTemplateUsed as hn, savedEverythingBeforeLeaving as ht, AVAILABLE_NODES as i, parseParameterValue as in, replaceAdapterConnections as ir, parseMappingValue as it, WithdrawWorkflowTemplateSubmissionDocument as j, loadDefinitionJson as jn, isLocked as jt, UninstallOrganizationPrivateNodeDocument as k, useNodeRegistryRevision as kn, useEditLeaseStore as kt, ensureNodeTypesLoaded as l, useFluidGridsAnalytics as ln, createGlobalStoreClient as lr, useManualSave as lt, registerWorkflowNodeTypes as m, emitRunStarted as mn, leavingLosesChanges as mt, FluidGridsProvider as n, runDurationMs as nn, matchesAdapterProvider as nr, casesFromRules as nt, NODE_CONFIGS as o, fieldsFromValue as on, buildStickyNode as or, boundFieldsOf as ot, registerNodeManifests as p, emitRunLimitHit as pn, setGlobalStoreClient as pr, editingLeaseLocked as pt, useNodeConfig as q, useDurableParityEnabled as qn, canAutosave as qt, useFluidGridsContext as r, formatParameterValue as rn, newConnectionProviderKey as rr, FieldTree as rt, NODE_TYPES as s, resolveNodeOperation as sn, BuilderReadOnlyProvider as sr, missingRequiredParameters as st, FluidGridsContext as t, nodeStateDurationMs as tn, isOptionalAdapter as tr, SwitchRulesEditor as tt, isNodeConfigsInitialized as u, openRunQuotaUpgradePrompt as un, getGlobalStoreClient as ur, autosaveAllowedFor as ut, BrowseWorkflowNodesDocument as v, emitWorkflowLimitHit as vn, isFlowComplete as vt, InstallPurchasedNodeDocument as w, WORKFLOWS_QUOTA_NAME as wn, createThenOpen as wt, GetMyNodeInstallationsDocument as x, runTriggerFromMode as xn, blankWorkflowCreateInput as xt, BrowseWorkflowTemplatesDocument as y, emitWorkflowPublished as yn, useFlowValidator as yt, asRecord as z, signalPayloadCard as zn, EDIT_SESSION_ID as zt };
11049
+ export { isStringOptionList as $, usePaletteGates as $n, inAppLeaveTarget as $t, StoreNodeProductsByTypeDocument as A, isQuotaExhaustedFailure as An, useSaveStatusStore as At, useRunGuard as B, payloadFromCardValues as Bn, shouldReleaseForIdle as Bt, GetMyNodeInstallationsDocument as C, nodesOf as Cn, useSaveWorkflow as Ct, InstallWorkflowNodeDocument as D, WORKFLOWS_QUOTA_NAME as Dn, createThenOpen as Dt, InstallPurchasedNodeDocument as E, RUNS_QUOTA_NAME as En, classifyCreateRefusal as Et, getNodeMetadata as F, useCodeWorkflowInterface as Fn, leaseCallQueue as Ft, nodeSubtitle as G, PHASE_C_FLAGS_OFF as Gn, sessionBeforeReload as Gt, asRecord as H, signalPayloadCard as Hn, EDIT_SESSION_ID as Ht, buildOperationSeed as I, canSignalRun as In, leaseCallSequence as It, paramsFromOperation as J, useContinuousOptimisationEnabled as Jn, AUTOSAVE_DEBOUNCE_MS as Jt, nodeTitle as K, resolveFluidGridsFlagsSettled as Kn, rememberOwnStatusChange as Kt, createConfiguredNode as L, declaredSignals as Ln, phaseAfterAcquire as Lt, UninstallOrganizationPrivateNodeDocument as M, useNodeRegistryRevision as Mn, useEditLeaseStore as Mt, UninstallWorkflowNodeDocument as N, clearCodeWorkflowDefinitionCache as Nn, bannerOf as Nt, MyWorkflowTemplateSubmissionsDocument as O, collectExtensions as On, refusalOfQuota as Ot, WithdrawWorkflowTemplateSubmissionDocument as P, loadDefinitionJson as Pn, isLocked as Pt, stripSubmitActions as Q, useFluidGridsFlagsSettled as Qn, findSaveConflict as Qt, useInsertNode as R, durableInterfaceOf as Rn, phaseAfterTakeOver as Rt, CreateStoreOrderDocument as S, emitWorkflowPublished as Sn, useFlowValidator as St, InstallOrganizationPrivateNodeDocument as T, BILLING_PLANS_PATH as Tn, builderPathOf as Tt, coerceNumber as U, FLUIDGRIDS_FLAGS as Un, forgetSessionForReload as Ut, workflowParameterIssues as V, runSignalTargets as Vn, tickAction as Vt, fixedParameterState as W, FLUIDGRIDS_FLAG_DEFAULTS as Wn, rememberSessionForReload as Wt, useNodeConfig as X, useDurableParityEnabled as Xn, canAutosave as Xt, selectedOperationOf as Y, useDurableFunctionNodesEnabled as Yn, AUTOSAVE_RETRY_DELAYS_MS as Yt, resolveUiSpec as Z, useFluidGridsFlag as Zn, codeBuildIdOf as Zt, registryNodeData as _, emitRunStarted as _n, leavingLosesChanges as _t, NODES_METADATA as a, runDurationMs as an, matchesAdapterProvider as ar, casesFromRules as at, BrowseWorkflowNodesDocument as b, emitWorkflowCreated as bn, watchLeavingLosesChanges as bt, ensureInstalledNodeTypesLoaded as c, structuredParameterType as cn, getNodeDetail as cr, latestNodeLog as ct, ensureRegistryNodeTypesLoaded as d, isParamVisible as dn, useBuilderReadOnly as dr, useGuardedNavigate as dt, saveFailureActionOf as en, usePhaseCFlags as er, optionListText as et, isNodeConfigsInitialized as f, useFluidGridsAnalytics as fn, createGlobalStoreClient as fr, useManualSave as ft, registerWorkflowNodeTypes as g, emitRunLimitHit as gn, setGlobalStoreClient as gr, editingLeaseLocked as gt, registerNodeManifests as h, emitRunFailed as hn, resetGlobalStoreClient as hr, editStateFor as ht, AVAILABLE_NODES as i, nodeStateDurationMs as in, isOptionalAdapter as ir, SwitchRulesEditor as it, SubmitWorkflowTemplateDocument as j, useCanvasEdges as jn, useEditLeaseLocked as jt, OrganizationPrivateNodesDocument as k, findQuotaRefusal as kn, saveIndicatorOf as kt, ensureNodeConfigsLoaded as l, fieldsFromValue as ln, buildStickyNode as lr, boundFieldsOf as lt, refetchStoreNodes as m, emitNodeInstalled as mn, global_client_exports as mr, departingSave as mt, FluidGridsProvider as n, useNodeExecution as nn, useWorkflowTestsEnabled as nr, resolveLoadOptionsSpec as nt, NODE_CONFIGS as o, formatParameterValue as on, newConnectionProviderKey as or, FieldTree as ot, onNodeTypesUpdate as p, openRunQuotaUpgradePrompt as pn, getGlobalStoreClient as pr, autosaveAllowedFor as pt, optionText as q, resolvePhaseCFlags as qn, rememberRevision as qt, useFluidGridsContext as r, formatElapsedMs as rn, connectionsForAdapter as rr, ConditionTreeBuilder as rt, NODE_TYPES as s, parseParameterValue as sn, replaceAdapterConnections as sr, parseMappingValue as st, FluidGridsContext as t, workflowFingerprint as tn, useSelfHostedWorkersEnabled as tr, optionListValues as tt, ensureNodeTypesLoaded as u, resolveNodeOperation as un, BuilderReadOnlyProvider as ur, missingRequiredParameters as ut, scheduleNodePaletteLoad as v, emitTemplateUsed as vn, savedEverythingBeforeLeaving as vt, GetNodeInstallableVersionsDocument as w, runTriggerFromMode as wn, blankWorkflowCreateInput as wt, BrowseWorkflowTemplatesDocument as x, emitWorkflowLimitHit as xn, isFlowComplete as xt, global_operations_exports as y, emitUpgradeClicked as yn, touchesSavedFields as yt, MissingParametersDialog as z, parseRawSignalPayload as zn, releasesOnClose as zt };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { d as useRestoreWorkflowVersion, h as useWorkflowDefinitions } from "./useWorkflows-Bwpvfdgv.js";
2
+ import { d as useRestoreWorkflowVersion, h as useWorkflowDefinitions } from "./useWorkflows-D01LC39Y.js";
3
3
  import { i as versionsOfWorkflow, t as VersionDiffDialog } from "./VersionDiffDialog-Dq2xlPFI.js";
4
4
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
5
5
  import { qi as getFluidGridsConfig } from "./node-endpoint-configs-DHFGA5MQ.js";
@@ -1,12 +1,12 @@
1
1
  "use client";
2
2
  import { Fn as SnoozeOptimisationSuggestionDocument, Gr as WorkflowProposalDocument, It as OptimisationSuggestionsDocument, Oi as getFluidGridsClient, On as SetContinuousOptimisationEnabledDocument, Q as DismissOptimisationSuggestionDocument, T as ContinuousOptimisationSettingsDocument, Ti as WorkspaceAiUsageDocument, Ui as throwIfResultError, Ut as ProposeOptimisationDocument, it as ErrorAnalyticsDocument, mt as FgRunOptimisationScanDocument } from "./node-endpoint-configs-DHFGA5MQ.js";
3
- import { Gn as useContinuousOptimisationEnabled } from "./FluidGridsProvider-CDZjKmfD.js";
3
+ import { Jn as useContinuousOptimisationEnabled } from "./FluidGridsProvider-B30VcLdX.js";
4
4
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
5
5
  import { HC as OptimisationDismissReason, UC as OptimisationKind, WC as OptimisationSuggestionStatus, hI as FLUIDGRIDS_PERMISSIONS, vI as SdkPermissionButton, xI as useFluidGridsPermission } from "./graphql-types-XcDLtFwU.js";
6
6
  import { t as proposalCanvasPath } from "./useRequestedProposal-B7uPXfZB.js";
7
7
  import { c as runListPath, l as utcDay, n as FailureTriagePanel } from "./FailureTriagePanel-BHiduL7A.js";
8
8
  import { a as formatTokens, c as DISMISS_REASONS, f as monthlySavingLabel, i as aiSpendPeriod, l as evidenceFacts, p as shortRunId, r as aiCost, s as runsOfWorkflowPath, t as AI_SPEND_RANGE_DAYS, u as evidenceWindowDays } from "./ai-usage-D5p7ZeRR.js";
9
- import { n as useDataSinks, o as useRunReplayActions, r as useInsightsData, t as useDataSinkData } from "./useObservability-Cs-5_NHh.js";
9
+ import { n as useDataSinks, o as useRunReplayActions, r as useInsightsData, t as useDataSinkData } from "./useObservability-CmFFXmKb.js";
10
10
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
11
11
  import { Link, useNavigate } from "react-router";
12
12
  import { Icon } from "@iconify/react";
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { Bi as describeOperationError, Oi as getFluidGridsClient, Tt as ManagedAiWorkspacePolicyDocument, Ui as throwIfResultError, Vr as WorkflowNotificationSettingsDocument, ar as UpdateManagedAiWorkspacePolicyDocument, ir as UpdateDurableHistoryCapsDocument, lr as UpdateWorkflowNotificationSettingsDocument, qi as getFluidGridsConfig, tt as DurableHistoryCapsDocument } from "./node-endpoint-configs-DHFGA5MQ.js";
3
- import { Bn as FLUIDGRIDS_FLAGS, Dt as useSaveStatusStore, Jn as useFluidGridsFlag, Yt as findSaveConflict, Zn as usePhaseCFlags, qn as useDurableParityEnabled, ur as getGlobalStoreClient } from "./FluidGridsProvider-CDZjKmfD.js";
3
+ import { At as useSaveStatusStore, Qt as findSaveConflict, Un as FLUIDGRIDS_FLAGS, Xn as useDurableParityEnabled, Zn as useFluidGridsFlag, er as usePhaseCFlags, pr as getGlobalStoreClient } from "./FluidGridsProvider-B30VcLdX.js";
4
4
  import { H as useFlowStore } from "./node-operation-selection--oy-yEq_.js";
5
5
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
6
6
  import { Wt as useWorkflowDefinitionQuery, a as useConnections, n as useAgentDefinitions, qt as useWorkflowDefinitionsQuery, zt as useUpdateWorkflowDefinitionMutation } from "./useAgentDefinitions-NFtLytDR.js";
@@ -8,7 +8,7 @@ import { KF as WorkflowSearchAttributeType, hI as FLUIDGRIDS_PERMISSIONS, xI as
8
8
  import { t as FluidGridsDocsLink } from "./FluidGridsDocsLink-JxkBpOeb.js";
9
9
  import { C as createSearchAttribute, E as deleteSearchAttribute, J as saveArchiveSettings, N as fetchCodecServerSettings, P as fetchPauseRules, R as fetchSearchAttributes, S as createPauseRule, T as deletePauseRule, Y as saveCodecServerSettings, _ as useResource, a as formToInput$2, b as clearArchiveSettings, c as FieldError, d as NativeSelect, i as emptyAgentForm, k as fetchArchiveSettings, n as agentToForm, o as grantDays, p as StatusPill, r as describeRule, t as AgentFormError } from "./agent-form-BvMWhQ42.js";
10
10
  import { c as budgetInputValue, d as withBudgetMode, f as EffectBadge, m as useActionPolicies, n as checkCodecServerUrl, p as effectLabel, s as BUDGET_DIMENSIONS, u as withBudgetLimit } from "./codec-client-DstqyzTN.js";
11
- import { a as useLogStreamDestinations, i as useLogStreamDestinationActions } from "./useObservability-Cs-5_NHh.js";
11
+ import { a as useLogStreamDestinations, i as useLogStreamDestinationActions } from "./useObservability-CmFFXmKb.js";
12
12
  import { createContext, useCallback, useContext, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
13
13
  import { useNavigate, useParams } from "react-router";
14
14
  import { Icon } from "@iconify/react";
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { A as DialogTitle, D as DialogHeader, E as DialogFooter, S as Dialog, T as DialogDescription, b as Badge, w as DialogContent } from "./flow-builder-CukxgO65.js";
2
+ import { A as DialogFooter, E as Dialog, O as DialogContent, P as DialogTitle, j as DialogHeader, k as DialogDescription, w as Badge } from "./flow-builder-BR8p5tXG.js";
3
3
  import { i as Button } from "./PublishCustomNodeAction-D2F7oN0S.js";
4
4
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
5
5
  import { AlertTriangle, CheckCircle2, Download, ExternalLink, Loader2, Puzzle, ShoppingCart } from "lucide-react";
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { A as DialogTitle, D as DialogHeader, E as DialogFooter, S as Dialog, T as DialogDescription, b as Badge, vt as Input, w as DialogContent } from "./flow-builder-CukxgO65.js";
2
+ import { A as DialogFooter, Ct as Input, E as Dialog, O as DialogContent, P as DialogTitle, j as DialogHeader, k as DialogDescription, w as Badge } from "./flow-builder-BR8p5tXG.js";
3
3
  import { i as Button } from "./PublishCustomNodeAction-D2F7oN0S.js";
4
4
  import { t as Label } from "./label-CDy86rIZ.js";
5
5
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { i as Button } from "./PublishCustomNodeAction-D2F7oN0S.js";
3
- import { b as Badge, y as templatePreview } from "./flow-builder-CukxgO65.js";
3
+ import { C as templatePreview, w as Badge } from "./flow-builder-BR8p5tXG.js";
4
4
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
5
5
  import { hI as FLUIDGRIDS_PERMISSIONS, vI as SdkPermissionButton } from "./graphql-types-XcDLtFwU.js";
6
6
  import { Icon } from "@iconify/react";
@@ -1,10 +1,10 @@
1
1
  "use client";
2
2
  import { Bi as describeOperationError, Ui as throwIfResultError } from "./node-endpoint-configs-DHFGA5MQ.js";
3
- import { Dn as isQuotaExhaustedFailure, E as MyWorkflowTemplateSubmissionsDocument, O as SubmitWorkflowTemplateDocument, Sn as BILLING_PLANS_PATH, hn as emitTemplateUsed, j as WithdrawWorkflowTemplateSubmissionDocument, ln as useFluidGridsAnalytics } from "./FluidGridsProvider-CDZjKmfD.js";
3
+ import { An as isQuotaExhaustedFailure, O as MyWorkflowTemplateSubmissionsDocument, P as WithdrawWorkflowTemplateSubmissionDocument, Tn as BILLING_PLANS_PATH, fn as useFluidGridsAnalytics, j as SubmitWorkflowTemplateDocument, vn as emitTemplateUsed } from "./FluidGridsProvider-B30VcLdX.js";
4
4
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
5
- import { I as useImportWorkflowTemplate, L as useWorkflowTemplates, N as useTemplateImportFlow, Y as useGlobalStoreClient, t as FlowBuilderPage, v as TemplateCard } from "./flow-builder-CukxgO65.js";
6
- import { h as useWorkflowDefinitions, l as useLazyWorkflowDefinition, s as useDuplicateWorkflow } from "./useWorkflows-Bwpvfdgv.js";
7
- import { k as QuotaExhaustedDialog } from "./WorkflowShareDialog-ByTSWwwR.js";
5
+ import { H as useWorkflowTemplates, L as useTemplateImportFlow, S as TemplateCard, V as useImportWorkflowTemplate, et as useGlobalStoreClient, t as FlowBuilderPage } from "./flow-builder-BR8p5tXG.js";
6
+ import { h as useWorkflowDefinitions, l as useLazyWorkflowDefinition, s as useDuplicateWorkflow } from "./useWorkflows-D01LC39Y.js";
7
+ import { k as QuotaExhaustedDialog } from "./WorkflowShareDialog-DnBQA3V6.js";
8
8
  import { YF as WorkflowStatus, hI as FLUIDGRIDS_PERMISSIONS, vI as SdkPermissionButton } from "./graphql-types-XcDLtFwU.js";
9
9
  import { n as useFluidGridsPageControls } from "./pageControlsBridge-0pX9s-3k.js";
10
10
  import { r as templatesControls } from "./pageControlSpecs-DZJ9K37m.js";