@burdenoff/fluidgrids-fe-sdk 2026.1022.13 → 2026.1022.17

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 (43) hide show
  1. package/dist/ExecutionDetailPage-K3MPJLTL.js +16 -0
  2. package/dist/ExecutionsListPage-UGC5KFAT.js +16 -0
  3. package/dist/WorkflowBuilder-5A3NUIUI.js +19 -0
  4. package/dist/WorkflowsList-DEQZUFDG.js +16 -0
  5. package/dist/{chunk-KNFGMDDU.js → chunk-2QTKDR23.js} +32 -7
  6. package/dist/{chunk-QEPYK454.js → chunk-CZURRUDX.js} +32 -1
  7. package/dist/{chunk-IEHL6TYP.js → chunk-E7NQZB2E.js} +5 -5
  8. package/dist/{chunk-VM2BTPX3.js → chunk-HAYSY6TZ.js} +1 -2
  9. package/dist/{chunk-GO4UTLV4.js → chunk-IULOX3NQ.js} +1 -1
  10. package/dist/{chunk-3B3624QM.js → chunk-J3XDX5HG.js} +112 -58
  11. package/dist/{chunk-2M43OY55.js → chunk-KAOLPDNX.js} +1 -1
  12. package/dist/{chunk-AN7H42WZ.js → chunk-L7F7DLUP.js} +3 -3
  13. package/dist/{chunk-EZF3VWUB.js → chunk-LLPLOWMA.js} +44 -10
  14. package/dist/{chunk-G7RP3WRM.js → chunk-MP7MRTB4.js} +5 -6
  15. package/dist/chunk-MR4OTF7D.js +8026 -0
  16. package/dist/{chunk-SOPYCZCR.js → chunk-NJZAWUGC.js} +1 -1
  17. package/dist/{chunk-SYVLFHWV.js → chunk-OD2XBMS6.js} +21 -2
  18. package/dist/{chunk-OF33XHOO.js → chunk-ORVIG2XW.js} +2 -2
  19. package/dist/{chunk-MY3T465I.js → chunk-Q7NNS2FW.js} +3 -3
  20. package/dist/{chunk-5KPXP4JF.js → chunk-TQRBDECQ.js} +329 -6886
  21. package/dist/{chunk-C2RCYSRB.js → chunk-UQWPZVOS.js} +3 -3
  22. package/dist/{chunk-NQZFS6N7.js → chunk-V75733EN.js} +18 -6
  23. package/dist/{chunk-ZKCLX2VR.js → chunk-XCQROWIZ.js} +3 -3
  24. package/dist/{chunk-KCXRF6DF.js → chunk-ZQDMK22B.js} +5 -6
  25. package/dist/executions.js +13 -12
  26. package/dist/history.js +8 -5
  27. package/dist/index.d.ts +110 -3
  28. package/dist/index.js +35 -39
  29. package/dist/nodes.js +2 -3
  30. package/dist/observability.js +8 -3
  31. package/dist/settings.js +8 -5
  32. package/dist/templates.js +12 -15
  33. package/dist/workflow-builder.js +11 -14
  34. package/dist/workflows-list.js +10 -10
  35. package/package.json +1 -1
  36. package/dist/ExecutionDetailPage-ZPM3HVVX.js +0 -15
  37. package/dist/ExecutionsListPage-BURTBLWB.js +0 -13
  38. package/dist/WorkflowBuilder-YBJ5FIVW.js +0 -22
  39. package/dist/WorkflowsList-QQLKSYVM.js +0 -16
  40. package/dist/chunk-4UAWCWS7.js +0 -162
  41. package/dist/chunk-AVJIWVHL.js +0 -34
  42. package/dist/chunk-ONVGFVNH.js +0 -167
  43. package/dist/chunk-VI2RFS65.js +0 -880
@@ -0,0 +1,16 @@
1
+ export { ExecutionDetailPage } from './chunk-MP7MRTB4.js';
2
+ import './chunk-XCQROWIZ.js';
3
+ import './chunk-LLPLOWMA.js';
4
+ import './chunk-QBFAJNUC.js';
5
+ import './chunk-IULOX3NQ.js';
6
+ import './chunk-NJZAWUGC.js';
7
+ import './chunk-D3UWK7GY.js';
8
+ import './chunk-PJAWNFJV.js';
9
+ import './chunk-MR4OTF7D.js';
10
+ import './chunk-JL7CASN5.js';
11
+ import './chunk-PXIFUMLA.js';
12
+ import './chunk-CY6KX4RG.js';
13
+ import './chunk-WBH2XEWO.js';
14
+ import './chunk-CZURRUDX.js';
15
+ import './chunk-UULVIT25.js';
16
+ import './chunk-NTWG3CJX.js';
@@ -0,0 +1,16 @@
1
+ export { ExecutionsListPage } from './chunk-L7F7DLUP.js';
2
+ import './chunk-XCQROWIZ.js';
3
+ import './chunk-LLPLOWMA.js';
4
+ import './chunk-QBFAJNUC.js';
5
+ import './chunk-NJZAWUGC.js';
6
+ import './chunk-J3XDX5HG.js';
7
+ import './chunk-D3UWK7GY.js';
8
+ import './chunk-PJAWNFJV.js';
9
+ import './chunk-MR4OTF7D.js';
10
+ import './chunk-JL7CASN5.js';
11
+ import './chunk-PXIFUMLA.js';
12
+ import './chunk-CY6KX4RG.js';
13
+ import './chunk-WBH2XEWO.js';
14
+ import './chunk-CZURRUDX.js';
15
+ import './chunk-UULVIT25.js';
16
+ import './chunk-NTWG3CJX.js';
@@ -0,0 +1,19 @@
1
+ export { WorkflowBuilder } from './chunk-E7NQZB2E.js';
2
+ import './chunk-YGBDZ424.js';
3
+ import './chunk-TQRBDECQ.js';
4
+ import './chunk-GEMNVFPK.js';
5
+ import './chunk-IEVSFCFS.js';
6
+ import './chunk-YXMFRQYV.js';
7
+ import './chunk-BQXVT32O.js';
8
+ import './chunk-OD2XBMS6.js';
9
+ import './chunk-IULOX3NQ.js';
10
+ import './chunk-NJZAWUGC.js';
11
+ import './chunk-J3XDX5HG.js';
12
+ import './chunk-MR4OTF7D.js';
13
+ import './chunk-JL7CASN5.js';
14
+ import './chunk-PXIFUMLA.js';
15
+ import './chunk-CY6KX4RG.js';
16
+ import './chunk-WBH2XEWO.js';
17
+ import './chunk-CZURRUDX.js';
18
+ import './chunk-UULVIT25.js';
19
+ import './chunk-NTWG3CJX.js';
@@ -0,0 +1,16 @@
1
+ export { WorkflowsList } from './chunk-ZQDMK22B.js';
2
+ import './chunk-YGBDZ424.js';
3
+ import './chunk-LLPLOWMA.js';
4
+ import './chunk-QBFAJNUC.js';
5
+ import './chunk-OD2XBMS6.js';
6
+ import './chunk-J3XDX5HG.js';
7
+ import './chunk-D3UWK7GY.js';
8
+ import './chunk-PJAWNFJV.js';
9
+ import './chunk-MR4OTF7D.js';
10
+ import './chunk-JL7CASN5.js';
11
+ import './chunk-PXIFUMLA.js';
12
+ import './chunk-CY6KX4RG.js';
13
+ import './chunk-WBH2XEWO.js';
14
+ import './chunk-CZURRUDX.js';
15
+ import './chunk-UULVIT25.js';
16
+ import './chunk-NTWG3CJX.js';
@@ -1,5 +1,5 @@
1
1
  import { LOG_STREAM_DESTINATIONS, CREATE_LOG_STREAM_DESTINATION, UPDATE_LOG_STREAM_DESTINATION, DELETE_LOG_STREAM_DESTINATION, TEST_LOG_STREAM_DESTINATION, REPLAY_WORKFLOW_RUN, RETRY_WORKFLOW_RUNS, OBSERVABILITY_DASHBOARD_SUMMARY, OBSERVABILITY_FAILED_RUNS, OBSERVABILITY_DATA_SINKS, OBSERVABILITY_DATA_SINK_DATA } from './chunk-QBFAJNUC.js';
2
- import { throwIfResultError, describeOperationError, openRunQuotaUpgradePrompt } from './chunk-4UAWCWS7.js';
2
+ import { throwIfResultError, describeOperationError, useFluidGridsAnalytics, emitRunStarted, openRunQuotaUpgradePrompt } from './chunk-MR4OTF7D.js';
3
3
  import { useTr } from './chunk-UULVIT25.js';
4
4
  import { getFluidGridsClient } from './chunk-NTWG3CJX.js';
5
5
  import { useOptionalFeatureFlag } from '@burdenoff/fe-libs/shared/feature-flags';
@@ -129,6 +129,7 @@ function useLogStreamDestinationActions() {
129
129
  }
130
130
  function useRunReplayActions() {
131
131
  const tr = useTr();
132
+ const { bus, workspaceId } = useFluidGridsAnalytics();
132
133
  const [loading, setLoading] = useState(false);
133
134
  const [error, setError] = useState(null);
134
135
  const replay = useCallback(
@@ -142,17 +143,29 @@ function useRunReplayActions() {
142
143
  variables: { runId }
143
144
  })
144
145
  );
145
- return result.data?.replayWorkflowRun ?? null;
146
+ const replayed = result.data?.replayWorkflowRun ?? null;
147
+ if (replayed) {
148
+ emitRunStarted(bus, {
149
+ workspaceId,
150
+ executionId: replayed.runId,
151
+ trigger: "manual"
152
+ });
153
+ }
154
+ return replayed;
146
155
  } catch (cause) {
147
156
  const nextError = new Error(describeOperationError(cause), { cause });
148
157
  setError(nextError);
149
- openRunQuotaUpgradePrompt(cause, tr);
158
+ openRunQuotaUpgradePrompt(cause, tr, {
159
+ bus,
160
+ workspaceId,
161
+ surface: "runs"
162
+ });
150
163
  return null;
151
164
  } finally {
152
165
  setLoading(false);
153
166
  }
154
167
  },
155
- [tr]
168
+ [tr, bus, workspaceId]
156
169
  );
157
170
  const retryMany = useCallback(
158
171
  async (runIds) => {
@@ -165,17 +178,29 @@ function useRunReplayActions() {
165
178
  variables: { runIds }
166
179
  })
167
180
  );
168
- return result.data?.retryWorkflowRuns ?? [];
181
+ const retried = result.data?.retryWorkflowRuns ?? [];
182
+ for (const run of retried) {
183
+ emitRunStarted(bus, {
184
+ workspaceId,
185
+ executionId: run.runId,
186
+ trigger: "manual"
187
+ });
188
+ }
189
+ return retried;
169
190
  } catch (cause) {
170
191
  const nextError = new Error(describeOperationError(cause), { cause });
171
192
  setError(nextError);
172
- openRunQuotaUpgradePrompt(cause, tr);
193
+ openRunQuotaUpgradePrompt(cause, tr, {
194
+ bus,
195
+ workspaceId,
196
+ surface: "runs"
197
+ });
173
198
  return [];
174
199
  } finally {
175
200
  setLoading(false);
176
201
  }
177
202
  },
178
- [tr]
203
+ [tr, bus, workspaceId]
179
204
  );
180
205
  return { replay, retryMany, loading, error };
181
206
  }
@@ -378,4 +378,35 @@ function useWorkflowDefinitionsTagsSuspenseQuery(baseOptions) {
378
378
  return useSuspenseQuery(WorkflowDefinitionsTagsDocument, baseOptions);
379
379
  }
380
380
 
381
- export { ActivateWorkflowDefinitionDocument, ActiveExecutionsDocument, AvailableFluidgridsTagsDocument, CancelExecutionDocument, CreateFluidgridsTagDocument, CreateWorkflowDefinitionDocument, CreateWorkflowVersionDocument, DashboardSummaryDocument, DataTablesTagsDocument, DeactivateWorkflowDefinitionDocument, DeleteWorkflowDefinitionDocument, DuplicateWorkflowDocument, EventRegistrationsDocument, ExecuteStepDocument, ExecutionDetailDocument, ExecutionLogsDocument, ExecutionStatsDocument, ExecutionsListDocument, FluidgridsAvailableTagFieldsFragmentDoc, FluidgridsEntityTagsDocument, FluidgridsTagAssignmentFieldsFragmentDoc, ImportWorkflowDocument, ImportWorkflowTemplateDocument, ListenForWebhookTestEventDocument, NodeEndpointConfigDocument, NodeEndpointConfigsDocument, NodeManifestDocument, NodeSchemaIntrospectionDocument, NodeStatesDocument, NodeUsageStatusDocument, PauseExecutionDocument, PinNodeDataDocument, RegisterNodeDocument, RemoveNodeFromWorkflowsDocument, ReplaceFluidgridsEntityTagsDocument, RestoreWorkflowVersionDocument, ResumeExecutionDocument, RetryNodeDocument, RunFromNodeDocument, RunFromNodeEligibilityDocument, RunLogAppendedDocument, RunLogLineFieldsFragmentDoc, RunLogsDocument, SearchFluidgridsTagsDocument, StopWebhookTestListenerDocument, TagFluidgridsEntityDocument, TerminateExecutionDocument, TriggerWorkflowDocument, UnpinNodeDataDocument, UntagFluidgridsEntityDocument, UpdateWorkflowDefinitionDocument, UsageTimeSeriesDocument, WebhookTestListenerDocument, WorkflowDefinitionDocument, WorkflowDefinitionsDocument, WorkflowDefinitionsTagsDocument, WorkflowPinnedDataDocument, WorkflowRunDocument, WorkflowRunsDocument, WorkflowVersionsDocument, WorkspaceRunsQuotaDocument, useActivateWorkflowDefinitionMutation, useActiveExecutionsLazyQuery, useActiveExecutionsQuery, useActiveExecutionsSuspenseQuery, useAvailableFluidgridsTagsLazyQuery, useAvailableFluidgridsTagsQuery, useAvailableFluidgridsTagsSuspenseQuery, useCancelExecutionMutation, useCreateFluidgridsTagMutation, useCreateWorkflowDefinitionMutation, useCreateWorkflowVersionMutation, useDashboardSummaryLazyQuery, useDashboardSummaryQuery, useDashboardSummarySuspenseQuery, useDeactivateWorkflowDefinitionMutation, useDeleteWorkflowDefinitionMutation, useDuplicateWorkflowMutation, useEventRegistrationsLazyQuery, useEventRegistrationsQuery, useEventRegistrationsSuspenseQuery, useExecuteStepMutation, useExecutionDetailLazyQuery, useExecutionDetailQuery, useExecutionDetailSuspenseQuery, useExecutionLogsLazyQuery, useExecutionLogsQuery, useExecutionLogsSuspenseQuery, useExecutionStatsLazyQuery, useExecutionStatsQuery, useExecutionStatsSuspenseQuery, useExecutionsListLazyQuery, useExecutionsListQuery, useExecutionsListSuspenseQuery, useFluidgridsEntityTagsLazyQuery, useFluidgridsEntityTagsQuery, useFluidgridsEntityTagsSuspenseQuery, useImportWorkflowMutation, useImportWorkflowTemplateMutation, useNodeEndpointConfigLazyQuery, useNodeEndpointConfigQuery, useNodeEndpointConfigSuspenseQuery, useNodeEndpointConfigsLazyQuery, useNodeEndpointConfigsQuery, useNodeEndpointConfigsSuspenseQuery, useNodeManifestLazyQuery, useNodeManifestQuery, useNodeManifestSuspenseQuery, useNodeSchemaIntrospectionLazyQuery, useNodeSchemaIntrospectionQuery, useNodeSchemaIntrospectionSuspenseQuery, useNodeStatesLazyQuery, useNodeStatesQuery, useNodeStatesSuspenseQuery, useNodeUsageStatusLazyQuery, useNodeUsageStatusQuery, useNodeUsageStatusSuspenseQuery, usePauseExecutionMutation, usePinNodeDataMutation, useRegisterNodeMutation, useRemoveNodeFromWorkflowsMutation, useReplaceFluidgridsEntityTagsMutation, useRestoreWorkflowVersionMutation, useResumeExecutionMutation, useRetryNodeMutation, useRunFromNodeEligibilityLazyQuery, useRunFromNodeEligibilityQuery, useRunFromNodeEligibilitySuspenseQuery, useRunFromNodeMutation, useRunLogAppendedSubscription, useRunLogsLazyQuery, useRunLogsQuery, useRunLogsSuspenseQuery, useSearchFluidgridsTagsLazyQuery, useSearchFluidgridsTagsQuery, useSearchFluidgridsTagsSuspenseQuery, useTagFluidgridsEntityMutation, useTerminateExecutionMutation, useTriggerWorkflowMutation, useUnpinNodeDataMutation, useUntagFluidgridsEntityMutation, useUpdateWorkflowDefinitionMutation, useUsageTimeSeriesLazyQuery, useUsageTimeSeriesQuery, useUsageTimeSeriesSuspenseQuery, useWorkflowDefinitionLazyQuery, useWorkflowDefinitionQuery, useWorkflowDefinitionSuspenseQuery, useWorkflowDefinitionsLazyQuery, useWorkflowDefinitionsQuery, useWorkflowDefinitionsSuspenseQuery, useWorkflowDefinitionsTagsLazyQuery, useWorkflowDefinitionsTagsQuery, useWorkflowDefinitionsTagsSuspenseQuery, useWorkflowPinnedDataLazyQuery, useWorkflowPinnedDataQuery, useWorkflowPinnedDataSuspenseQuery, useWorkflowRunLazyQuery, useWorkflowRunQuery, useWorkflowRunSuspenseQuery, useWorkflowRunsLazyQuery, useWorkflowRunsQuery, useWorkflowRunsSuspenseQuery, useWorkflowVersionsLazyQuery, useWorkflowVersionsQuery, useWorkflowVersionsSuspenseQuery };
381
+ // src/utils/node-endpoint-configs.ts
382
+ var NODE_CONFIG_PAGE_SIZE = 500;
383
+ var NODE_CONFIG_MAX_PAGES = 20;
384
+ async function fetchAllNodeEndpointConfigs(client, filters = {}, fetchPolicy = "network-only") {
385
+ const byId = /* @__PURE__ */ new Map();
386
+ let offset = 0;
387
+ for (let page = 0; page < NODE_CONFIG_MAX_PAGES; page++) {
388
+ const { data } = await client.query({
389
+ query: NodeEndpointConfigsDocument,
390
+ variables: {
391
+ ...filters,
392
+ pagination: { limit: NODE_CONFIG_PAGE_SIZE, offset }
393
+ },
394
+ fetchPolicy
395
+ });
396
+ const result = data?.nodeEndpointConfigs;
397
+ const configs = result?.configs ?? [];
398
+ for (const config of configs) {
399
+ if (config?.id && !byId.has(config.id)) byId.set(config.id, config);
400
+ }
401
+ if (!result?.pagination?.hasMore || configs.length === 0) {
402
+ return [...byId.values()];
403
+ }
404
+ offset += configs.length;
405
+ }
406
+ console.warn(
407
+ `[Workflows] Stopped loading node configs after ${NODE_CONFIG_MAX_PAGES} pages; the catalog may be incomplete.`
408
+ );
409
+ return [...byId.values()];
410
+ }
411
+
412
+ export { ActivateWorkflowDefinitionDocument, ActiveExecutionsDocument, AvailableFluidgridsTagsDocument, CancelExecutionDocument, CreateFluidgridsTagDocument, CreateWorkflowDefinitionDocument, CreateWorkflowVersionDocument, DashboardSummaryDocument, DataTablesTagsDocument, DeactivateWorkflowDefinitionDocument, DeleteWorkflowDefinitionDocument, DuplicateWorkflowDocument, EventRegistrationsDocument, ExecuteStepDocument, ExecutionDetailDocument, ExecutionLogsDocument, ExecutionStatsDocument, ExecutionsListDocument, FluidgridsAvailableTagFieldsFragmentDoc, FluidgridsEntityTagsDocument, FluidgridsTagAssignmentFieldsFragmentDoc, ImportWorkflowDocument, ImportWorkflowTemplateDocument, ListenForWebhookTestEventDocument, NodeEndpointConfigDocument, NodeEndpointConfigsDocument, NodeManifestDocument, NodeSchemaIntrospectionDocument, NodeStatesDocument, NodeUsageStatusDocument, PauseExecutionDocument, PinNodeDataDocument, RegisterNodeDocument, RemoveNodeFromWorkflowsDocument, ReplaceFluidgridsEntityTagsDocument, RestoreWorkflowVersionDocument, ResumeExecutionDocument, RetryNodeDocument, RunFromNodeDocument, RunFromNodeEligibilityDocument, RunLogAppendedDocument, RunLogLineFieldsFragmentDoc, RunLogsDocument, SearchFluidgridsTagsDocument, StopWebhookTestListenerDocument, TagFluidgridsEntityDocument, TerminateExecutionDocument, TriggerWorkflowDocument, UnpinNodeDataDocument, UntagFluidgridsEntityDocument, UpdateWorkflowDefinitionDocument, UsageTimeSeriesDocument, WebhookTestListenerDocument, WorkflowDefinitionDocument, WorkflowDefinitionsDocument, WorkflowDefinitionsTagsDocument, WorkflowPinnedDataDocument, WorkflowRunDocument, WorkflowRunsDocument, WorkflowVersionsDocument, WorkspaceRunsQuotaDocument, fetchAllNodeEndpointConfigs, useActivateWorkflowDefinitionMutation, useActiveExecutionsLazyQuery, useActiveExecutionsQuery, useActiveExecutionsSuspenseQuery, useAvailableFluidgridsTagsLazyQuery, useAvailableFluidgridsTagsQuery, useAvailableFluidgridsTagsSuspenseQuery, useCancelExecutionMutation, useCreateFluidgridsTagMutation, useCreateWorkflowDefinitionMutation, useCreateWorkflowVersionMutation, useDashboardSummaryLazyQuery, useDashboardSummaryQuery, useDashboardSummarySuspenseQuery, useDeactivateWorkflowDefinitionMutation, useDeleteWorkflowDefinitionMutation, useDuplicateWorkflowMutation, useEventRegistrationsLazyQuery, useEventRegistrationsQuery, useEventRegistrationsSuspenseQuery, useExecuteStepMutation, useExecutionDetailLazyQuery, useExecutionDetailQuery, useExecutionDetailSuspenseQuery, useExecutionLogsLazyQuery, useExecutionLogsQuery, useExecutionLogsSuspenseQuery, useExecutionStatsLazyQuery, useExecutionStatsQuery, useExecutionStatsSuspenseQuery, useExecutionsListLazyQuery, useExecutionsListQuery, useExecutionsListSuspenseQuery, useFluidgridsEntityTagsLazyQuery, useFluidgridsEntityTagsQuery, useFluidgridsEntityTagsSuspenseQuery, useImportWorkflowMutation, useImportWorkflowTemplateMutation, useNodeEndpointConfigLazyQuery, useNodeEndpointConfigQuery, useNodeEndpointConfigSuspenseQuery, useNodeEndpointConfigsLazyQuery, useNodeEndpointConfigsQuery, useNodeEndpointConfigsSuspenseQuery, useNodeManifestLazyQuery, useNodeManifestQuery, useNodeManifestSuspenseQuery, useNodeSchemaIntrospectionLazyQuery, useNodeSchemaIntrospectionQuery, useNodeSchemaIntrospectionSuspenseQuery, useNodeStatesLazyQuery, useNodeStatesQuery, useNodeStatesSuspenseQuery, useNodeUsageStatusLazyQuery, useNodeUsageStatusQuery, useNodeUsageStatusSuspenseQuery, usePauseExecutionMutation, usePinNodeDataMutation, useRegisterNodeMutation, useRemoveNodeFromWorkflowsMutation, useReplaceFluidgridsEntityTagsMutation, useRestoreWorkflowVersionMutation, useResumeExecutionMutation, useRetryNodeMutation, useRunFromNodeEligibilityLazyQuery, useRunFromNodeEligibilityQuery, useRunFromNodeEligibilitySuspenseQuery, useRunFromNodeMutation, useRunLogAppendedSubscription, useRunLogsLazyQuery, useRunLogsQuery, useRunLogsSuspenseQuery, useSearchFluidgridsTagsLazyQuery, useSearchFluidgridsTagsQuery, useSearchFluidgridsTagsSuspenseQuery, useTagFluidgridsEntityMutation, useTerminateExecutionMutation, useTriggerWorkflowMutation, useUnpinNodeDataMutation, useUntagFluidgridsEntityMutation, useUpdateWorkflowDefinitionMutation, useUsageTimeSeriesLazyQuery, useUsageTimeSeriesQuery, useUsageTimeSeriesSuspenseQuery, useWorkflowDefinitionLazyQuery, useWorkflowDefinitionQuery, useWorkflowDefinitionSuspenseQuery, useWorkflowDefinitionsLazyQuery, useWorkflowDefinitionsQuery, useWorkflowDefinitionsSuspenseQuery, useWorkflowDefinitionsTagsLazyQuery, useWorkflowDefinitionsTagsQuery, useWorkflowDefinitionsTagsSuspenseQuery, useWorkflowPinnedDataLazyQuery, useWorkflowPinnedDataQuery, useWorkflowPinnedDataSuspenseQuery, useWorkflowRunLazyQuery, useWorkflowRunQuery, useWorkflowRunSuspenseQuery, useWorkflowRunsLazyQuery, useWorkflowRunsQuery, useWorkflowRunsSuspenseQuery, useWorkflowVersionsLazyQuery, useWorkflowVersionsQuery, useWorkflowVersionsSuspenseQuery };
@@ -1,9 +1,8 @@
1
1
  import { isGuidedTourIntent, pickGuidedTour, withoutGuidedTourIntent, isCreateIntent, decideMissingWorkflow } from './chunk-YGBDZ424.js';
2
- import { useInstalledNodes, buildNodeCheck, refetchStoreNodes, FlowBuilderPage, buildRequiredNodeTypes, mergeStickyNotes } from './chunk-5KPXP4JF.js';
3
- import { QuotaExhaustedDialog } from './chunk-SYVLFHWV.js';
4
- import { useLazyWorkflowDefinition, useCreateWorkflow } from './chunk-3B3624QM.js';
5
- import { useFlowStore } from './chunk-VI2RFS65.js';
6
- import { BILLING_PLANS_PATH, isQuotaExhaustedFailure } from './chunk-4UAWCWS7.js';
2
+ import { useInstalledNodes, buildNodeCheck, FlowBuilderPage, buildRequiredNodeTypes } from './chunk-TQRBDECQ.js';
3
+ import { QuotaExhaustedDialog } from './chunk-OD2XBMS6.js';
4
+ import { useLazyWorkflowDefinition, useCreateWorkflow } from './chunk-J3XDX5HG.js';
5
+ import { useFlowStore, refetchStoreNodes, BILLING_PLANS_PATH, mergeStickyNotes, isQuotaExhaustedFailure } from './chunk-MR4OTF7D.js';
7
6
  import { useTr } from './chunk-UULVIT25.js';
8
7
  import { useLocation, useNavigate, useParams } from 'react-router';
9
8
  import { toast } from 'sonner';
@@ -518,6 +517,7 @@ function WorkflowItem({
518
517
  /* @__PURE__ */ jsx(
519
518
  QuotaExhaustedDialog,
520
519
  {
520
+ surface: "builder-create",
521
521
  open: createQuotaExhausted,
522
522
  onOpenChange: (open) => {
523
523
  if (open) return;
@@ -1,5 +1,4 @@
1
- import { fetchAllNodeEndpointConfigs } from './chunk-AVJIWVHL.js';
2
- import { NodeEndpointConfigsDocument, NodeEndpointConfigDocument, NodeManifestDocument } from './chunk-QEPYK454.js';
1
+ import { NodeEndpointConfigsDocument, NodeEndpointConfigDocument, NodeManifestDocument, fetchAllNodeEndpointConfigs } from './chunk-CZURRUDX.js';
3
2
  import { useTr } from './chunk-UULVIT25.js';
4
3
  import { getFluidGridsClient } from './chunk-NTWG3CJX.js';
5
4
  import { useMemo, useState, useCallback, useEffect } from 'react';
@@ -1,4 +1,4 @@
1
- import { useEntityTags, useTagEntity, useUntagEntity } from './chunk-SOPYCZCR.js';
1
+ import { useEntityTags, useTagEntity, useUntagEntity } from './chunk-NJZAWUGC.js';
2
2
  import { getFluidGridsConfig } from './chunk-CY6KX4RG.js';
3
3
  import { useState, useRef, useEffect, useCallback } from 'react';
4
4
  import { TagBadge, TagsWidget } from '@burdenoff/fe-libs/tag';
@@ -1,6 +1,6 @@
1
+ import { useFluidGridsAnalytics, throwIfResultError, emitWorkflowCreated, emitRunStarted, runTriggerFromMode, openRunQuotaUpgradePrompt, emitWorkflowPublished } from './chunk-MR4OTF7D.js';
1
2
  import { getFluidGridsConfig } from './chunk-CY6KX4RG.js';
2
- import { WorkflowDefinitionsDocument, WorkflowDefinitionDocument, WorkflowVersionsDocument, CreateWorkflowDefinitionDocument, ImportWorkflowDocument, UpdateWorkflowDefinitionDocument, CreateWorkflowVersionDocument, DeleteWorkflowDefinitionDocument, DuplicateWorkflowDocument, RestoreWorkflowVersionDocument, TriggerWorkflowDocument, WorkflowRunsDocument, WorkflowRunDocument, DashboardSummaryDocument, ActivateWorkflowDefinitionDocument, DeactivateWorkflowDefinitionDocument } from './chunk-QEPYK454.js';
3
- import { throwIfResultError, openRunQuotaUpgradePrompt } from './chunk-4UAWCWS7.js';
3
+ import { WorkflowDefinitionsDocument, WorkflowDefinitionDocument, WorkflowVersionsDocument, CreateWorkflowDefinitionDocument, ImportWorkflowDocument, UpdateWorkflowDefinitionDocument, CreateWorkflowVersionDocument, DeleteWorkflowDefinitionDocument, DuplicateWorkflowDocument, RestoreWorkflowVersionDocument, TriggerWorkflowDocument, WorkflowRunsDocument, WorkflowRunDocument, DashboardSummaryDocument, ActivateWorkflowDefinitionDocument, DeactivateWorkflowDefinitionDocument } from './chunk-CZURRUDX.js';
4
4
  import { useTr } from './chunk-UULVIT25.js';
5
5
  import { getFluidGridsClient } from './chunk-NTWG3CJX.js';
6
6
  import { useState, useCallback, useEffect, useMemo } from 'react';
@@ -214,6 +214,7 @@ function useWorkflowVersions(workflowKey) {
214
214
  };
215
215
  }
216
216
  function useCreateWorkflow() {
217
+ const { bus, workspaceId } = useFluidGridsAnalytics();
217
218
  const [workflow, setWorkflow] = useState(null);
218
219
  const [loading, setLoading] = useState(false);
219
220
  const [error, setError] = useState(null);
@@ -241,6 +242,14 @@ function useCreateWorkflow() {
241
242
  );
242
243
  const data = result.data?.createWorkflowDefinition ?? null;
243
244
  setWorkflow(data);
245
+ if (data) {
246
+ emitWorkflowCreated(bus, {
247
+ workspaceId,
248
+ workflowId: data.id,
249
+ source: options?.source ?? "blank",
250
+ definition: input.definitionJson
251
+ });
252
+ }
244
253
  return data;
245
254
  } catch (err) {
246
255
  setError(err);
@@ -250,7 +259,7 @@ function useCreateWorkflow() {
250
259
  setLoading(false);
251
260
  }
252
261
  },
253
- []
262
+ [bus, workspaceId]
254
263
  );
255
264
  return {
256
265
  createWorkflow,
@@ -260,40 +269,52 @@ function useCreateWorkflow() {
260
269
  };
261
270
  }
262
271
  function useImportWorkflow() {
272
+ const { bus, workspaceId } = useFluidGridsAnalytics();
263
273
  const [result, setResult] = useState(null);
264
274
  const [loading, setLoading] = useState(false);
265
275
  const [error, setError] = useState(null);
266
- const importWorkflow = useCallback(async (input) => {
267
- setLoading(true);
268
- setError(null);
269
- try {
270
- const config = getFluidGridsConfig();
271
- const inputWithProductContext = {
272
- ...input,
273
- context: {
274
- ...input.context || {},
275
- ...config.productId ? { productId: config.productId } : {},
276
- ...config.productName ? { productName: config.productName } : {}
276
+ const importWorkflow = useCallback(
277
+ async (input) => {
278
+ setLoading(true);
279
+ setError(null);
280
+ try {
281
+ const config = getFluidGridsConfig();
282
+ const inputWithProductContext = {
283
+ ...input,
284
+ context: {
285
+ ...input.context || {},
286
+ ...config.productId ? { productId: config.productId } : {},
287
+ ...config.productName ? { productName: config.productName } : {}
288
+ }
289
+ };
290
+ const client = getFluidGridsClient();
291
+ const response = throwIfResultError(
292
+ await client.mutate({
293
+ mutation: IMPORT_WORKFLOW,
294
+ variables: { input: inputWithProductContext },
295
+ refetchQueries: ["WorkflowDefinitions"]
296
+ })
297
+ );
298
+ const data = response.data?.importWorkflow ?? null;
299
+ setResult(data);
300
+ if (data?.success && data.workflow) {
301
+ emitWorkflowCreated(bus, {
302
+ workspaceId,
303
+ workflowId: data.workflow.id,
304
+ source: "import",
305
+ definition: input.definitionJson
306
+ });
277
307
  }
278
- };
279
- const client = getFluidGridsClient();
280
- const response = throwIfResultError(
281
- await client.mutate({
282
- mutation: IMPORT_WORKFLOW,
283
- variables: { input: inputWithProductContext },
284
- refetchQueries: ["WorkflowDefinitions"]
285
- })
286
- );
287
- const data = response.data?.importWorkflow ?? null;
288
- setResult(data);
289
- return data;
290
- } catch (err) {
291
- setError(err);
292
- return null;
293
- } finally {
294
- setLoading(false);
295
- }
296
- }, []);
308
+ return data;
309
+ } catch (err) {
310
+ setError(err);
311
+ return null;
312
+ } finally {
313
+ setLoading(false);
314
+ }
315
+ },
316
+ [bus, workspaceId]
317
+ );
297
318
  return {
298
319
  importWorkflow,
299
320
  result,
@@ -404,11 +425,12 @@ function useDeleteWorkflow() {
404
425
  };
405
426
  }
406
427
  function useDuplicateWorkflow() {
428
+ const { bus, workspaceId } = useFluidGridsAnalytics();
407
429
  const [result, setResult] = useState(null);
408
430
  const [loading, setLoading] = useState(false);
409
431
  const [error, setError] = useState(null);
410
432
  const duplicateWorkflow = useCallback(
411
- async (workflowKey, version, input) => {
433
+ async (workflowKey, version, input, options) => {
412
434
  setLoading(true);
413
435
  setError(null);
414
436
  try {
@@ -422,6 +444,14 @@ function useDuplicateWorkflow() {
422
444
  );
423
445
  const data = response.data?.duplicateWorkflow ?? null;
424
446
  setResult(data);
447
+ if (data?.success && data.workflow) {
448
+ emitWorkflowCreated(bus, {
449
+ workspaceId,
450
+ workflowId: data.workflow.id,
451
+ source: options?.source ?? "duplicate",
452
+ definition: data.workflow.definitionJson
453
+ });
454
+ }
425
455
  return data;
426
456
  } catch (err) {
427
457
  setError(err);
@@ -430,7 +460,7 @@ function useDuplicateWorkflow() {
430
460
  setLoading(false);
431
461
  }
432
462
  },
433
- []
463
+ [bus, workspaceId]
434
464
  );
435
465
  return {
436
466
  duplicateWorkflow,
@@ -477,6 +507,7 @@ function useRestoreWorkflowVersion() {
477
507
  }
478
508
  function useTriggerWorkflow() {
479
509
  const tr = useTr();
510
+ const { bus, workspaceId } = useFluidGridsAnalytics();
480
511
  const [result, setResult] = useState(null);
481
512
  const [loading, setLoading] = useState(false);
482
513
  const [error, setError] = useState(null);
@@ -494,16 +525,27 @@ function useTriggerWorkflow() {
494
525
  );
495
526
  const data = response.data?.triggerWorkflow ?? null;
496
527
  setResult(data);
528
+ if (data) {
529
+ emitRunStarted(bus, {
530
+ workspaceId,
531
+ executionId: data.runId,
532
+ trigger: runTriggerFromMode(input.mode)
533
+ });
534
+ }
497
535
  return data;
498
536
  } catch (err) {
499
537
  setError(err);
500
- openRunQuotaUpgradePrompt(err, tr);
538
+ openRunQuotaUpgradePrompt(err, tr, {
539
+ bus,
540
+ workspaceId,
541
+ surface: "runs"
542
+ });
501
543
  return null;
502
544
  } finally {
503
545
  setLoading(false);
504
546
  }
505
547
  },
506
- [tr]
548
+ [tr, bus, workspaceId]
507
549
  );
508
550
  return {
509
551
  triggerWorkflow,
@@ -618,28 +660,40 @@ function useDashboardSummary(options = {}) {
618
660
  var ACTIVATE_WORKFLOW_DEFINITION = ActivateWorkflowDefinitionDocument;
619
661
  var DEACTIVATE_WORKFLOW_DEFINITION = DeactivateWorkflowDefinitionDocument;
620
662
  function useActivateWorkflow() {
663
+ const { bus, workspaceId } = useFluidGridsAnalytics();
621
664
  const [loading, setLoading] = useState(false);
622
- const activateWorkflow = useCallback(async (id) => {
623
- setLoading(true);
624
- try {
625
- const client = getFluidGridsClient();
626
- const result = throwIfResultError(
627
- await client.mutate({
628
- mutation: ACTIVATE_WORKFLOW_DEFINITION,
629
- variables: { id },
630
- // Activation changes sibling versions' statuses too (previous
631
- // ACTIVE becomes ARCHIVED) — refresh the version list everywhere.
632
- refetchQueries: ["WorkflowVersions", "WorkflowDefinitions"]
633
- })
634
- );
635
- return result.data?.activateWorkflowDefinition ?? null;
636
- } catch (err) {
637
- console.error("Error activating workflow:", err);
638
- throw err;
639
- } finally {
640
- setLoading(false);
641
- }
642
- }, []);
665
+ const activateWorkflow = useCallback(
666
+ async (id, options) => {
667
+ setLoading(true);
668
+ try {
669
+ const client = getFluidGridsClient();
670
+ const result = throwIfResultError(
671
+ await client.mutate({
672
+ mutation: ACTIVATE_WORKFLOW_DEFINITION,
673
+ variables: { id },
674
+ // Activation changes sibling versions' statuses too (previous
675
+ // ACTIVE becomes ARCHIVED) — refresh the version list everywhere.
676
+ refetchQueries: ["WorkflowVersions", "WorkflowDefinitions"]
677
+ })
678
+ );
679
+ const activated = result.data?.activateWorkflowDefinition ?? null;
680
+ if (activated) {
681
+ emitWorkflowPublished(bus, {
682
+ workspaceId,
683
+ workflowId: activated.id,
684
+ definition: options?.definition
685
+ });
686
+ }
687
+ return activated;
688
+ } catch (err) {
689
+ console.error("Error activating workflow:", err);
690
+ throw err;
691
+ } finally {
692
+ setLoading(false);
693
+ }
694
+ },
695
+ [bus, workspaceId]
696
+ );
643
697
  return { activateWorkflow, loading };
644
698
  }
645
699
  function useDeactivateWorkflow() {
@@ -1,4 +1,4 @@
1
- import { useDataSinks, useDataSinkData, useInsightsData, useRunReplayActions } from './chunk-KNFGMDDU.js';
1
+ import { useDataSinks, useDataSinkData, useInsightsData, useRunReplayActions } from './chunk-2QTKDR23.js';
2
2
  import { useTr } from './chunk-UULVIT25.js';
3
3
  import { useState, useMemo, useEffect } from 'react';
4
4
  import { Icon } from '@iconify/react';
@@ -1,6 +1,6 @@
1
- import { ExecutionStats, ExecutionFilters, ExecutionTable, ExecutionCards, ExecutionTimeline, Pagination } from './chunk-ZKCLX2VR.js';
2
- import { useExecutionsWithStore, useExecutionStats, useExecutionActions, useAutoRefresh } from './chunk-EZF3VWUB.js';
3
- import { useWorkflowDefinitions } from './chunk-3B3624QM.js';
1
+ import { ExecutionStats, ExecutionFilters, ExecutionTable, ExecutionCards, ExecutionTimeline, Pagination } from './chunk-XCQROWIZ.js';
2
+ import { useExecutionsWithStore, useExecutionStats, useExecutionActions, useAutoRefresh } from './chunk-LLPLOWMA.js';
3
+ import { useWorkflowDefinitions } from './chunk-J3XDX5HG.js';
4
4
  import { useExecutionsStore } from './chunk-CY6KX4RG.js';
5
5
  import { useTr } from './chunk-UULVIT25.js';
6
6
  import { useRef, useCallback, useMemo } from 'react';
@@ -1,7 +1,7 @@
1
1
  import { REPLAY_WORKFLOW_RUN, RETRY_WORKFLOW_RUNS } from './chunk-QBFAJNUC.js';
2
+ import { useFluidGridsAnalytics, throwIfResultError, emitRunStarted, openRunQuotaUpgradePrompt } from './chunk-MR4OTF7D.js';
2
3
  import { useExecutionsStore } from './chunk-CY6KX4RG.js';
3
- import { ExecutionsListDocument, ExecutionDetailDocument, ExecutionStatsDocument, PauseExecutionDocument, ResumeExecutionDocument, CancelExecutionDocument, RetryNodeDocument, TriggerWorkflowDocument, TerminateExecutionDocument } from './chunk-QEPYK454.js';
4
- import { throwIfResultError, openRunQuotaUpgradePrompt } from './chunk-4UAWCWS7.js';
4
+ import { ExecutionsListDocument, ExecutionDetailDocument, ExecutionStatsDocument, PauseExecutionDocument, ResumeExecutionDocument, CancelExecutionDocument, RetryNodeDocument, TriggerWorkflowDocument, TerminateExecutionDocument } from './chunk-CZURRUDX.js';
5
5
  import { useTr } from './chunk-UULVIT25.js';
6
6
  import { getFluidGridsClient } from './chunk-NTWG3CJX.js';
7
7
  import { useState, useRef, useCallback, useEffect, useMemo } from 'react';
@@ -213,6 +213,7 @@ function useExecutionStats(options = {}) {
213
213
  }
214
214
  function useExecutionActions() {
215
215
  const tr = useTr();
216
+ const { bus, workspaceId } = useFluidGridsAnalytics();
216
217
  const [loading, setLoading] = useState(false);
217
218
  const [error, setError] = useState(null);
218
219
  const pauseExecution = useCallback(async (id) => {
@@ -315,17 +316,26 @@ function useExecutionActions() {
315
316
  setError(new Error(message));
316
317
  return { ok: false, message };
317
318
  }
319
+ emitRunStarted(bus, {
320
+ workspaceId,
321
+ executionId: run.runId,
322
+ trigger: "manual"
323
+ });
318
324
  return { ok: true, run };
319
325
  } catch (err) {
320
326
  const error2 = err;
321
327
  setError(error2);
322
- openRunQuotaUpgradePrompt(err, tr);
328
+ openRunQuotaUpgradePrompt(err, tr, {
329
+ bus,
330
+ workspaceId,
331
+ surface: "runs"
332
+ });
323
333
  return { ok: false, message: error2.message };
324
334
  } finally {
325
335
  setLoading(false);
326
336
  }
327
337
  },
328
- [tr]
338
+ [tr, bus, workspaceId]
329
339
  );
330
340
  const replayExecution = useCallback(
331
341
  async (runId) => {
@@ -339,16 +349,28 @@ function useExecutionActions() {
339
349
  variables: { runId }
340
350
  })
341
351
  );
342
- return result.data?.replayWorkflowRun ?? null;
352
+ const replayed = result.data?.replayWorkflowRun ?? null;
353
+ if (replayed) {
354
+ emitRunStarted(bus, {
355
+ workspaceId,
356
+ executionId: replayed.runId,
357
+ trigger: "manual"
358
+ });
359
+ }
360
+ return replayed;
343
361
  } catch (err) {
344
362
  setError(err);
345
- openRunQuotaUpgradePrompt(err, tr);
363
+ openRunQuotaUpgradePrompt(err, tr, {
364
+ bus,
365
+ workspaceId,
366
+ surface: "runs"
367
+ });
346
368
  return null;
347
369
  } finally {
348
370
  setLoading(false);
349
371
  }
350
372
  },
351
- [tr]
373
+ [tr, bus, workspaceId]
352
374
  );
353
375
  const retryExecutions = useCallback(
354
376
  async (runIds) => {
@@ -362,16 +384,28 @@ function useExecutionActions() {
362
384
  variables: { runIds }
363
385
  })
364
386
  );
365
- return result.data?.retryWorkflowRuns ?? [];
387
+ const retried = result.data?.retryWorkflowRuns ?? [];
388
+ for (const run of retried) {
389
+ emitRunStarted(bus, {
390
+ workspaceId,
391
+ executionId: run.runId,
392
+ trigger: "manual"
393
+ });
394
+ }
395
+ return retried;
366
396
  } catch (err) {
367
397
  setError(err);
368
- openRunQuotaUpgradePrompt(err, tr);
398
+ openRunQuotaUpgradePrompt(err, tr, {
399
+ bus,
400
+ workspaceId,
401
+ surface: "runs"
402
+ });
369
403
  return [];
370
404
  } finally {
371
405
  setLoading(false);
372
406
  }
373
407
  },
374
- [tr]
408
+ [tr, bus, workspaceId]
375
409
  );
376
410
  const terminateExecution = useCallback(
377
411
  async (runId, reason) => {
@@ -1,10 +1,9 @@
1
- import { buildNodeDisplayMap, ExecutionStatusBadge, formatRunVersion, NodeTimeline, RunLogViewer } from './chunk-ZKCLX2VR.js';
2
- import { useExecution, useExecutionActions, useAutoRefresh } from './chunk-EZF3VWUB.js';
3
- import { EntityTagPicker } from './chunk-GO4UTLV4.js';
4
- import { useFluidGridsPermission, FLUIDGRIDS_PERMISSIONS } from './chunk-ONVGFVNH.js';
1
+ import { buildNodeDisplayMap, ExecutionStatusBadge, formatRunVersion, NodeTimeline, RunLogViewer } from './chunk-XCQROWIZ.js';
2
+ import { useExecution, useExecutionActions, useAutoRefresh } from './chunk-LLPLOWMA.js';
3
+ import { EntityTagPicker } from './chunk-IULOX3NQ.js';
4
+ import { throwIfResultError, useFluidGridsPermission, FLUIDGRIDS_PERMISSIONS } from './chunk-MR4OTF7D.js';
5
5
  import { getFluidGridsConfig } from './chunk-CY6KX4RG.js';
6
- import { RunLogsDocument, RunLogAppendedDocument } from './chunk-QEPYK454.js';
7
- import { throwIfResultError } from './chunk-4UAWCWS7.js';
6
+ import { RunLogsDocument, RunLogAppendedDocument } from './chunk-CZURRUDX.js';
8
7
  import { useTr } from './chunk-UULVIT25.js';
9
8
  import { getFluidGridsClient, getFluidGridsClientSafe } from './chunk-NTWG3CJX.js';
10
9
  import { useState, useRef, useCallback, useEffect, useMemo } from 'react';