@burdenoff/fluidgrids-fe-sdk 2026.1111.1 → 2026.1111.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ExecutionDetailPage-DpAYZYx2.js → ExecutionDetailPage-Dpv1mVsb.js} +96 -34
- package/dist/{FailureTriagePanel-BJoO3lsL.js → FailureTriagePanel-D2RjCsYa.js} +97 -3
- package/dist/{FluidGridsProvider-CraUhM4E.js → FluidGridsProvider-Bg6wKnX4.js} +1 -1
- package/dist/{HistoryPage-CYqyngbp.js → HistoryPage-D75ICUi7.js} +3 -3
- package/dist/{InsightsPage-DBnOta71.js → InsightsPage-DFJ--w4r.js} +352 -72
- package/dist/{ManagedAiPolicyAuthority-D3AYZ5FP.js → ManagedAiPolicyAuthority-DsW8Jmm7.js} +297 -71
- package/dist/{MissingNodesInstallModal-LdB_-hSf.js → MissingNodesInstallModal-SlsOhIEf.js} +2 -2
- package/dist/{NodesPage-fEUyUKLC.js → NodesPage-CcHVwFdc.js} +2 -2
- package/dist/{PublishCustomNodeAction-C6qkAIjG.js → PublishCustomNodeAction-BzYU-juH.js} +1 -1
- package/dist/{TemplateConfigurationModal-CnqJFt2f.js → TemplateConfigurationModal-CdaNA1-J.js} +2 -2
- package/dist/{TemplateDetailPanel-BWnLqcA7.js → TemplateDetailPanel-B83bYkbT.js} +2 -2
- package/dist/{TemplatesPage-omZCh0-D.js → TemplatesPage-WTy20LXZ.js} +5 -5
- package/dist/{VersionDiffDialog-CLgIj_jc.js → VersionDiffDialog-BEIc5QBh.js} +1 -1
- package/dist/{WorkflowProposalCard-CV4kV4_Z.js → WorkflowProposalCard-KEvkgAE1.js} +1 -1
- package/dist/{WorkflowSearchRedirect-D34qC1Qm.js → WorkflowSearchRedirect-DB9R9UDy.js} +10 -10
- package/dist/{WorkflowShareDialog-DiD8Gqim.js → WorkflowShareDialog-C6icr074.js} +2 -2
- package/dist/{WorkflowsList-Bgsy1OPw.js → WorkflowsList-DZ_QxXEV.js} +5 -5
- package/dist/{agent-form-Ci_vxQF5.js → agent-form-hb7BR-JZ.js} +1 -1
- package/dist/{agentTools-D61qQFfw.js → agentTools-eOm3_v4A.js} +2 -2
- package/dist/{codec-client-Cm4GXmJ9.js → codec-client-B3ugmi-P.js} +1 -1
- package/dist/executions.js +1 -1
- package/dist/{flow-builder-sG8ZsMYV.js → flow-builder-B31fZz3L.js} +22 -22
- package/dist/history.js +1 -1
- package/dist/{index-FrgTpWov.d.ts → index-lX6U7gi1.d.ts} +67 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +24 -24
- package/dist/{node-detail-view-pyTakx4l.js → node-detail-view-DIR_J4IW.js} +6 -6
- package/dist/{node-endpoint-configs-DXCKkK_9.js → node-endpoint-configs-DS59aLlH.js} +560 -4
- package/dist/nodes.js +1 -1
- package/dist/observability.d.ts +1 -1
- package/dist/observability.js +1 -1
- package/dist/{quick-config-panel-Zpsh2brj.js → quick-config-panel-iYkp65in.js} +2 -2
- package/dist/settings.js +1 -1
- package/dist/templates.js +1 -1
- package/dist/{useAgentDefinitions-Czl2aHJb.js → useAgentDefinitions-SRq-nq4y.js} +1 -1
- package/dist/{useExecutions-CZuOL3RI.js → useExecutions-D08C6QHV.js} +3 -2
- package/dist/{useObservability-D402nqXD.js → useObservability-111g9mWF.js} +2 -2
- package/dist/{useRunHistory-CsXQohcH.js → useRunHistory-DV-ad0I8.js} +2 -2
- package/dist/{useWorkflows-UyKrrkX-.js → useWorkflows-B0-aiUr8.js} +2 -2
- package/dist/workflow-builder.js +2 -2
- package/dist/workflows-list.js +1 -1
- package/package.json +1 -1
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
3
|
-
import { In as FLUIDGRIDS_FLAGS, Kt as findSaveConflict, Un as useDurableParityEnabled, Wn as useFluidGridsFlag, or as getGlobalStoreClient, qn as usePhaseCFlags, wt as useSaveStatusStore } from "./FluidGridsProvider-
|
|
2
|
+
import { $n as UpdateManagedAiWorkspacePolicyDocument, Li as throwIfResultError, Pi as describeOperationError, Pr as WorkflowNotificationSettingsDocument, Q as DurableHistoryCapsDocument, Qn as UpdateDurableHistoryCapsDocument, Si as getFluidGridsClient, St as ManagedAiWorkspacePolicyDocument, Vi as getFluidGridsConfig, rr as UpdateWorkflowNotificationSettingsDocument } from "./node-endpoint-configs-DS59aLlH.js";
|
|
3
|
+
import { In as FLUIDGRIDS_FLAGS, Kt as findSaveConflict, Un as useDurableParityEnabled, Wn as useFluidGridsFlag, or as getGlobalStoreClient, qn as usePhaseCFlags, wt as useSaveStatusStore } from "./FluidGridsProvider-Bg6wKnX4.js";
|
|
4
4
|
import { H as useFlowStore } from "./node-operation-selection-61d6U9qo.js";
|
|
5
5
|
import { r as useTr } from "./TranslationBridge-CX0OMnyn.js";
|
|
6
|
-
import { Wt as useWorkflowDefinitionQuery, a as useConnections, n as useAgentDefinitions, qt as useWorkflowDefinitionsQuery, zt as useUpdateWorkflowDefinitionMutation } from "./useAgentDefinitions-
|
|
6
|
+
import { Wt as useWorkflowDefinitionQuery, a as useConnections, n as useAgentDefinitions, qt as useWorkflowDefinitionsQuery, zt as useUpdateWorkflowDefinitionMutation } from "./useAgentDefinitions-SRq-nq4y.js";
|
|
7
7
|
import { LF as WorkflowSearchAttributeType, fI as useFluidGridsPermission, oI as FLUIDGRIDS_PERMISSIONS } from "./graphql-types-CulUbQWN.js";
|
|
8
8
|
import { t as FluidGridsDocsLink } from "./FluidGridsDocsLink-iRiufGc2.js";
|
|
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-
|
|
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-
|
|
11
|
-
import { a as useLogStreamDestinations, i as useLogStreamDestinationActions } from "./useObservability-
|
|
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-hb7BR-JZ.js";
|
|
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-B3ugmi-P.js";
|
|
11
|
+
import { a as useLogStreamDestinations, i as useLogStreamDestinationActions } from "./useObservability-111g9mWF.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";
|
|
@@ -2470,6 +2470,296 @@ function RunDataTab() {
|
|
|
2470
2470
|
});
|
|
2471
2471
|
}
|
|
2472
2472
|
|
|
2473
|
+
// src/modules/settings/hooks/useWorkflowNotificationSettings.ts
|
|
2474
|
+
/**
|
|
2475
|
+
* A workflow's notification preferences (G08) for Settings → Notifications
|
|
2476
|
+
* (BOFF-9974): which events notify the workflow's person in the app's bell
|
|
2477
|
+
* and, unless switched off, by push to their devices, and how often.
|
|
2478
|
+
*
|
|
2479
|
+
* Read with `workflowNotificationSettings` (the defaults when nobody saved
|
|
2480
|
+
* any) and saved with `updateWorkflowNotificationSettings`, a partial update.
|
|
2481
|
+
*/
|
|
2482
|
+
/** The throttle window the service accepts, in minutes (0 sends every one). */
|
|
2483
|
+
const NOTIFICATION_THROTTLE_RANGE = {
|
|
2484
|
+
min: 0,
|
|
2485
|
+
max: 1440
|
|
2486
|
+
};
|
|
2487
|
+
async function fetchWorkflowNotificationSettings(workflowKey) {
|
|
2488
|
+
const result = await getFluidGridsClient().query({
|
|
2489
|
+
query: WorkflowNotificationSettingsDocument,
|
|
2490
|
+
variables: { workflowKey },
|
|
2491
|
+
fetchPolicy: "network-only"
|
|
2492
|
+
});
|
|
2493
|
+
throwIfResultError(result);
|
|
2494
|
+
return result.data?.workflowNotificationSettings ?? null;
|
|
2495
|
+
}
|
|
2496
|
+
async function saveWorkflowNotificationSettings(workflowKey, changes) {
|
|
2497
|
+
const result = await getFluidGridsClient().mutate({
|
|
2498
|
+
mutation: UpdateWorkflowNotificationSettingsDocument,
|
|
2499
|
+
variables: { input: {
|
|
2500
|
+
workflowKey,
|
|
2501
|
+
...changes
|
|
2502
|
+
} }
|
|
2503
|
+
});
|
|
2504
|
+
throwIfResultError(result);
|
|
2505
|
+
const saved = result.data?.updateWorkflowNotificationSettings;
|
|
2506
|
+
if (!saved) throw new Error("The notification settings were not saved.");
|
|
2507
|
+
return saved;
|
|
2508
|
+
}
|
|
2509
|
+
function useWorkflowNotificationSettings(workflowKey) {
|
|
2510
|
+
const [loaded, setLoaded] = useState(null);
|
|
2511
|
+
useEffect(() => {
|
|
2512
|
+
if (!workflowKey) return;
|
|
2513
|
+
let cancelled = false;
|
|
2514
|
+
fetchWorkflowNotificationSettings(workflowKey).then((settings) => {
|
|
2515
|
+
if (!cancelled) setLoaded({
|
|
2516
|
+
workflowKey,
|
|
2517
|
+
settings,
|
|
2518
|
+
error: null
|
|
2519
|
+
});
|
|
2520
|
+
}, (err) => {
|
|
2521
|
+
if (!cancelled) setLoaded({
|
|
2522
|
+
workflowKey,
|
|
2523
|
+
settings: null,
|
|
2524
|
+
error: err instanceof Error ? err : new Error(String(err))
|
|
2525
|
+
});
|
|
2526
|
+
});
|
|
2527
|
+
return () => {
|
|
2528
|
+
cancelled = true;
|
|
2529
|
+
};
|
|
2530
|
+
}, [workflowKey]);
|
|
2531
|
+
const save = useCallback(async (changes) => {
|
|
2532
|
+
if (!workflowKey) throw new Error("No workflow selected.");
|
|
2533
|
+
const saved = await saveWorkflowNotificationSettings(workflowKey, changes);
|
|
2534
|
+
setLoaded({
|
|
2535
|
+
workflowKey,
|
|
2536
|
+
settings: saved,
|
|
2537
|
+
error: null
|
|
2538
|
+
});
|
|
2539
|
+
return saved;
|
|
2540
|
+
}, [workflowKey]);
|
|
2541
|
+
const current = loaded?.workflowKey === workflowKey ? loaded : null;
|
|
2542
|
+
return {
|
|
2543
|
+
settings: current?.settings ?? null,
|
|
2544
|
+
loading: !!workflowKey && current === null,
|
|
2545
|
+
error: current?.error ?? null,
|
|
2546
|
+
save
|
|
2547
|
+
};
|
|
2548
|
+
}
|
|
2549
|
+
|
|
2550
|
+
// src/modules/settings/components/WorkflowNotificationsTab.tsx
|
|
2551
|
+
/**
|
|
2552
|
+
* Settings → Notifications (BOFF-9974): what this workflow's person hears
|
|
2553
|
+
* about, through the platform's notifications: the bell in the app, and a
|
|
2554
|
+
* push to their registered devices unless they switch that off.
|
|
2555
|
+
*
|
|
2556
|
+
* The events are a PRODUCTION run failing or succeeding, an AI Agent waiting
|
|
2557
|
+
* for a tool-call approval, and a trigger switched off after repeated errors.
|
|
2558
|
+
* Run outcomes are throttled per workflow: at most one notification of each
|
|
2559
|
+
* kind per window, the next one says how many were held back. The person is
|
|
2560
|
+
* whoever the run ran as (who started it, or the owner of its trigger), else
|
|
2561
|
+
* the workflow's creator.
|
|
2562
|
+
*/
|
|
2563
|
+
function formOf(settings) {
|
|
2564
|
+
return {
|
|
2565
|
+
notifyOnFailure: settings.notifyOnFailure,
|
|
2566
|
+
notifyOnSuccess: settings.notifyOnSuccess,
|
|
2567
|
+
notifyOnApprovalRequest: settings.notifyOnApprovalRequest,
|
|
2568
|
+
notifyOnTriggerDisabled: settings.notifyOnTriggerDisabled,
|
|
2569
|
+
pushEnabled: settings.pushEnabled,
|
|
2570
|
+
throttleMinutes: String(settings.throttleMinutes)
|
|
2571
|
+
};
|
|
2572
|
+
}
|
|
2573
|
+
function WorkflowNotificationsTab({ workflowKey }) {
|
|
2574
|
+
const tr = useTr();
|
|
2575
|
+
const { settings, loading, error, save } = useWorkflowNotificationSettings(workflowKey);
|
|
2576
|
+
const [form, setForm] = useState(null);
|
|
2577
|
+
const [saving, setSaving] = useState(false);
|
|
2578
|
+
const { allowed: canEdit } = useFluidGridsPermission(FLUIDGRIDS_PERMISSIONS.WORKFLOW_UPDATE);
|
|
2579
|
+
const locked = loading || !form || saving || !canEdit;
|
|
2580
|
+
useEffect(() => {
|
|
2581
|
+
if (!settings) return;
|
|
2582
|
+
setForm(formOf(settings));
|
|
2583
|
+
}, [settings]);
|
|
2584
|
+
if (!workflowKey) return /* @__PURE__ */ jsxs("div", {
|
|
2585
|
+
className: "flex items-center gap-2 rounded-lg border border-status-warning-border bg-status-warning-bg-subtle p-3",
|
|
2586
|
+
"data-testid": "workflow-notifications-no-workflow",
|
|
2587
|
+
children: [/* @__PURE__ */ jsx(Icon, {
|
|
2588
|
+
icon: "mdi:information",
|
|
2589
|
+
width: 18,
|
|
2590
|
+
className: "shrink-0 text-status-warning-text"
|
|
2591
|
+
}), /* @__PURE__ */ jsx("p", {
|
|
2592
|
+
className: "text-sm text-status-warning-text",
|
|
2593
|
+
children: tr("fluidgrids.settings.workflowNotifications.noWorkflow", "No workflow selected. Open Settings from a workflow to choose what it notifies you about.")
|
|
2594
|
+
})]
|
|
2595
|
+
});
|
|
2596
|
+
if (error) return /* @__PURE__ */ jsx("p", {
|
|
2597
|
+
className: "text-sm text-status-error-text",
|
|
2598
|
+
role: "alert",
|
|
2599
|
+
children: tr("fluidgrids.settings.workflowNotifications.loadFailed", "Could not load this workflow's notification settings.")
|
|
2600
|
+
});
|
|
2601
|
+
const handleSave = async () => {
|
|
2602
|
+
if (!form) return;
|
|
2603
|
+
const throttleMinutes = parseBoundedInt(form.throttleMinutes, NOTIFICATION_THROTTLE_RANGE);
|
|
2604
|
+
if (throttleMinutes === void 0) {
|
|
2605
|
+
toast.error(tr("fluidgrids.settings.workflowNotifications.throttleRequired", "Enter a number of minutes from 0 to 1440."));
|
|
2606
|
+
return;
|
|
2607
|
+
}
|
|
2608
|
+
setSaving(true);
|
|
2609
|
+
try {
|
|
2610
|
+
await save({
|
|
2611
|
+
notifyOnFailure: form.notifyOnFailure,
|
|
2612
|
+
notifyOnSuccess: form.notifyOnSuccess,
|
|
2613
|
+
notifyOnApprovalRequest: form.notifyOnApprovalRequest,
|
|
2614
|
+
notifyOnTriggerDisabled: form.notifyOnTriggerDisabled,
|
|
2615
|
+
pushEnabled: form.pushEnabled,
|
|
2616
|
+
throttleMinutes
|
|
2617
|
+
});
|
|
2618
|
+
toast.success(tr("fluidgrids.settings.workflowNotifications.savedToast", "Notification settings saved"));
|
|
2619
|
+
} catch (err) {
|
|
2620
|
+
toast.error(tr("fluidgrids.settings.runData.saveFailedToast", "Failed to save settings"), { description: err instanceof Error ? err.message : void 0 });
|
|
2621
|
+
} finally {
|
|
2622
|
+
setSaving(false);
|
|
2623
|
+
}
|
|
2624
|
+
};
|
|
2625
|
+
const flagSwitch = (key, label) => /* @__PURE__ */ jsx(Switch, {
|
|
2626
|
+
"aria-label": label,
|
|
2627
|
+
checked: form?.[key] ?? false,
|
|
2628
|
+
onCheckedChange: (checked) => setForm((f) => f ? {
|
|
2629
|
+
...f,
|
|
2630
|
+
[key]: checked
|
|
2631
|
+
} : f),
|
|
2632
|
+
disabled: locked,
|
|
2633
|
+
"data-testid": `workflow-notifications-${key}`
|
|
2634
|
+
});
|
|
2635
|
+
const failureLabel = tr("fluidgrids.settings.workflowNotifications.onFailureLabel", "A run fails");
|
|
2636
|
+
const successLabel = tr("fluidgrids.settings.workflowNotifications.onSuccessLabel", "A run succeeds");
|
|
2637
|
+
const approvalLabel = tr("fluidgrids.settings.workflowNotifications.onApprovalLabel", "An AI Agent waits for approval");
|
|
2638
|
+
const triggerLabel = tr("fluidgrids.settings.workflowNotifications.onTriggerDisabledLabel", "A trigger is switched off");
|
|
2639
|
+
const inAppLabel = tr("fluidgrids.settings.workflowNotifications.inAppLabel", "In the app");
|
|
2640
|
+
const pushLabel = tr("fluidgrids.settings.workflowNotifications.pushLabel", "Push to your devices");
|
|
2641
|
+
const throttleLabel = tr("fluidgrids.settings.workflowNotifications.throttleLabel", "At most one notification per");
|
|
2642
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
2643
|
+
"data-testid": "workflow-notifications-settings",
|
|
2644
|
+
children: [
|
|
2645
|
+
/* @__PURE__ */ jsxs("div", {
|
|
2646
|
+
className: "mb-6 flex items-start gap-2 rounded-lg border border-border-secondary bg-background-secondary p-3",
|
|
2647
|
+
children: [/* @__PURE__ */ jsx(Icon, {
|
|
2648
|
+
icon: "mdi:bell-outline",
|
|
2649
|
+
width: 18,
|
|
2650
|
+
className: "mt-0.5 shrink-0 text-text-secondary"
|
|
2651
|
+
}), /* @__PURE__ */ jsx("p", {
|
|
2652
|
+
className: "text-sm text-text-secondary",
|
|
2653
|
+
children: tr("fluidgrids.settings.workflowNotifications.intro", "Notifications go to the person a run ran as (whoever started it, or the owner of its trigger), else to the workflow's creator. Run outcomes notify only for production runs; runs you test from the editor never do.")
|
|
2654
|
+
})]
|
|
2655
|
+
}),
|
|
2656
|
+
!canEdit && /* @__PURE__ */ jsx("p", {
|
|
2657
|
+
className: "mb-4 text-xs text-text-secondary",
|
|
2658
|
+
role: "note",
|
|
2659
|
+
children: tr("fluidgrids.settings.execution.readOnly", "You can see these settings but not change them: changing them needs permission to edit workflows.")
|
|
2660
|
+
}),
|
|
2661
|
+
/* @__PURE__ */ jsxs("h3", {
|
|
2662
|
+
className: "mb-1 flex items-center gap-2 text-sm font-semibold text-text-primary",
|
|
2663
|
+
children: [/* @__PURE__ */ jsx(Icon, {
|
|
2664
|
+
icon: "mdi:bell-ring-outline",
|
|
2665
|
+
width: 18
|
|
2666
|
+
}), tr("fluidgrids.settings.workflowNotifications.eventsTitle", "Notify when")]
|
|
2667
|
+
}),
|
|
2668
|
+
/* @__PURE__ */ jsxs("div", {
|
|
2669
|
+
className: "mb-6 divide-y divide-border-secondary",
|
|
2670
|
+
children: [
|
|
2671
|
+
/* @__PURE__ */ jsx(SettingRow, {
|
|
2672
|
+
label: failureLabel,
|
|
2673
|
+
description: tr("fluidgrids.settings.workflowNotifications.onFailureDescription", "A production run of this workflow ends with an error."),
|
|
2674
|
+
children: flagSwitch("notifyOnFailure", failureLabel)
|
|
2675
|
+
}),
|
|
2676
|
+
/* @__PURE__ */ jsx(SettingRow, {
|
|
2677
|
+
label: successLabel,
|
|
2678
|
+
description: tr("fluidgrids.settings.workflowNotifications.onSuccessDescription", "A production run of this workflow completes."),
|
|
2679
|
+
children: flagSwitch("notifyOnSuccess", successLabel)
|
|
2680
|
+
}),
|
|
2681
|
+
/* @__PURE__ */ jsx(SettingRow, {
|
|
2682
|
+
label: approvalLabel,
|
|
2683
|
+
description: tr("fluidgrids.settings.workflowNotifications.onApprovalDescription", "An AI Agent node needs someone to approve a tool call before the run can go on."),
|
|
2684
|
+
children: flagSwitch("notifyOnApprovalRequest", approvalLabel)
|
|
2685
|
+
}),
|
|
2686
|
+
/* @__PURE__ */ jsx(SettingRow, {
|
|
2687
|
+
label: triggerLabel,
|
|
2688
|
+
description: tr("fluidgrids.settings.workflowNotifications.onTriggerDisabledDescription", "A polling trigger stopped itself after failing several times in a row."),
|
|
2689
|
+
children: flagSwitch("notifyOnTriggerDisabled", triggerLabel)
|
|
2690
|
+
})
|
|
2691
|
+
]
|
|
2692
|
+
}),
|
|
2693
|
+
/* @__PURE__ */ jsxs("h3", {
|
|
2694
|
+
className: "mb-1 flex items-center gap-2 text-sm font-semibold text-text-primary",
|
|
2695
|
+
children: [/* @__PURE__ */ jsx(Icon, {
|
|
2696
|
+
icon: "mdi:send-outline",
|
|
2697
|
+
width: 18
|
|
2698
|
+
}), tr("fluidgrids.settings.workflowNotifications.channelsTitle", "Channels")]
|
|
2699
|
+
}),
|
|
2700
|
+
/* @__PURE__ */ jsxs("div", {
|
|
2701
|
+
className: "mb-6 divide-y divide-border-secondary",
|
|
2702
|
+
children: [
|
|
2703
|
+
/* @__PURE__ */ jsx(SettingRow, {
|
|
2704
|
+
label: inAppLabel,
|
|
2705
|
+
description: tr("fluidgrids.settings.workflowNotifications.inAppDescription", "Every notification appears in the bell. This is always on."),
|
|
2706
|
+
children: /* @__PURE__ */ jsx(Switch, {
|
|
2707
|
+
"aria-label": inAppLabel,
|
|
2708
|
+
checked: true,
|
|
2709
|
+
disabled: true
|
|
2710
|
+
})
|
|
2711
|
+
}),
|
|
2712
|
+
/* @__PURE__ */ jsx(SettingRow, {
|
|
2713
|
+
label: pushLabel,
|
|
2714
|
+
description: tr("fluidgrids.settings.workflowNotifications.pushDescription", "Also send each notification to the phones and browsers where you allowed notifications."),
|
|
2715
|
+
children: flagSwitch("pushEnabled", pushLabel)
|
|
2716
|
+
}),
|
|
2717
|
+
/* @__PURE__ */ jsx(SettingRow, {
|
|
2718
|
+
label: throttleLabel,
|
|
2719
|
+
description: tr("fluidgrids.settings.workflowNotifications.throttleDescription", "Failures or successes inside this window are counted and summed up in the next notification. 0 sends every one."),
|
|
2720
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
2721
|
+
className: "flex items-center gap-2",
|
|
2722
|
+
children: [/* @__PURE__ */ jsx(Input, {
|
|
2723
|
+
type: "number",
|
|
2724
|
+
min: NOTIFICATION_THROTTLE_RANGE.min,
|
|
2725
|
+
max: NOTIFICATION_THROTTLE_RANGE.max,
|
|
2726
|
+
"aria-label": throttleLabel,
|
|
2727
|
+
value: form?.throttleMinutes ?? "",
|
|
2728
|
+
onChange: (e) => {
|
|
2729
|
+
const throttleMinutes = e.target.value;
|
|
2730
|
+
setForm((f) => f ? {
|
|
2731
|
+
...f,
|
|
2732
|
+
throttleMinutes
|
|
2733
|
+
} : f);
|
|
2734
|
+
},
|
|
2735
|
+
disabled: locked,
|
|
2736
|
+
className: "w-[100px] text-right",
|
|
2737
|
+
"data-testid": "workflow-notifications-throttleMinutes"
|
|
2738
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
2739
|
+
className: "text-xs text-text-secondary",
|
|
2740
|
+
children: tr("fluidgrids.settings.workflowNotifications.minutesUnit", "minutes")
|
|
2741
|
+
})]
|
|
2742
|
+
})
|
|
2743
|
+
})
|
|
2744
|
+
]
|
|
2745
|
+
}),
|
|
2746
|
+
/* @__PURE__ */ jsxs("div", {
|
|
2747
|
+
className: "flex flex-wrap items-center justify-between gap-3",
|
|
2748
|
+
children: [/* @__PURE__ */ jsx("p", {
|
|
2749
|
+
className: "text-xs text-text-secondary",
|
|
2750
|
+
children: settings && !settings.customized ? tr("fluidgrids.settings.workflowNotifications.defaultsNote", "These are the defaults; nobody has changed them for this workflow yet.") : null
|
|
2751
|
+
}), /* @__PURE__ */ jsx(Button$1, {
|
|
2752
|
+
"data-agent": "confirm",
|
|
2753
|
+
onClick: () => void handleSave(),
|
|
2754
|
+
disabled: locked,
|
|
2755
|
+
"data-testid": "workflow-notifications-save",
|
|
2756
|
+
children: saving ? tr("fluidgrids.settings.execution.saving", "Saving…") : tr("fluidgrids.settings.execution.save", "Save")
|
|
2757
|
+
})]
|
|
2758
|
+
})
|
|
2759
|
+
]
|
|
2760
|
+
});
|
|
2761
|
+
}
|
|
2762
|
+
|
|
2473
2763
|
// src/modules/settings/components/RunControlTab.tsx
|
|
2474
2764
|
/**
|
|
2475
2765
|
* Settings → Run control (BOFF-9906, Phase C): the workspace's activity pause
|
|
@@ -4928,12 +5218,6 @@ const DEFAULT_SETTINGS = {
|
|
|
4928
5218
|
retryDelaySeconds: 10,
|
|
4929
5219
|
concurrentExecutionLimit: 5
|
|
4930
5220
|
},
|
|
4931
|
-
notifications: {
|
|
4932
|
-
emailOnSuccess: false,
|
|
4933
|
-
emailOnFailure: true,
|
|
4934
|
-
webhookOnSuccess: false,
|
|
4935
|
-
webhookOnFailure: true
|
|
4936
|
-
},
|
|
4937
5221
|
api: {
|
|
4938
5222
|
gatewayUrl: "/api/v1/workflows",
|
|
4939
5223
|
webhookUrlFormat: "/api/v1/webhooks/workflow/{workflowKey}/trigger"
|
|
@@ -5402,64 +5686,6 @@ function ExecutionTab({ workflowKey }) {
|
|
|
5402
5686
|
})
|
|
5403
5687
|
] });
|
|
5404
5688
|
}
|
|
5405
|
-
function NotificationsTab() {
|
|
5406
|
-
const tr = useTr();
|
|
5407
|
-
const settings = DEFAULT_SETTINGS.notifications;
|
|
5408
|
-
return /* @__PURE__ */ jsxs("div", { children: [
|
|
5409
|
-
/* @__PURE__ */ jsx(ReadOnlyBanner, {}),
|
|
5410
|
-
/* @__PURE__ */ jsxs("div", {
|
|
5411
|
-
className: "mb-6",
|
|
5412
|
-
children: [/* @__PURE__ */ jsxs("h3", {
|
|
5413
|
-
className: "text-sm font-semibold text-text-primary flex items-center gap-2 mb-3",
|
|
5414
|
-
children: [/* @__PURE__ */ jsx(Icon, {
|
|
5415
|
-
icon: "mdi:email-outline",
|
|
5416
|
-
width: 18
|
|
5417
|
-
}), tr("fluidgrids.settings.notifications.emailSectionTitle", "Email Notifications")]
|
|
5418
|
-
}), /* @__PURE__ */ jsxs("div", {
|
|
5419
|
-
className: "divide-y divide-border-secondary rounded-lg border border-border-secondary bg-background-secondary p-1",
|
|
5420
|
-
children: [/* @__PURE__ */ jsx(SettingRow, {
|
|
5421
|
-
label: tr("fluidgrids.settings.notifications.emailOnSuccessLabel", "On Success"),
|
|
5422
|
-
description: tr("fluidgrids.settings.notifications.emailOnSuccessDescription", "Send email when a workflow execution completes successfully"),
|
|
5423
|
-
children: /* @__PURE__ */ jsx(Switch, {
|
|
5424
|
-
checked: settings.emailOnSuccess,
|
|
5425
|
-
disabled: true
|
|
5426
|
-
})
|
|
5427
|
-
}), /* @__PURE__ */ jsx(SettingRow, {
|
|
5428
|
-
label: tr("fluidgrids.settings.notifications.emailOnFailureLabel", "On Failure"),
|
|
5429
|
-
description: tr("fluidgrids.settings.notifications.emailOnFailureDescription", "Send email when a workflow execution fails"),
|
|
5430
|
-
children: /* @__PURE__ */ jsx(Switch, {
|
|
5431
|
-
checked: settings.emailOnFailure,
|
|
5432
|
-
disabled: true
|
|
5433
|
-
})
|
|
5434
|
-
})]
|
|
5435
|
-
})]
|
|
5436
|
-
}),
|
|
5437
|
-
/* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsxs("h3", {
|
|
5438
|
-
className: "text-sm font-semibold text-text-primary flex items-center gap-2 mb-3",
|
|
5439
|
-
children: [/* @__PURE__ */ jsx(Icon, {
|
|
5440
|
-
icon: "mdi:webhook",
|
|
5441
|
-
width: 18
|
|
5442
|
-
}), tr("fluidgrids.settings.notifications.webhookSectionTitle", "Webhook Notifications")]
|
|
5443
|
-
}), /* @__PURE__ */ jsxs("div", {
|
|
5444
|
-
className: "divide-y divide-border-secondary rounded-lg border border-border-secondary bg-background-secondary p-1",
|
|
5445
|
-
children: [/* @__PURE__ */ jsx(SettingRow, {
|
|
5446
|
-
label: tr("fluidgrids.settings.notifications.webhookOnSuccessLabel", "On Success"),
|
|
5447
|
-
description: tr("fluidgrids.settings.notifications.webhookOnSuccessDescription", "Send webhook when a workflow execution completes successfully"),
|
|
5448
|
-
children: /* @__PURE__ */ jsx(Switch, {
|
|
5449
|
-
checked: settings.webhookOnSuccess,
|
|
5450
|
-
disabled: true
|
|
5451
|
-
})
|
|
5452
|
-
}), /* @__PURE__ */ jsx(SettingRow, {
|
|
5453
|
-
label: tr("fluidgrids.settings.notifications.webhookOnFailureLabel", "On Failure"),
|
|
5454
|
-
description: tr("fluidgrids.settings.notifications.webhookOnFailureDescription", "Send webhook when a workflow execution fails"),
|
|
5455
|
-
children: /* @__PURE__ */ jsx(Switch, {
|
|
5456
|
-
checked: settings.webhookOnFailure,
|
|
5457
|
-
disabled: true
|
|
5458
|
-
})
|
|
5459
|
-
})]
|
|
5460
|
-
})] })
|
|
5461
|
-
] });
|
|
5462
|
-
}
|
|
5463
5689
|
function ApiTab() {
|
|
5464
5690
|
const tr = useTr();
|
|
5465
5691
|
const settings = DEFAULT_SETTINGS.api;
|
|
@@ -5743,7 +5969,7 @@ function SettingsPage({ workflowKey: workflowKeyProp } = {}) {
|
|
|
5743
5969
|
}),
|
|
5744
5970
|
/* @__PURE__ */ jsx(TabsContent, {
|
|
5745
5971
|
value: "notifications",
|
|
5746
|
-
children: /* @__PURE__ */ jsx(
|
|
5972
|
+
children: /* @__PURE__ */ jsx(WorkflowNotificationsTab, { workflowKey })
|
|
5747
5973
|
}),
|
|
5748
5974
|
logStreamsEnabled ? /* @__PURE__ */ jsx(TabsContent, {
|
|
5749
5975
|
value: "log-streaming",
|
|
@@ -1,6 +1,6 @@
|
|
|
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-
|
|
3
|
-
import { i as Button } from "./PublishCustomNodeAction-
|
|
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-B31fZz3L.js";
|
|
3
|
+
import { i as Button } from "./PublishCustomNodeAction-BzYU-juH.js";
|
|
4
4
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
import { AlertTriangle, CheckCircle2, Download, ExternalLink, Loader2, Puzzle, ShoppingCart } from "lucide-react";
|
|
6
6
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
2
|
+
import { Et as NodeManifestDocument, Si as getFluidGridsClient, Tt as NodeEndpointConfigsDocument, t as fetchAllNodeEndpointConfigs, wt as NodeEndpointConfigDocument } from "./node-endpoint-configs-DS59aLlH.js";
|
|
3
3
|
import { r as useTr } from "./TranslationBridge-CX0OMnyn.js";
|
|
4
|
-
import { t as PublishCustomNodeAction } from "./PublishCustomNodeAction-
|
|
4
|
+
import { t as PublishCustomNodeAction } from "./PublishCustomNodeAction-BzYU-juH.js";
|
|
5
5
|
import { useCallback, useEffect, useMemo, useState } from "react";
|
|
6
6
|
import { useNavigate } from "react-router";
|
|
7
7
|
import { Icon } from "@iconify/react";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
2
|
+
import { Vi as getFluidGridsConfig } from "./node-endpoint-configs-DS59aLlH.js";
|
|
3
3
|
import { r as useTr } from "./TranslationBridge-CX0OMnyn.js";
|
|
4
4
|
import { t as cn } from "./cn-QqidFIgr.js";
|
|
5
5
|
import "react";
|
package/dist/{TemplateConfigurationModal-CnqJFt2f.js → TemplateConfigurationModal-CdaNA1-J.js}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { A as DialogTitle, D as DialogHeader, E as DialogFooter, S as Dialog, T as DialogDescription, b as Badge, ht as Input, w as DialogContent } from "./flow-builder-
|
|
3
|
-
import { i as Button } from "./PublishCustomNodeAction-
|
|
2
|
+
import { A as DialogTitle, D as DialogHeader, E as DialogFooter, S as Dialog, T as DialogDescription, b as Badge, ht as Input, w as DialogContent } from "./flow-builder-B31fZz3L.js";
|
|
3
|
+
import { i as Button } from "./PublishCustomNodeAction-BzYU-juH.js";
|
|
4
4
|
import { t as Label } from "./label-CDy86rIZ.js";
|
|
5
5
|
import { r as useTr } from "./TranslationBridge-CX0OMnyn.js";
|
|
6
6
|
import { useEffect, useMemo, useState } from "react";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { i as Button } from "./PublishCustomNodeAction-
|
|
3
|
-
import { b as Badge, y as templatePreview } from "./flow-builder-
|
|
2
|
+
import { i as Button } from "./PublishCustomNodeAction-BzYU-juH.js";
|
|
3
|
+
import { b as Badge, y as templatePreview } from "./flow-builder-B31fZz3L.js";
|
|
4
4
|
import { r as useTr } from "./TranslationBridge-CX0OMnyn.js";
|
|
5
5
|
import { lI as SdkPermissionButton, oI as FLUIDGRIDS_PERMISSIONS } from "./graphql-types-CulUbQWN.js";
|
|
6
6
|
import { Icon } from "@iconify/react";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
3
|
-
import { C as MyWorkflowTemplateSubmissionsDocument, O as WithdrawWorkflowTemplateSubmissionDocument, S as InstallWorkflowNodeDocument, T as SubmitWorkflowTemplateDocument, fn as emitTemplateUsed, mn as emitWorkflowCreated, on as useFluidGridsAnalytics, t as FluidGridsContext, wn as isQuotaExhaustedFailure, yn as BILLING_PLANS_PATH } from "./FluidGridsProvider-
|
|
2
|
+
import { Li as throwIfResultError, Pi as describeOperationError, Si as getFluidGridsClient, Vi as getFluidGridsConfig } from "./node-endpoint-configs-DS59aLlH.js";
|
|
3
|
+
import { C as MyWorkflowTemplateSubmissionsDocument, O as WithdrawWorkflowTemplateSubmissionDocument, S as InstallWorkflowNodeDocument, T as SubmitWorkflowTemplateDocument, fn as emitTemplateUsed, mn as emitWorkflowCreated, on as useFluidGridsAnalytics, t as FluidGridsContext, wn as isQuotaExhaustedFailure, yn as BILLING_PLANS_PATH } from "./FluidGridsProvider-Bg6wKnX4.js";
|
|
4
4
|
import { r as useTr } from "./TranslationBridge-CX0OMnyn.js";
|
|
5
|
-
import { K as useGlobalStoreClient, N as useWorkflowTemplates, P as useInstallNode, t as FlowBuilderPage, v as TemplateCard } from "./flow-builder-
|
|
6
|
-
import { h as useWorkflowDefinitions, l as useLazyWorkflowDefinition, s as useDuplicateWorkflow } from "./useWorkflows-
|
|
7
|
-
import { k as QuotaExhaustedDialog } from "./WorkflowShareDialog-
|
|
5
|
+
import { K as useGlobalStoreClient, N as useWorkflowTemplates, P as useInstallNode, t as FlowBuilderPage, v as TemplateCard } from "./flow-builder-B31fZz3L.js";
|
|
6
|
+
import { h as useWorkflowDefinitions, l as useLazyWorkflowDefinition, s as useDuplicateWorkflow } from "./useWorkflows-B0-aiUr8.js";
|
|
7
|
+
import { k as QuotaExhaustedDialog } from "./WorkflowShareDialog-C6icr074.js";
|
|
8
8
|
import { BF as WorkflowStatus, lI as SdkPermissionButton, oI as FLUIDGRIDS_PERMISSIONS } from "./graphql-types-CulUbQWN.js";
|
|
9
9
|
import { n as useFluidGridsPageControls } from "./pageControlsBridge-0pX9s-3k.js";
|
|
10
10
|
import { r as templatesControls } from "./pageControlSpecs-DZJ9K37m.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { r as useTr } from "./TranslationBridge-CX0OMnyn.js";
|
|
3
|
-
import {
|
|
3
|
+
import { Li as throwIfResultError, Pi as describeOperationError, Si as getFluidGridsClient, pi as WorkflowVersionDiffDocument, xr as WorkflowDefinitionDocument } from "./node-endpoint-configs-DS59aLlH.js";
|
|
4
4
|
import { t as canvasFromDefinition } from "./definition-canvas-D9cWIGEM.js";
|
|
5
5
|
import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
6
6
|
import { Background, Controls, Handle, MiniMap, Position, ReactFlow, ReactFlowProvider } from "@xyflow/react";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
2
|
+
import { Bt as ProposeWorkflowChangeDocument, Fi as isForbiddenError, Gt as RejectWorkflowProposalDocument, Jn as UntagFluidgridsEntityDocument, L as DataTablesTagsDocument, Li as throwIfResultError, N as CreateWorkflowTestCaseDocument, P as CreateWorkflowTestCaseFromRunDocument, Pn as TagFluidgridsEntityDocument, Rr as WorkflowProposalDocument, Si as getFluidGridsClient, T as CreateFluidgridsTagDocument, Vi as getFluidGridsConfig, Xt as ReplaceFluidgridsEntityTagsDocument, ar as UpdateWorkflowTestCaseDocument, ci as WorkflowTestCasesDocument, di as WorkflowTestRunsDocument, ht as FluidgridsEntityTagsDocument, l as AvailableFluidgridsTagsDocument, li as WorkflowTestRunDocument, o as ApplyWorkflowProposalDocument, q as DeleteWorkflowTestCaseDocument, vn as RunWorkflowTestsDocument, xn as SearchFluidgridsTagsDocument, y as CancelWorkflowProposalDocument, zt as ProposeRunFixDocument } from "./node-endpoint-configs-DS59aLlH.js";
|
|
3
3
|
import { r as useTr } from "./TranslationBridge-CX0OMnyn.js";
|
|
4
4
|
import { GF as WorkflowTestRunStatus, HF as WorkflowTestAssertionOperator, Qu as ErrorType, UF as WorkflowTestExpectedStatus, WF as WorkflowTestRunSource } from "./graphql-types-CulUbQWN.js";
|
|
5
5
|
import { a as notifyFluidGridsAiCreditsUpdated } from "./aiCreditsBridge-BuE92tKo.js";
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
|
|
3
|
-
import {
|
|
4
|
-
import { Gt as codeBuildIdOf, H as paramsFromOperation, Tn as useCanvasEdges, Vt as rememberRevision, Yt as workflowFingerprint, bt as classifyCreateRefusal, c as ensureNodeConfigsLoaded, d as refetchStoreNodes, f as registerWorkflowNodeTypes, in as resolveNodeOperation, j as createConfiguredNode, n as FluidGridsProvider, o as NODE_CONFIGS, vt as blankWorkflowCreateInput, wt as useSaveStatusStore, yn as BILLING_PLANS_PATH } from "./FluidGridsProvider-
|
|
3
|
+
import { Li as throwIfResultError, Si as getFluidGridsClient, Vi as getFluidGridsConfig, xr as WorkflowDefinitionDocument } from "./node-endpoint-configs-DS59aLlH.js";
|
|
4
|
+
import { Gt as codeBuildIdOf, H as paramsFromOperation, Tn as useCanvasEdges, Vt as rememberRevision, Yt as workflowFingerprint, bt as classifyCreateRefusal, c as ensureNodeConfigsLoaded, d as refetchStoreNodes, f as registerWorkflowNodeTypes, in as resolveNodeOperation, j as createConfiguredNode, n as FluidGridsProvider, o as NODE_CONFIGS, vt as blankWorkflowCreateInput, wt as useSaveStatusStore, yn as BILLING_PLANS_PATH } from "./FluidGridsProvider-Bg6wKnX4.js";
|
|
5
5
|
import { F as mergeStickyNotes, H as useFlowStore } from "./node-operation-selection-61d6U9qo.js";
|
|
6
6
|
import { r as useTr } from "./TranslationBridge-CX0OMnyn.js";
|
|
7
|
-
import { F as useInstalledNodes, _ as buildRequiredNodeTypes, ct as FluidGridsMark, f as releaseLeaseKeptForReload, g as buildNodeCheck, ht as Input, lt as Card, p as useWorkflowReloadStore, st as useNodeSelectedEvent, t as FlowBuilderPage } from "./flow-builder-
|
|
7
|
+
import { F as useInstalledNodes, _ as buildRequiredNodeTypes, ct as FluidGridsMark, f as releaseLeaseKeptForReload, g as buildNodeCheck, ht as Input, lt as Card, p as useWorkflowReloadStore, st as useNodeSelectedEvent, t as FlowBuilderPage } from "./flow-builder-B31fZz3L.js";
|
|
8
8
|
import { t as cn } from "./cn-QqidFIgr.js";
|
|
9
|
-
import { i as Button } from "./PublishCustomNodeAction-
|
|
10
|
-
import { l as useLazyWorkflowDefinition, m as useWorkflowDefinition, n as useCreateWorkflow } from "./useWorkflows-
|
|
11
|
-
import { O as CreateWorkflowRefusalDialog } from "./WorkflowShareDialog-
|
|
9
|
+
import { i as Button } from "./PublishCustomNodeAction-BzYU-juH.js";
|
|
10
|
+
import { l as useLazyWorkflowDefinition, m as useWorkflowDefinition, n as useCreateWorkflow } from "./useWorkflows-B0-aiUr8.js";
|
|
11
|
+
import { O as CreateWorkflowRefusalDialog } from "./WorkflowShareDialog-C6icr074.js";
|
|
12
12
|
import { c as withoutGuidedTourIntent, l as decideMissingWorkflow, o as isGuidedTourIntent, s as pickGuidedTour, u as isCreateIntent } from "./firstWorkflow-C_h0KMB2.js";
|
|
13
13
|
import { t as canvasFromDefinition } from "./definition-canvas-D9cWIGEM.js";
|
|
14
14
|
import { n as registerLiveCanvasHandler } from "./liveCanvas-D5ytXDp8.js";
|
|
@@ -1627,7 +1627,7 @@ function GuidedTourStarter({ ready }) {
|
|
|
1627
1627
|
}
|
|
1628
1628
|
|
|
1629
1629
|
// src/builder/app/workflow/work/page.tsx
|
|
1630
|
-
const LazyMissingNodesInstallModal = lazy(() => import("./MissingNodesInstallModal-
|
|
1630
|
+
const LazyMissingNodesInstallModal = lazy(() => import("./MissingNodesInstallModal-SlsOhIEf.js").then((m) => ({ default: m.MissingNodesInstallModal })));
|
|
1631
1631
|
function WorkflowItem({ readonly = false }) {
|
|
1632
1632
|
if (readonly) {
|
|
1633
1633
|
const queryParams = new URLSearchParams(window.location.search);
|
|
@@ -1697,9 +1697,9 @@ function WorkflowItem({ readonly = false }) {
|
|
|
1697
1697
|
setInstalling(true);
|
|
1698
1698
|
setInstallErrors([]);
|
|
1699
1699
|
try {
|
|
1700
|
-
const { getGlobalStoreClient } = await import("./FluidGridsProvider-
|
|
1701
|
-
const { InstallWorkflowNodeDocument } = await import("./FluidGridsProvider-
|
|
1702
|
-
const { getFluidGridsConfig } = await import("./node-endpoint-configs-
|
|
1700
|
+
const { getGlobalStoreClient } = await import("./FluidGridsProvider-Bg6wKnX4.js").then((n) => n.sr);
|
|
1701
|
+
const { InstallWorkflowNodeDocument } = await import("./FluidGridsProvider-Bg6wKnX4.js").then((n) => n.m);
|
|
1702
|
+
const { getFluidGridsConfig } = await import("./node-endpoint-configs-DS59aLlH.js").then((n) => n.Bi);
|
|
1703
1703
|
const storeClient = getGlobalStoreClient();
|
|
1704
1704
|
const cfg = getFluidGridsConfig();
|
|
1705
1705
|
for (let i = 0; i < nodesToInstall.length; i++) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
3
|
-
import { hn as emitWorkflowLimitHit, on as useFluidGridsAnalytics, pn as emitUpgradeClicked, xn as WORKFLOWS_QUOTA_NAME } from "./FluidGridsProvider-
|
|
2
|
+
import { Dn as ShareWorkflowDocument, Li as throwIfResultError, Pi as describeOperationError, Si as getFluidGridsClient, lt as ExportWorkflowCodeDocument, ri as WorkflowSharingDocument } from "./node-endpoint-configs-DS59aLlH.js";
|
|
3
|
+
import { hn as emitWorkflowLimitHit, on as useFluidGridsAnalytics, pn as emitUpgradeClicked, xn as WORKFLOWS_QUOTA_NAME } from "./FluidGridsProvider-Bg6wKnX4.js";
|
|
4
4
|
import { r as useTr } from "./TranslationBridge-CX0OMnyn.js";
|
|
5
5
|
import { Pd as FidelityLevel, RF as WorkflowSharePrincipalType, mF as WorkflowExportFormat, qF as WorkflowVisibility, sF as WorkflowAccess, zF as WorkflowShareRole } from "./graphql-types-CulUbQWN.js";
|
|
6
6
|
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
|
|
3
|
-
import { c as useImportWorkflow, h as useWorkflowDefinitions, l as useLazyWorkflowDefinition, n as useCreateWorkflow, o as useDeleteWorkflow, s as useDuplicateWorkflow, u as usePreviewN8nImport } from "./useWorkflows-
|
|
4
|
-
import { In as FLUIDGRIDS_FLAGS, Wn as useFluidGridsFlag, t as FluidGridsContext, wn as isQuotaExhaustedFailure, xt as createThenOpen, yn as BILLING_PLANS_PATH } from "./FluidGridsProvider-
|
|
5
|
-
import { C as readProjectArchive, D as workflowNameFromFile, E as typeScriptModuleFile, O as CreateWorkflowRefusalDialog, S as primaryImportModule, T as typeScriptImportSource, _ as importFileKind, a as downloadWorkflowExport, c as canShareWorkflow, d as MAX_IMPORT_ARCHIVE_BYTES, f as MAX_IMPORT_SOURCE_BYTES, g as importAcceptAttribute, k as QuotaExhaustedDialog, l as CODE_EXPORT_FORMATS, m as checkTypeScriptImport, o as parseWorkflowImport, p as assertImportByteSize, r as useExportWorkflowAs, s as canEditWorkflow, t as WorkflowShareDialog, u as ImportSourceError } from "./WorkflowShareDialog-
|
|
3
|
+
import { c as useImportWorkflow, h as useWorkflowDefinitions, l as useLazyWorkflowDefinition, n as useCreateWorkflow, o as useDeleteWorkflow, s as useDuplicateWorkflow, u as usePreviewN8nImport } from "./useWorkflows-B0-aiUr8.js";
|
|
4
|
+
import { In as FLUIDGRIDS_FLAGS, Wn as useFluidGridsFlag, t as FluidGridsContext, wn as isQuotaExhaustedFailure, xt as createThenOpen, yn as BILLING_PLANS_PATH } from "./FluidGridsProvider-Bg6wKnX4.js";
|
|
5
|
+
import { C as readProjectArchive, D as workflowNameFromFile, E as typeScriptModuleFile, O as CreateWorkflowRefusalDialog, S as primaryImportModule, T as typeScriptImportSource, _ as importFileKind, a as downloadWorkflowExport, c as canShareWorkflow, d as MAX_IMPORT_ARCHIVE_BYTES, f as MAX_IMPORT_SOURCE_BYTES, g as importAcceptAttribute, k as QuotaExhaustedDialog, l as CODE_EXPORT_FORMATS, m as checkTypeScriptImport, o as parseWorkflowImport, p as assertImportByteSize, r as useExportWorkflowAs, s as canEditWorkflow, t as WorkflowShareDialog, u as ImportSourceError } from "./WorkflowShareDialog-C6icr074.js";
|
|
6
6
|
import { H as useFlowStore } from "./node-operation-selection-61d6U9qo.js";
|
|
7
7
|
import { cF as WorkflowAccessFilter, fI as useFluidGridsPermission, lI as SdkPermissionButton, mF as WorkflowExportFormat, oI as FLUIDGRIDS_PERMISSIONS, uI as SdkPermissionGate } from "./graphql-types-CulUbQWN.js";
|
|
8
8
|
import { r as useTr } from "./TranslationBridge-CX0OMnyn.js";
|
|
9
|
-
import { A as CreateWorkflowProjectDocument,
|
|
10
|
-
import { a as useExecutions } from "./useExecutions-
|
|
9
|
+
import { A as CreateWorkflowProjectDocument, Ct as MoveWorkflowFolderDocument, Dr as WorkflowFoldersDocument, Ir as WorkflowProjectsDocument, Jt as RenameWorkflowFolderDocument, Li as throwIfResultError, Pi as describeOperationError, Si as getFluidGridsClient, U as DeleteWorkflowFolderDocument, W as DeleteWorkflowProjectDocument, Yt as RenameWorkflowProjectDocument, f as BulkAssignWorkflowsToProjectDocument, k as CreateWorkflowFolderDocument, m as BulkMoveWorkflowsToFolderDocument, p as BulkDeleteWorkflowsDocument } from "./node-endpoint-configs-DS59aLlH.js";
|
|
10
|
+
import { a as useExecutions } from "./useExecutions-D08C6QHV.js";
|
|
11
11
|
import { a as firstWorkflowProgress, i as builderPathFor, r as GUIDED_TOUR_STATE } from "./firstWorkflow-C_h0KMB2.js";
|
|
12
12
|
import { n as useFluidGridsPageControls } from "./pageControlsBridge-0pX9s-3k.js";
|
|
13
13
|
import { i as workflowsListControls } from "./pageControlSpecs-DZJ9K37m.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { $
|
|
2
|
+
import { $t as ResetWorkflowRunDocument, An as StartBatchExportDocument, Gn as UnpauseActivityDocument, Ht as QueryWorkflowRunDocument, K as DeleteWorkflowSearchAttributeDocument, Kn as UnpauseWorkflowScheduleDocument, Li as throwIfResultError, M as CreateWorkflowSignalTokenDocument, Mn as StartBatchTerminateDocument, Mt as PauseActivityDocument, Pi as describeOperationError, Pt as PauseWorkflowScheduleDocument, Qr as WorkflowScheduleDescribeDocument, Qt as ResetActivityDocument, Si as getFluidGridsClient, Un as TriggerWorkflowScheduleDocument, Wr as WorkflowRunHistoryArchiveDocument, Xn as UpdateArchiveSettingsDocument, Yn as UpdateActivityOptionsDocument, Yr as WorkflowRunUpdateDocument, Zn as UpdateCodecServerSettingsDocument, _r as WorkflowBatchOperationsDocument, ai as WorkflowSignalTokensDocument, an as RevokeWorkflowSignalTokenDocument, b as CodecServerSettingsDocument, c as ArchiveSettingsDocument, dr as WorkflowActivityPauseRulesDocument, en as ResetWorkflowRunToLastCleanTaskDocument, h as CancelBatchOperationDocument, hr as WorkflowBatchOperationDocument, ir as UpdateWorkflowRunDocument, j as CreateWorkflowSearchAttributeDocument, jn as StartBatchOperationDocument, ln as RunControlFieldsDocument, ni as WorkflowSearchAttributesDocument, or as UpsertWorkflowRunSearchAttributesDocument, u as BackfillWorkflowScheduleDocument, ut as FailActivityByIdDocument, w as CreateActivityPauseRuleDocument, x as CompleteActivityByIdDocument, yr as WorkflowCodeBundleSdkDocument, z as DeleteActivityPauseRuleDocument } from "./node-endpoint-configs-DS59aLlH.js";
|
|
3
3
|
import { useCallback, useEffect, useRef, useState } from "react";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
import { Label, Textarea } from "@burdenoff/fe-libs/ui";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { B as nodeTitle, H as paramsFromOperation, R as fixedParameterState, U as selectedOperationOf, ht as isFlowComplete, j as createConfiguredNode, l as isNodeConfigsInitialized, o as NODE_CONFIGS, p as registryNodeData, st as autosaveAllowedFor, wt as useSaveStatusStore } from "./FluidGridsProvider-
|
|
2
|
+
import { B as nodeTitle, H as paramsFromOperation, R as fixedParameterState, U as selectedOperationOf, ht as isFlowComplete, j as createConfiguredNode, l as isNodeConfigsInitialized, o as NODE_CONFIGS, p as registryNodeData, st as autosaveAllowedFor, wt as useSaveStatusStore } from "./FluidGridsProvider-Bg6wKnX4.js";
|
|
3
3
|
import { E as resolveOutputHandles, H as useFlowStore, T as resolveInputHandles } from "./node-operation-selection-61d6U9qo.js";
|
|
4
|
-
import { M as computeAttachPosition, xt as isNodeTypeHiddenFromPalette } from "./flow-builder-
|
|
4
|
+
import { M as computeAttachPosition, xt as isNodeTypeHiddenFromPalette } from "./flow-builder-B31fZz3L.js";
|
|
5
5
|
import { AgentToolError, defineAgentTool } from "@burdenoff/fe-libs/shared/agent-tools";
|
|
6
6
|
import { z } from "zod";
|
|
7
7
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
2
|
+
import { Li as throwIfResultError, Si as getFluidGridsClient } from "./node-endpoint-configs-DS59aLlH.js";
|
|
3
3
|
import { r as useTr } from "./TranslationBridge-CX0OMnyn.js";
|
|
4
4
|
import { useCallback, useEffect, useState } from "react";
|
|
5
5
|
import { cn } from "@burdenoff/fe-libs/utils";
|
package/dist/executions.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { t as ExecutionDetailPage, y as ExecutionsListPage } from "./ExecutionDetailPage-
|
|
2
|
+
import { t as ExecutionDetailPage, y as ExecutionsListPage } from "./ExecutionDetailPage-Dpv1mVsb.js";
|
|
3
3
|
|
|
4
4
|
export { ExecutionDetailPage, ExecutionsListPage };
|