@burdenoff/fluidgrids-fe-sdk 2026.1113.7 → 2026.1113.9
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/{AiStudioPage-DZ0YBcTL.js → AiStudioPage-D9vovsZE.js} +4 -4
- package/dist/{ApprovalInboxPage-CbkmOXaq.js → ApprovalInboxPage-DVoqdqwA.js} +1 -1
- package/dist/{DataSinkDashboardPage-231cS9dt.js → DataSinkDashboardPage-CXb1uNau.js} +1 -1
- package/dist/{ExecutionDetailPage-CoRLOiiZ.js → ExecutionDetailPage-BuU66VvK.js} +29 -17
- package/dist/{ExecutionsListDocument-CzdLPpj5.js → ExecutionStatsDocument-6ixNZnBV.js} +1 -346
- package/dist/{ExecutionsListPage-Dr0Ychbr.js → ExecutionsListPage-DMAOPJCa.js} +8 -5
- package/dist/{FluidGridsProvider-DQP7gPxN.js → FluidGridsProvider-BOBuK7kj.js} +481 -32
- package/dist/{HistoryPage-C99YGv7V.js → HistoryPage-DUcPEycb.js} +1 -1
- package/dist/{InsightsPage-ySywDcp_.js → InsightsPage-C3FjaLKN.js} +1 -1
- package/dist/{PaidTemplateConfirm-CI6TDivO.js → PaidTemplateConfirm-Dop_rxCQ.js} +1 -1
- package/dist/{QuotaExhaustedDialog-nlnRlQ2i.js → QuotaExhaustedDialog-CijT1MyD.js} +1 -1
- package/dist/{SettingsPage-tKzJkG-L.js → SettingsPage-C4G9OlJV.js} +3 -3
- package/dist/{TemplateCard-UnjAFsS4.js → TemplateCard-7rE1VAIC.js} +2 -2
- package/dist/{TemplatePreview-WiRz3SCv.js → TemplatePreview-CSA9W-e1.js} +4 -4
- package/dist/{TemplatesPage-Z2LDGg3g.js → TemplatesPage-C_trA48U.js} +7 -7
- package/dist/TranslationBridge-Bd4aJKMs.d.ts +11 -0
- package/dist/{WorkflowBuilder-CQWz7dXc.js → WorkflowBuilder-CkoZDS1_.js} +3 -3
- package/dist/{WorkflowBuilder-BdnCh2hB.js → WorkflowBuilder-DZWmp9Vg.js} +5 -5
- package/dist/{WorkflowSearchRedirect-DoiDmeyL.js → WorkflowSearchRedirect-DQj9_HqI.js} +1 -1
- package/dist/{WorkflowsList-C86YEuZZ.js → WorkflowsList-BOTt7lX5.js} +5 -5
- package/dist/agent-tools.d.ts +1 -1
- package/dist/agent-tools.js +2 -2
- package/dist/{agentTools-BQbgd_wK.js → agentTools-CSoCNDRx.js} +1 -1
- package/dist/{askAboutBridge-BV8m95kk.js → askAboutBridge-kpcjcR9Y.js} +8 -1
- package/dist/assistant.js +1 -1
- package/dist/{canvasNoteTools-Cp3UPIM8.js → canvasNoteTools-DTc3EKvg.js} +2 -2
- package/dist/{constants-XdvUxeWK.d.ts → constants-svpG-QrV.d.ts} +1 -9
- package/dist/entities-I_0kio3q.js +38 -0
- package/dist/executions.js +2 -2
- package/dist/{flow-builder-CJ00qt1Z.js → flow-builder-CYlYHdhf.js} +125 -24
- package/dist/history.js +1 -1
- package/dist/{index-Df6NgmmH.d.ts → index-8Ai8teoo.d.ts} +1 -1
- package/dist/{index-CHeY7_A1.d.ts → index-BZCX9eJJ.d.ts} +13 -0
- package/dist/index.d.ts +4 -3
- package/dist/index.js +33 -32
- package/dist/{marksStore-DGCXjTmZ.js → marksStore-a9oIMMot.js} +25 -1
- package/dist/{node-detail-view-DtZe2ggI.js → node-detail-view-N6n3qegt.js} +4 -4
- package/dist/{node-editor-tab-body-CFprr94T.js → node-editor-tab-body-CivWI2hg.js} +2 -2
- package/dist/observability.d.ts +1 -1
- package/dist/observability.js +2 -2
- package/dist/{popover-DuaVzhfH.js → popover-a8WKNgPP.js} +2 -2
- package/dist/proactive.d.ts +66 -0
- package/dist/proactive.js +237 -0
- package/dist/{quick-config-panel-CmL27iO-.js → quick-config-panel-DABEVJR9.js} +3 -3
- package/dist/{run-display-BycKYSU0.js → run-display-UjLAoYqQ.js} +38 -3
- package/dist/{schedule-panel-DIUNqU9B.js → schedule-panel--u7WXnaC.js} +4 -4
- package/dist/settings.js +1 -1
- package/dist/{sidebar-node-editor-C_mhVSxd.js → sidebar-node-editor-BHqtoMC5.js} +3 -3
- package/dist/templates.js +2 -2
- package/dist/{uiMarkTools-DZ6akjQK.js → uiMarkTools-B2581Qg-.js} +1 -1
- package/dist/{useWorkflowProposal-UtJYycLv.js → use-workflow-tests-BUzndyWO.js} +4 -3265
- package/dist/{useAgentDefinitions-CKZ7oDZD.js → useAgentDefinitions-DykIYrep.js} +2 -2
- package/dist/{useDurableParity-BUSM-z_7.js → useDurableParity-sS0LIJ_l.js} +1 -1
- package/dist/{useExecutions-DSZisQHk.js → useExecutions-GgjDOgcd.js} +2 -2
- package/dist/{useGlobalStoreClient-CXPqlK1M.js → useGlobalStoreClient-BfmKmeIx.js} +1 -1
- package/dist/{useObservability-n7Qdc8Xg.js → useObservability-AMDVk_hX.js} +1 -1
- package/dist/{useRunHistory-Bxs6LrME.js → useRunHistory-gnqIoJnZ.js} +1 -1
- package/dist/{useWorkflowCodeExport-Bj4QY-xY.js → useWorkflowCodeExport-DrcfDTcD.js} +1 -1
- package/dist/useWorkflowProposal-B9vXLKef.js +3280 -0
- package/dist/{useWorkflows-BY5b8r9n.js → useWorkflows-DSZUrK_o.js} +1 -1
- package/dist/workflow-builder.js +4 -4
- package/dist/workflow-host.d.ts +2 -1
- package/dist/workflow-pages.d.ts +1 -1
- package/dist/workflow-pages.js +14 -14
- package/dist/workflows-list.js +1 -1
- package/package.json +7 -3
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
|
|
3
3
|
import { t as ThemeProvider } from "./theme-provider-B3mIuz2d.js";
|
|
4
|
-
import { t as FlowBuilderPage } from "./flow-builder-
|
|
5
|
-
import { _ as useInstalledNodes, a as buildNodeCheck, c as useImportWorkflowTemplate, i as useTemplateImportFlow, n as formatTemplatePrice, o as buildRequiredNodeTypes, r as isPaidTemplate } from "./TemplateCard-
|
|
6
|
-
import { t as QuotaExhaustedDialog } from "./QuotaExhaustedDialog-
|
|
4
|
+
import { t as FlowBuilderPage } from "./flow-builder-CYlYHdhf.js";
|
|
5
|
+
import { _ as useInstalledNodes, a as buildNodeCheck, c as useImportWorkflowTemplate, i as useTemplateImportFlow, n as formatTemplatePrice, o as buildRequiredNodeTypes, r as isPaidTemplate } from "./TemplateCard-7rE1VAIC.js";
|
|
6
|
+
import { t as QuotaExhaustedDialog } from "./QuotaExhaustedDialog-CijT1MyD.js";
|
|
7
7
|
import { n as WithOpenTemplateAsCode } from "./OpenTemplateAsCodeButton-BdcTxemq.js";
|
|
8
8
|
import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
|
|
9
9
|
import { i as SdkPermissionButton, s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-dcxg6zG6.js";
|
|
@@ -12,7 +12,7 @@ import { n as useNavigationV2 } from "./useNavigationV2-C2WeqN7d.js";
|
|
|
12
12
|
import { t as describeOperationError } from "./errors-xPZ-IbQd.js";
|
|
13
13
|
import { t as Disclosure } from "./Disclosure-CsxDspR7.js";
|
|
14
14
|
import { c as useVariables, t as useCreateVariable } from "./useVariables-DFdZofLQ.js";
|
|
15
|
-
import { t as PaidTemplateConfirm } from "./PaidTemplateConfirm-
|
|
15
|
+
import { t as PaidTemplateConfirm } from "./PaidTemplateConfirm-Dop_rxCQ.js";
|
|
16
16
|
import { useEffect, useMemo, useState } from "react";
|
|
17
17
|
import { useLocation, useNavigate, useParams } from "react-router";
|
|
18
18
|
import { Icon } from "@iconify/react";
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
|
|
3
|
-
import { h as useWorkflowDefinitions, l as useLazyWorkflowDefinition, s as useDuplicateWorkflow } from "./useWorkflows-
|
|
4
|
-
import { i as useTemplateImportFlow, l as useWorkflowTemplates, r as isPaidTemplate, t as TemplateCard } from "./TemplateCard-
|
|
3
|
+
import { h as useWorkflowDefinitions, l as useLazyWorkflowDefinition, s as useDuplicateWorkflow } from "./useWorkflows-DSZUrK_o.js";
|
|
4
|
+
import { i as useTemplateImportFlow, l as useWorkflowTemplates, r as isPaidTemplate, t as TemplateCard } from "./TemplateCard-7rE1VAIC.js";
|
|
5
5
|
import { jI as WorkflowStatus } from "./graphql-types-C5Tr6508.js";
|
|
6
6
|
import { i as SdkPermissionButton, t as FLUIDGRIDS_PERMISSIONS } from "./constants-dcxg6zG6.js";
|
|
7
|
-
import { t as QuotaExhaustedDialog } from "./QuotaExhaustedDialog-
|
|
7
|
+
import { t as QuotaExhaustedDialog } from "./QuotaExhaustedDialog-CijT1MyD.js";
|
|
8
8
|
import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
|
|
9
|
-
import {
|
|
9
|
+
import { on as useFluidGridsAnalytics, t as FluidGridsContext } from "./FluidGridsProvider-BOBuK7kj.js";
|
|
10
10
|
import { a as emitTemplateUsed } from "./fluidgridsEvents-Dm5CaHtr.js";
|
|
11
11
|
import { n as useFluidGridsPageControls } from "./pageControlsBridge-0pX9s-3k.js";
|
|
12
12
|
import { r as templatesControls } from "./pageControlSpecs-DZJ9K37m.js";
|
|
13
13
|
import { c as isQuotaExhaustedFailure, t as BILLING_PLANS_PATH } from "./quota-Cdt8yz7N.js";
|
|
14
14
|
import { t as FluidGridsDocsLink } from "./FluidGridsDocsLink-JxkBpOeb.js";
|
|
15
|
-
import { t as useGlobalStoreClient } from "./useGlobalStoreClient-
|
|
15
|
+
import { t as useGlobalStoreClient } from "./useGlobalStoreClient-BfmKmeIx.js";
|
|
16
16
|
import { o as throwIfResultError, t as describeOperationError } from "./errors-xPZ-IbQd.js";
|
|
17
|
-
import { n as formatRunVersion } from "./run-display-
|
|
17
|
+
import { n as formatRunVersion } from "./run-display-UjLAoYqQ.js";
|
|
18
18
|
import { n as useNavigationV2 } from "./useNavigationV2-C2WeqN7d.js";
|
|
19
19
|
import { t as TechnicalDetails } from "./TechnicalDetails-r5JXr1jZ.js";
|
|
20
|
-
import { t as PaidTemplateConfirm } from "./PaidTemplateConfirm-
|
|
20
|
+
import { t as PaidTemplateConfirm } from "./PaidTemplateConfirm-Dop_rxCQ.js";
|
|
21
21
|
import { r as getFluidGridsConfig } from "./config-X97zrIvn.js";
|
|
22
22
|
import { t as cn } from "./cn-QqidFIgr.js";
|
|
23
23
|
import { useCallback, useContext, useEffect, useMemo, useState } from "react";
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
|
|
2
|
+
import { ReactNode } from "react";
|
|
3
|
+
type Translator = (key: string, fallback: string, params?: Record<string, string | number>) => string;
|
|
4
|
+
declare const ENGLISH_FALLBACK_TRANSLATOR: Translator;
|
|
5
|
+
interface FluidGridsTranslationProviderProps {
|
|
6
|
+
t: Translator;
|
|
7
|
+
children: ReactNode;
|
|
8
|
+
}
|
|
9
|
+
declare function FluidGridsTranslationProvider({ t, children }: FluidGridsTranslationProviderProps): import("react").JSX.Element;
|
|
10
|
+
declare function useTr(): Translator;
|
|
11
|
+
export { useTr as a, Translator as i, FluidGridsTranslationProvider as n, FluidGridsTranslationProviderProps as r, ENGLISH_FALLBACK_TRANSLATOR as t };
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
2
|
+
import { cn as useCanvasEdges, n as FluidGridsProvider } from "./FluidGridsProvider-BOBuK7kj.js";
|
|
3
3
|
import { A as useFlowStore } from "./node-operation-selection-BGj5YwAS.js";
|
|
4
4
|
import { t as Button } from "./button-DG7y_FVJ.js";
|
|
5
5
|
import { t as Input } from "./input-ChT6Q-Pr.js";
|
|
6
|
-
import { v as Card } from "./TemplateCard-
|
|
6
|
+
import { v as Card } from "./TemplateCard-7rE1VAIC.js";
|
|
7
7
|
import { t as cn } from "./cn-QqidFIgr.js";
|
|
8
8
|
import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
|
|
9
|
-
import { m as FluidGridsMark, p as useNodeSelectedEvent } from "./flow-builder-
|
|
9
|
+
import { m as FluidGridsMark, p as useNodeSelectedEvent } from "./flow-builder-CYlYHdhf.js";
|
|
10
10
|
import { useCallback, useEffect, useRef, useState } from "react";
|
|
11
11
|
import { Background, Controls, Handle, MarkerType, MiniMap, Position, ReactFlow, ReactFlowProvider, useReactFlow } from "@xyflow/react";
|
|
12
12
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
|
|
3
|
-
import { d as releaseLeaseKeptForReload, f as useWorkflowReloadStore, t as FlowBuilderPage } from "./flow-builder-
|
|
3
|
+
import { d as releaseLeaseKeptForReload, f as useWorkflowReloadStore, t as FlowBuilderPage } from "./flow-builder-CYlYHdhf.js";
|
|
4
4
|
import { n as registerLiveCanvasHandler } from "./liveCanvas-D5ytXDp8.js";
|
|
5
5
|
import { r as getFluidGridsConfig } from "./config-X97zrIvn.js";
|
|
6
6
|
import { n as getFluidGridsClient } from "./client-Ctl4jmY3.js";
|
|
7
7
|
import { o as throwIfResultError } from "./errors-xPZ-IbQd.js";
|
|
8
8
|
import { t as WorkflowDefinitionDocument } from "./WorkflowDefinitionDocument-DZLbTPUZ.js";
|
|
9
9
|
import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
|
|
10
|
-
import {
|
|
10
|
+
import { O as createConfiguredNode, Wt as codeBuildIdOf, Yt as workflowFingerprint, _t as classifyCreateRefusal, g as registerWorkflowNodeTypes, h as registerNodeManifests, ht as blankWorkflowCreateInput, in as resolveNodeOperation, m as refetchStoreNodes, o as NODE_CONFIGS, u as ensureNodeTypesLoaded, xt as useSaveStatusStore, z as paramsFromOperation, zt as rememberRevision } from "./FluidGridsProvider-BOBuK7kj.js";
|
|
11
11
|
import { A as useFlowStore } from "./node-operation-selection-BGj5YwAS.js";
|
|
12
12
|
import { t as canvasFromDefinition } from "./definition-canvas-DL25_6NH.js";
|
|
13
|
-
import { l as useLazyWorkflowDefinition, n as useCreateWorkflow } from "./useWorkflows-
|
|
14
|
-
import { _ as useInstalledNodes, a as buildNodeCheck, o as buildRequiredNodeTypes, s as getWorkflowNodeTypes } from "./TemplateCard-
|
|
13
|
+
import { l as useLazyWorkflowDefinition, n as useCreateWorkflow } from "./useWorkflows-DSZUrK_o.js";
|
|
14
|
+
import { _ as useInstalledNodes, a as buildNodeCheck, o as buildRequiredNodeTypes, s as getWorkflowNodeTypes } from "./TemplateCard-7rE1VAIC.js";
|
|
15
15
|
import { r as mergeStickyNotes } from "./sticky-notes-23j-wL6Q.js";
|
|
16
16
|
import { c as withoutGuidedTourIntent, l as decideMissingWorkflow, o as isGuidedTourIntent, s as pickGuidedTour, u as isCreateIntent } from "./firstWorkflow-C_h0KMB2.js";
|
|
17
17
|
import { t as BILLING_PLANS_PATH } from "./quota-Cdt8yz7N.js";
|
|
18
|
-
import { c as CreateWorkflowRefusalDialog } from "./useWorkflowCodeExport-
|
|
18
|
+
import { c as CreateWorkflowRefusalDialog } from "./useWorkflowCodeExport-DrcfDTcD.js";
|
|
19
19
|
import { Suspense, lazy, useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
20
20
|
import { useLocation, useNavigate, useParams } from "react-router";
|
|
21
21
|
import { Icon } from "@iconify/react";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
|
|
3
|
-
import { m as useWorkflowDefinition } from "./useWorkflows-
|
|
3
|
+
import { m as useWorkflowDefinition } from "./useWorkflows-DSZUrK_o.js";
|
|
4
4
|
import { Navigate, useParams } from "react-router";
|
|
5
5
|
import { Icon } from "@iconify/react";
|
|
6
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -1,12 +1,12 @@
|
|
|
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 {
|
|
5
|
-
import { a as saveWorkflowDescription, c as CreateWorkflowRefusalDialog, o as visibleWorkflowDescription, r as commitWorkflowDescription, s as workflowDescriptionCharactersLeft, t as useExportWorkflowAs } from "./useWorkflowCodeExport-
|
|
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-DSZUrK_o.js";
|
|
4
|
+
import { t as FluidGridsContext, vt as createThenOpen } from "./FluidGridsProvider-BOBuK7kj.js";
|
|
5
|
+
import { a as saveWorkflowDescription, c as CreateWorkflowRefusalDialog, o as visibleWorkflowDescription, r as commitWorkflowDescription, s as workflowDescriptionCharactersLeft, t as useExportWorkflowAs } from "./useWorkflowCodeExport-DrcfDTcD.js";
|
|
6
6
|
import { c as isQuotaExhaustedFailure, t as BILLING_PLANS_PATH } from "./quota-Cdt8yz7N.js";
|
|
7
7
|
import { A as useFlowStore } from "./node-operation-selection-BGj5YwAS.js";
|
|
8
8
|
import { a as SdkPermissionGate, i as SdkPermissionButton, s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-dcxg6zG6.js";
|
|
9
|
-
import { t as QuotaExhaustedDialog } from "./QuotaExhaustedDialog-
|
|
9
|
+
import { t as QuotaExhaustedDialog } from "./QuotaExhaustedDialog-CijT1MyD.js";
|
|
10
10
|
import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
|
|
11
11
|
import { a as isExecutionMode, i as isAutonomyLevel, n as EXECUTION_MODES, o as useAutonomyLevelCopy, r as EXECUTION_MODE_ICONS, s as useExecutionModeCopy } from "./run-mode-BMxym0mD.js";
|
|
12
12
|
import { YF as WorkflowAccessFilter, aI as WorkflowExportFormat } from "./graphql-types-C5Tr6508.js";
|
|
@@ -17,7 +17,7 @@ import { d as useFluidGridsFlag, t as FLUIDGRIDS_FLAGS } from "./feature-flags-B
|
|
|
17
17
|
import { n as downloadWorkflowExport, r as parseWorkflowImport } from "./workflow-transfer-CQnQC-ke.js";
|
|
18
18
|
import { a as useWorkflowProjects, i as useWorkflowProjectActions, n as useWorkflowFolderActions, r as useWorkflowFolders, t as useBulkWorkflowActions } from "./useWorkflowOrganization-r5FWNBs6.js";
|
|
19
19
|
import { t as describeOperationError } from "./errors-xPZ-IbQd.js";
|
|
20
|
-
import { a as useExecutions } from "./useExecutions-
|
|
20
|
+
import { a as useExecutions } from "./useExecutions-GgjDOgcd.js";
|
|
21
21
|
import { a as firstWorkflowProgress, i as builderPathFor, r as GUIDED_TOUR_STATE } from "./firstWorkflow-C_h0KMB2.js";
|
|
22
22
|
import { n as useFluidGridsPageControls } from "./pageControlsBridge-0pX9s-3k.js";
|
|
23
23
|
import { i as workflowsListControls } from "./pageControlSpecs-DZJ9K37m.js";
|
package/dist/agent-tools.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
|
|
2
|
-
import { a as createUiMarkTools, c as FluidGridsAgentToolDeps, d as triggerNodesOf, i as UiMarkToolOptions, l as createFluidGridsAgentTools, n as resetAgentMarks, o as AgentCalloutOverlay, r as useAgentMarksStore, s as AgentCalloutOverlayProps, t as CanvasNote, u as pickTriggerNode } from "./index-
|
|
2
|
+
import { a as createUiMarkTools, c as FluidGridsAgentToolDeps, d as triggerNodesOf, i as UiMarkToolOptions, l as createFluidGridsAgentTools, n as resetAgentMarks, o as AgentCalloutOverlay, r as useAgentMarksStore, s as AgentCalloutOverlayProps, t as CanvasNote, u as pickTriggerNode } from "./index-BZCX9eJJ.js";
|
|
3
3
|
export { AgentCalloutOverlay, type AgentCalloutOverlayProps, type CanvasNote, type FluidGridsAgentToolDeps, type UiMarkToolOptions, createFluidGridsAgentTools, createUiMarkTools, pickTriggerNode, resetAgentMarks, triggerNodesOf, useAgentMarksStore };
|
package/dist/agent-tools.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { a as triggerNodesOf, i as pickTriggerNode, n as AgentCalloutOverlay, r as createFluidGridsAgentTools, t as createUiMarkTools } from "./uiMarkTools-
|
|
3
|
-
import { n as useAgentMarksStore, t as resetAgentMarks } from "./marksStore-
|
|
2
|
+
import { a as triggerNodesOf, i as pickTriggerNode, n as AgentCalloutOverlay, r as createFluidGridsAgentTools, t as createUiMarkTools } from "./uiMarkTools-B2581Qg-.js";
|
|
3
|
+
import { n as useAgentMarksStore, t as resetAgentMarks } from "./marksStore-a9oIMMot.js";
|
|
4
4
|
|
|
5
5
|
export { AgentCalloutOverlay, createFluidGridsAgentTools, createUiMarkTools, pickTriggerNode, resetAgentMarks, triggerNodesOf, useAgentMarksStore };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
2
|
+
import { B as selectedOperationOf, E as SENSITIVE_PARAM, F as fixedParameterState, L as nodeTitle, O as createConfiguredNode, _ as registryNodeData, f as isNodeConfigsInitialized, ft as isFlowComplete, it as autosaveAllowedFor, o as NODE_CONFIGS, xt as useSaveStatusStore, z as paramsFromOperation } from "./FluidGridsProvider-BOBuK7kj.js";
|
|
3
3
|
import { A as useFlowStore, T as resolveOutputHandles, w as resolveInputHandles } from "./node-operation-selection-BGj5YwAS.js";
|
|
4
4
|
import { o as isNodeTypeHiddenFromPalette } from "./durable-nodes-DXCCQYWD.js";
|
|
5
5
|
import { t as computeAttachPosition } from "./attach-node-helpers-CtV1mej0.js";
|
|
@@ -61,5 +61,12 @@ function useFgAskable(describe, options = {}) {
|
|
|
61
61
|
function useFgAskableSelection(describe) {
|
|
62
62
|
return useAttached(useContext(AskAboutContext)?.attachSelection ?? null, describe, false);
|
|
63
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* Whether the person can ask the assistant about things here: a host mounted
|
|
66
|
+
* the bridge. Lets a page skip work (a query for facts) that only an ask uses.
|
|
67
|
+
*/
|
|
68
|
+
function useFgAskAboutAvailable() {
|
|
69
|
+
return useContext(AskAboutContext) !== null;
|
|
70
|
+
}
|
|
64
71
|
|
|
65
|
-
export {
|
|
72
|
+
export { useFgAskableSelection as i, useFgAskAboutAvailable as n, useFgAskable as r, FluidGridsAskAboutBridge as t };
|
package/dist/assistant.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { n as useFluidGridsPageControls, t as FluidGridsAssistantBridge } from "./pageControlsBridge-0pX9s-3k.js";
|
|
3
3
|
import { a as notifyFluidGridsAiCreditsUpdated, i as FluidGridsAiCreditsBridge, n as FLUIDGRIDS_AI_CREDITS_UPDATED_EVENT, r as FLUIDGRIDS_AI_PRODUCT_KEY, t as AiCreditBalanceSlot } from "./aiCreditsBridge-BuE92tKo.js";
|
|
4
|
-
import {
|
|
4
|
+
import { i as useFgAskableSelection, r as useFgAskable, t as FluidGridsAskAboutBridge } from "./askAboutBridge-kpcjcR9Y.js";
|
|
5
5
|
import { r as useFluidGridsAssistantLiveCanvas, t as createFluidGridsAssistantLiveCanvas } from "./liveCanvas-D5ytXDp8.js";
|
|
6
6
|
|
|
7
7
|
export { AiCreditBalanceSlot, FLUIDGRIDS_AI_CREDITS_UPDATED_EVENT, FLUIDGRIDS_AI_PRODUCT_KEY, FluidGridsAiCreditsBridge, FluidGridsAskAboutBridge, FluidGridsAssistantBridge, createFluidGridsAssistantLiveCanvas, notifyFluidGridsAiCreditsUpdated, useFgAskable, useFgAskableSelection, useFluidGridsAssistantLiveCanvas, useFluidGridsPageControls };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { n as useAgentMarksStore, r as toPlainText } from "./marksStore-
|
|
3
|
-
import {
|
|
2
|
+
import { n as useAgentMarksStore, r as toPlainText } from "./marksStore-a9oIMMot.js";
|
|
3
|
+
import { B as selectedOperationOf, L as nodeTitle, z as paramsFromOperation } from "./FluidGridsProvider-BOBuK7kj.js";
|
|
4
4
|
import { A as useFlowStore } from "./node-operation-selection-BGj5YwAS.js";
|
|
5
5
|
import { t as notesKeyOf } from "./notesKey-5EaREBGA.js";
|
|
6
6
|
import { AgentToolError, defineAgentTool } from "@burdenoff/fe-libs/shared/agent-tools";
|
|
@@ -1,14 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
import { ReactElement, ReactNode } from "react";
|
|
3
3
|
import { ApolloClient } from "@apollo/client/core";
|
|
4
|
-
type Translator = (key: string, fallback: string, params?: Record<string, string | number>) => string;
|
|
5
|
-
declare const ENGLISH_FALLBACK_TRANSLATOR: Translator;
|
|
6
|
-
interface FluidGridsTranslationProviderProps {
|
|
7
|
-
t: Translator;
|
|
8
|
-
children: ReactNode;
|
|
9
|
-
}
|
|
10
|
-
declare function FluidGridsTranslationProvider({ t, children }: FluidGridsTranslationProviderProps): import("react").JSX.Element;
|
|
11
|
-
declare function useTr(): Translator;
|
|
12
4
|
declare function refreshNodeRegistry(): Promise<void>;
|
|
13
5
|
interface FluidGridsClientConfig {
|
|
14
6
|
apiGatewayUrl: string;
|
|
@@ -159,4 +151,4 @@ declare const FLUIDGRIDS_PERMISSIONS: {
|
|
|
159
151
|
readonly TOOL_APPROVAL_REQUEST_EXECUTE: "tool-approval-request:execute";
|
|
160
152
|
};
|
|
161
153
|
type FluidGridsPermission = (typeof FLUIDGRIDS_PERMISSIONS)[keyof typeof FLUIDGRIDS_PERMISSIONS];
|
|
162
|
-
export {
|
|
154
|
+
export { isFluidGridsClientReady as C, refreshNodeRegistry as D, waitForFluidGridsClient as E, getFluidGridsClientSafe as S, setFluidGridsClient as T, resetGlobalStoreClient as _, FluidGridsPermissionsProviderProps as a, createFluidGridsClient as b, SdkPermissionButton as c, SdkPermissionGateProps as d, evaluatePermissionCheck as f, getGlobalStoreClient as g, createGlobalStoreClient as h, FluidGridsPermissionsProvider as i, SdkPermissionButtonProps as l, GlobalClientConfig as m, FluidGridsPermission as n, FluidGridsPermissionsValue as o, useFluidGridsPermission as p, ALLOW_ALL_PERMISSIONS as r, PermissionCheck as s, FLUIDGRIDS_PERMISSIONS as t, SdkPermissionGate as u, setGlobalStoreClient as v, resetFluidGridsClient as w, getFluidGridsClient as x, FluidGridsClientConfig as y };
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { suggestAnchorProps } from "@burdenoff/fe-libs/shared/proactive";
|
|
3
|
+
|
|
4
|
+
// src/proactive/entities.ts
|
|
5
|
+
/**
|
|
6
|
+
* ★ BOFF-13166: the FluidGrids reference pack of the proactive agent (epic
|
|
7
|
+
* BOFF-13159). These names are a contract with the backend pack in
|
|
8
|
+
* wspace-sandbox-svc (`proactive/packs/fluidgrids.ts`): a suggestion's anchor
|
|
9
|
+
* and actions carry exactly these strings, so they never change here alone.
|
|
10
|
+
*
|
|
11
|
+
* Anchors (contract C7):
|
|
12
|
+
* - `workflow_run`: entityId = the run id (the id in `/workflows/runs/<id>`);
|
|
13
|
+
* - `workflow`: entityId = the workflowKey (the key in
|
|
14
|
+
* `/workflows/workflow/<key>/<version>`, the same id the assistant's page
|
|
15
|
+
* context reports), part = a canvas node id;
|
|
16
|
+
* - `connection`: entityId = the integration connection id
|
|
17
|
+
* (`/integrations/connections/<id>`).
|
|
18
|
+
*/
|
|
19
|
+
const FLUIDGRIDS_PROACTIVE_ENTITY = {
|
|
20
|
+
run: "workflow_run",
|
|
21
|
+
workflow: "workflow",
|
|
22
|
+
connection: "connection"
|
|
23
|
+
};
|
|
24
|
+
/** The product-registered action types of the pack (the built-ins are fe-libs'). */
|
|
25
|
+
const FLUIDGRIDS_PROACTIVE_ACTION = {
|
|
26
|
+
reviewProposal: "review-proposal",
|
|
27
|
+
proposeFix: "propose-fix",
|
|
28
|
+
openConnection: "open-connection"
|
|
29
|
+
};
|
|
30
|
+
/** The attribute that lets a suggestion about this run pin to an element. */
|
|
31
|
+
function runSuggestAnchorProps(runId) {
|
|
32
|
+
return suggestAnchorProps({
|
|
33
|
+
entityType: FLUIDGRIDS_PROACTIVE_ENTITY.run,
|
|
34
|
+
entityId: runId
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export { FLUIDGRIDS_PROACTIVE_ENTITY as n, runSuggestAnchorProps as r, FLUIDGRIDS_PROACTIVE_ACTION as t };
|
package/dist/executions.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { t as ExecutionsListPage } from "./ExecutionsListPage-
|
|
3
|
-
import { t as ExecutionDetailPage } from "./ExecutionDetailPage-
|
|
2
|
+
import { t as ExecutionsListPage } from "./ExecutionsListPage-DMAOPJCa.js";
|
|
3
|
+
import { t as ExecutionDetailPage } from "./ExecutionDetailPage-BuU66VvK.js";
|
|
4
4
|
|
|
5
5
|
export { ExecutionDetailPage, ExecutionsListPage };
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { A as useFlowStore, N as isTriggerOperation, j as useIsValidConnection, r as CODE_WORKFLOW_NODE_TYPE } from "./node-operation-selection-BGj5YwAS.js";
|
|
3
|
-
import { A as
|
|
3
|
+
import { A as MissingParametersDialog, At as phaseAfterTakeOver, Bn as buildStickyNode, Bt as revisionOf, Ct as useEditLeaseLocked, D as buildOperationSeed, Dt as leaseCallQueue, Et as isLocked, Ft as forgetSessionForReload, Hn as useMarkdownRenderer, Ht as AUTOSAVE_RETRY_DELAYS_MS, It as rememberSessionForReload, Jt as saveFailureActionOf, Kt as inAppLeaveTarget, Lt as sessionBeforeReload, M as workflowParameterIssues, Mt as shouldReleaseForIdle, Nt as tickAction, Ot as leaseCallSequence, Pt as EDIT_SESSION_ID, Rt as rememberOwnStatusChange, S as useLatestFailedRun, St as workflowSaveQueue, Tt as bannerOf, Ut as canAutosave, Vn as loadMarkdown, Vt as AUTOSAVE_DEBOUNCE_MS, Xt as useNodeExecution, Yt as workflowFingerprint, a as NODES_METADATA, at as departingSave, bt as saveIndicatorOf, cn as useCanvasEdges, ct as leavingLosesChanges, dn as loadDefinitionJson, dt as watchLeavingLosesChanges, f as isNodeConfigsInitialized, ft as isFlowComplete, g as registerWorkflowNodeTypes, i as AVAILABLE_NODES, it as autosaveAllowedFor, j as useRunGuard, jt as releasesOnClose, k as useInsertNode, kt as phaseAfterAcquire, l as ensureNodeConfigsLoaded, ln as useNodeRegistryRevision, lt as savedEverythingBeforeLeaving, m as refetchStoreNodes, mt as useSaveWorkflow, nt as useGuardedNavigate, o as NODE_CONFIGS, ot as editStateFor, p as onNodeTypesUpdate, pt as useFlowValidator, qt as resettledBaseline, rt as useManualSave, s as NODE_TYPES, st as editingLeaseLocked, t as FluidGridsContext, ut as touchesSavedFields, v as scheduleNodePaletteLoad, wt as useEditLeaseStore, x as getNodeMetadata, xt as useSaveStatusStore, yt as refusalOfQuota, zn as getNodeDetail, zt as rememberRevision } from "./FluidGridsProvider-BOBuK7kj.js";
|
|
4
4
|
import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
|
|
5
5
|
import { n as preloadableLazy } from "./preloadable-lazy-Pp47mqQ9.js";
|
|
6
6
|
import { t as Input$1 } from "./input-ChT6Q-Pr.js";
|
|
7
|
-
import { t as useGlobalStoreClient } from "./useGlobalStoreClient-
|
|
7
|
+
import { t as useGlobalStoreClient } from "./useGlobalStoreClient-BfmKmeIx.js";
|
|
8
8
|
import { r as getFluidGridsConfig } from "./config-X97zrIvn.js";
|
|
9
|
-
import { _ as useInstalledNodes, d as getStoreNodeAvailability, f as getStoreNodeIcon, g as storeNodeInstallVersion, h as storeNodeDisplayVersion, i as useTemplateImportFlow, l as useWorkflowTemplates, m as isStoreNodeUpdateAvailable, p as getStoreNodeType, t as TemplateCard, u as filterStoreNodesForPalette } from "./TemplateCard-
|
|
9
|
+
import { _ as useInstalledNodes, d as getStoreNodeAvailability, f as getStoreNodeIcon, g as storeNodeInstallVersion, h as storeNodeDisplayVersion, i as useTemplateImportFlow, l as useWorkflowTemplates, m as isStoreNodeUpdateAvailable, p as getStoreNodeType, t as TemplateCard, u as filterStoreNodesForPalette } from "./TemplateCard-7rE1VAIC.js";
|
|
10
10
|
import { _ as useWorkflowTestsEnabled, d as useFluidGridsFlag, h as usePhaseDFlags, l as useDurableFunctionNodesEnabled, p as usePaletteGates, t as FLUIDGRIDS_FLAGS, u as useDurableParityEnabled } from "./feature-flags-B_b8PJ6Z.js";
|
|
11
11
|
import { n as isImageIcon, t as NodeTypeIcon } from "./node-type-icon-D28t8I64.js";
|
|
12
12
|
import { i as filterPaletteNodes } from "./durable-nodes-DXCCQYWD.js";
|
|
@@ -24,22 +24,24 @@ import { t as NavigationV2Provider } from "./NavigationV2Provider-DCDt35eG.js";
|
|
|
24
24
|
import { i as emitFluidGridsEvent } from "./token-refresh-link-BjN7H4qA.js";
|
|
25
25
|
import { n as useBuilderReadOnly, t as BuilderReadOnlyProvider } from "./read-only-context-Dt9N9SIG.js";
|
|
26
26
|
import { r as MAPPING_TYPE_COLORS, t as MAPPING_COMPATIBILITY_COLORS } from "./mapping-colors-BIX_YeCQ.js";
|
|
27
|
+
import { n as useFgAskAboutAvailable } from "./askAboutBridge-kpcjcR9Y.js";
|
|
27
28
|
import { n as LogsPanel } from "./logs-panel-Cn4gGng9.js";
|
|
28
|
-
import {
|
|
29
|
-
import { r as useExecutionActions } from "./useExecutions-
|
|
30
|
-
import { n as useAgentMarksStore } from "./marksStore-
|
|
29
|
+
import { a as draftFromTestCase, c as enabledCaseIds, d as pinnedOutputsFromCanvas, f as testRunSummaryText, h as useAgentTokenStream, l as isTestRunOpen, m as testStatusTone, n as useWorkflowTests, o as draftToInput, p as testStatusLabel, r as TEST_STATUS_TONE_CLASS, s as emptyTestCaseDraft, u as nextSortOrder, v as latestAgentTokenStream } from "./use-workflow-tests-BUzndyWO.js";
|
|
30
|
+
import { r as useExecutionActions } from "./useExecutions-GgjDOgcd.js";
|
|
31
|
+
import { n as useAgentMarksStore } from "./marksStore-a9oIMMot.js";
|
|
31
32
|
import { t as notesKeyOf } from "./notesKey-5EaREBGA.js";
|
|
32
|
-
import { a as saveWorkflowDescription, c as CreateWorkflowRefusalDialog, i as normalizeWorkflowDescription, n as useWorkflowCodeExport, o as visibleWorkflowDescription, r as commitWorkflowDescription, s as workflowDescriptionCharactersLeft } from "./useWorkflowCodeExport-
|
|
33
|
+
import { a as saveWorkflowDescription, c as CreateWorkflowRefusalDialog, i as normalizeWorkflowDescription, n as useWorkflowCodeExport, o as visibleWorkflowDescription, r as commitWorkflowDescription, s as workflowDescriptionCharactersLeft } from "./useWorkflowCodeExport-DrcfDTcD.js";
|
|
33
34
|
import { r as RUNS_QUOTA_NAME, t as BILLING_PLANS_PATH } from "./quota-Cdt8yz7N.js";
|
|
34
35
|
import { t as EntityTagPicker } from "./EntityTagPicker-BppBSEJk.js";
|
|
35
36
|
import { t as FluidGridsDocsLink } from "./FluidGridsDocsLink-JxkBpOeb.js";
|
|
36
37
|
import { n as runsQuotaLevel, t as readRunsQuota } from "./runsQuota-DvXR6mRN.js";
|
|
37
38
|
import { a as SdkPermissionGate, i as SdkPermissionButton, s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-dcxg6zG6.js";
|
|
38
|
-
import { a as useDeactivateWorkflow, d as useRestoreWorkflowVersion, o as useDeleteWorkflow, t as useActivateWorkflow, v as useWorkflowVersions } from "./useWorkflows-
|
|
39
|
+
import { a as useDeactivateWorkflow, d as useRestoreWorkflowVersion, o as useDeleteWorkflow, t as useActivateWorkflow, v as useWorkflowVersions } from "./useWorkflows-DSZUrK_o.js";
|
|
39
40
|
import { t as WorkflowDefinitionDocument } from "./WorkflowDefinitionDocument-DZLbTPUZ.js";
|
|
40
41
|
import { o as countLifecycle, t as VersionLifecycleBar } from "./VersionLifecycleBar-DuphLOT0.js";
|
|
41
42
|
import { $P as VersioningBehavior, Eu as DrainageStatus, PI as WorkflowTestExpectedStatus, aI as WorkflowExportFormat, jo as CodeReplaceStatus, rI as WorkflowEnvironment } from "./graphql-types-C5Tr6508.js";
|
|
42
|
-
import { t as buildNodeDisplayMap } from "./run-display-
|
|
43
|
+
import { t as buildNodeDisplayMap } from "./run-display-UjLAoYqQ.js";
|
|
44
|
+
import { t as useWorkflowProposal } from "./useWorkflowProposal-B9vXLKef.js";
|
|
43
45
|
import { n as useRequestedProposal } from "./useRequestedProposal-B7uPXfZB.js";
|
|
44
46
|
import { t as AiCreditBalanceSlot } from "./aiCreditsBridge-BuE92tKo.js";
|
|
45
47
|
import { t as downloadBlob } from "./workflow-transfer-CQnQC-ke.js";
|
|
@@ -64,6 +66,7 @@ import { AlertCircle, AlertTriangle, ArrowRight, BadgeCheck, Check, CircleHelp,
|
|
|
64
66
|
import { isEmpty } from "radash";
|
|
65
67
|
import { animate, easeOut } from "popmotion";
|
|
66
68
|
import { createPortal } from "react-dom";
|
|
69
|
+
import { SuggestionBadge } from "@burdenoff/fe-libs/shared/proactive";
|
|
67
70
|
import { useUnsavedChanges } from "@burdenoff/fe-libs/shared/hooks";
|
|
68
71
|
import { buildActorFallback, useActorProfiles } from "@burdenoff/fe-libs/shared";
|
|
69
72
|
|
|
@@ -6684,9 +6687,9 @@ function IntroductionPropertyPanel() {
|
|
|
6684
6687
|
* waiting for its chunk and React's Suspense throttle (about 0.5 s on first
|
|
6685
6688
|
* open even with the chunk cached).
|
|
6686
6689
|
*/
|
|
6687
|
-
const NodeDetailViewOverlay = preloadableLazy(() => import("./node-detail-view-
|
|
6688
|
-
const QuickConfigPanelOverlay = preloadableLazy(() => import("./quick-config-panel-
|
|
6689
|
-
const SidebarNodeEditorOverlay = preloadableLazy(() => import("./sidebar-node-editor-
|
|
6690
|
+
const NodeDetailViewOverlay = preloadableLazy(() => import("./node-detail-view-N6n3qegt.js").then((m) => m.NodeDetailView), "NodeDetailView");
|
|
6691
|
+
const QuickConfigPanelOverlay = preloadableLazy(() => import("./quick-config-panel-DABEVJR9.js").then((m) => m.QuickConfigPanel), "QuickConfigPanel");
|
|
6692
|
+
const SidebarNodeEditorOverlay = preloadableLazy(() => import("./sidebar-node-editor-BHqtoMC5.js").then((m) => m.SidebarNodeEditor), "SidebarNodeEditor");
|
|
6690
6693
|
const WorkflowShareDialogOverlay = preloadableLazy(() => import("./WorkflowShareDialog-BcfzZDOj.js").then((n) => n.n).then((m) => m.WorkflowShareDialog), "WorkflowShareDialog");
|
|
6691
6694
|
const ConnectionFormDialogOverlay = preloadableLazy(() => import("./ConnectionFormDialog-Dr1-CTan.js").then((n) => n.n).then((m) => m.ConnectionFormDialog), "ConnectionFormDialog");
|
|
6692
6695
|
const EdgeMapperOverlay = preloadableLazy(() => import("./app-BIsCEL65.js").then((m) => m.default), "EdgeMapper");
|
|
@@ -12208,6 +12211,17 @@ function WebhookRunFollower() {
|
|
|
12208
12211
|
*
|
|
12209
12212
|
* Everything here is `data-agent="deny"`: an agent cannot read or press its
|
|
12210
12213
|
* own notes. Messages render as React text, never as markup.
|
|
12214
|
+
*
|
|
12215
|
+
* ★ BOFF-13166: proactive AI suggestions about the open workflow (entity type
|
|
12216
|
+
* `workflow`, entityId = its workflowKey) are drawn here too. The shell's
|
|
12217
|
+
* `ProactiveProvider` hands them to the canvas adapter
|
|
12218
|
+
* (`proactive/workflowAnchorAdapter.ts`), which keeps them in the marks store.
|
|
12219
|
+
* One about a node (`part` = the node id) is a badge beside that node's note
|
|
12220
|
+
* pins; one about the workflow as a whole, or a node no longer on the canvas,
|
|
12221
|
+
* sits in a small panel at the top of the canvas. Each badge opens the shared
|
|
12222
|
+
* suggestion card. The layer reports the saved workflow it shows (key and node
|
|
12223
|
+
* ids) so the adapter knows which suggestions it can pin; an unsaved workflow
|
|
12224
|
+
* has no key and gets none.
|
|
12211
12225
|
*/
|
|
12212
12226
|
const FLASH_MS = 1800;
|
|
12213
12227
|
const RING_PAD = 8;
|
|
@@ -12315,8 +12329,15 @@ const CanvasNoteCard = ({ note, nodeOnCanvas }) => {
|
|
|
12315
12329
|
]
|
|
12316
12330
|
});
|
|
12317
12331
|
};
|
|
12332
|
+
/** One badge per suggestion; each opens the shared suggestion card. */
|
|
12333
|
+
const SuggestionBadges = ({ suggestions, controls }) => /* @__PURE__ */ jsx(Fragment$1, { children: suggestions.map((suggestion) => /* @__PURE__ */ jsx(SuggestionBadge, {
|
|
12334
|
+
suggestion,
|
|
12335
|
+
controls,
|
|
12336
|
+
side: "top",
|
|
12337
|
+
align: "end"
|
|
12338
|
+
}, suggestion.notificationId)) });
|
|
12318
12339
|
/** The pins above one node, and the open card. */
|
|
12319
|
-
const NodePins = ({ nodeId, notes }) => {
|
|
12340
|
+
const NodePins = ({ nodeId, notes, suggestions }) => {
|
|
12320
12341
|
const tr = useTr();
|
|
12321
12342
|
const openNoteId = useAgentMarksStore((state) => state.openNoteId);
|
|
12322
12343
|
const openNote = useAgentMarksStore((state) => state.actions.openNote);
|
|
@@ -12335,9 +12356,12 @@ const NodePins = ({ nodeId, notes }) => {
|
|
|
12335
12356
|
children: [open && /* @__PURE__ */ jsx(CanvasNoteCard, {
|
|
12336
12357
|
note: open,
|
|
12337
12358
|
nodeOnCanvas: true
|
|
12338
|
-
}), /* @__PURE__ */
|
|
12359
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
12339
12360
|
className: "flex gap-1",
|
|
12340
|
-
children:
|
|
12361
|
+
children: [suggestions && /* @__PURE__ */ jsx(SuggestionBadges, {
|
|
12362
|
+
suggestions: suggestions.items,
|
|
12363
|
+
controls: suggestions.controls
|
|
12364
|
+
}), notes.map((note) => /* @__PURE__ */ jsx("button", {
|
|
12341
12365
|
type: "button",
|
|
12342
12366
|
"data-testid": "fg-canvas-note-pin",
|
|
12343
12367
|
"aria-expanded": note.id === openNoteId,
|
|
@@ -12348,7 +12372,7 @@ const NodePins = ({ nodeId, notes }) => {
|
|
|
12348
12372
|
"aria-hidden": "true",
|
|
12349
12373
|
className: "size-3.5"
|
|
12350
12374
|
}) : note.number
|
|
12351
|
-
}, note.id))
|
|
12375
|
+
}, note.id))]
|
|
12352
12376
|
})]
|
|
12353
12377
|
})
|
|
12354
12378
|
});
|
|
@@ -12440,10 +12464,48 @@ const NotesList = ({ notes, live }) => {
|
|
|
12440
12464
|
})
|
|
12441
12465
|
});
|
|
12442
12466
|
};
|
|
12467
|
+
/** Suggestions about the workflow as a whole, at the top of the canvas. */
|
|
12468
|
+
const WorkflowSuggestionsPanel = ({ items, controls }) => {
|
|
12469
|
+
const tr = useTr();
|
|
12470
|
+
return /* @__PURE__ */ jsx(Panel, {
|
|
12471
|
+
position: "top-center",
|
|
12472
|
+
"data-agent": "deny",
|
|
12473
|
+
"data-testid": "fg-canvas-suggestions",
|
|
12474
|
+
className: "nodrag nopan nowheel",
|
|
12475
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
12476
|
+
className: "flex items-center gap-2 rounded-lg border border-border bg-popover px-3 py-1.5 text-xs text-foreground shadow-md",
|
|
12477
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
12478
|
+
className: "font-medium",
|
|
12479
|
+
children: tr("fluidgrids.proactive.canvas.heading", "AI suggestions")
|
|
12480
|
+
}), /* @__PURE__ */ jsx(SuggestionBadges, {
|
|
12481
|
+
suggestions: items,
|
|
12482
|
+
controls
|
|
12483
|
+
})]
|
|
12484
|
+
})
|
|
12485
|
+
});
|
|
12486
|
+
};
|
|
12487
|
+
/** The saved workflow on this canvas, reported for the proactive adapter. */
|
|
12488
|
+
function useReportProactiveCanvas(workflowKey, nodeIds) {
|
|
12489
|
+
const setCanvas = useAgentMarksStore((state) => state.actions.setCanvas);
|
|
12490
|
+
useEffect(() => {
|
|
12491
|
+
setCanvas(workflowKey ? {
|
|
12492
|
+
workflowKey,
|
|
12493
|
+
nodeIds
|
|
12494
|
+
} : null);
|
|
12495
|
+
}, [
|
|
12496
|
+
setCanvas,
|
|
12497
|
+
workflowKey,
|
|
12498
|
+
nodeIds
|
|
12499
|
+
]);
|
|
12500
|
+
useEffect(() => () => setCanvas(null), [setCanvas]);
|
|
12501
|
+
}
|
|
12443
12502
|
const CanvasNotesLayer = () => {
|
|
12444
12503
|
const workflowKey = useFlowStore((state) => notesKeyOf(state.workflow));
|
|
12504
|
+
const savedKey = useFlowStore((state) => state.workflow.workflowKey);
|
|
12445
12505
|
const nodeIds = useFlowStore(useShallow((state) => state.workflow.nodes.map((node) => node.id)));
|
|
12446
12506
|
const allNotes = useAgentMarksStore((state) => state.notes);
|
|
12507
|
+
const canvasSuggestions = useAgentMarksStore((state) => state.canvasSuggestions);
|
|
12508
|
+
useReportProactiveCanvas(savedKey || void 0, nodeIds);
|
|
12447
12509
|
const notes = useMemo(() => allNotes.filter((note) => note.workflowKey === workflowKey), [allNotes, workflowKey]);
|
|
12448
12510
|
const live = useMemo(() => new Set(nodeIds), [nodeIds]);
|
|
12449
12511
|
const byNode = useMemo(() => {
|
|
@@ -12452,10 +12514,36 @@ const CanvasNotesLayer = () => {
|
|
|
12452
12514
|
if (!live.has(note.nodeId)) continue;
|
|
12453
12515
|
groups.set(note.nodeId, [...groups.get(note.nodeId) ?? [], note]);
|
|
12454
12516
|
}
|
|
12455
|
-
return
|
|
12517
|
+
return groups;
|
|
12456
12518
|
}, [notes, live]);
|
|
12519
|
+
const suggestions = useMemo(() => {
|
|
12520
|
+
const onNode = /* @__PURE__ */ new Map();
|
|
12521
|
+
const onWorkflow = [];
|
|
12522
|
+
const { controls, items } = canvasSuggestions;
|
|
12523
|
+
if (!controls || !savedKey) return {
|
|
12524
|
+
onNode,
|
|
12525
|
+
onWorkflow,
|
|
12526
|
+
controls: null
|
|
12527
|
+
};
|
|
12528
|
+
for (const suggestion of items) {
|
|
12529
|
+
if (suggestion.anchor.entityId !== savedKey) continue;
|
|
12530
|
+
const part = suggestion.anchor.part;
|
|
12531
|
+
if (part && live.has(part)) onNode.set(part, [...onNode.get(part) ?? [], suggestion]);
|
|
12532
|
+
else onWorkflow.push(suggestion);
|
|
12533
|
+
}
|
|
12534
|
+
return {
|
|
12535
|
+
onNode,
|
|
12536
|
+
onWorkflow,
|
|
12537
|
+
controls
|
|
12538
|
+
};
|
|
12539
|
+
}, [
|
|
12540
|
+
canvasSuggestions,
|
|
12541
|
+
savedKey,
|
|
12542
|
+
live
|
|
12543
|
+
]);
|
|
12544
|
+
const pinnedNodeIds = useMemo(() => [.../* @__PURE__ */ new Set([...byNode.keys(), ...suggestions.onNode.keys()])], [byNode, suggestions]);
|
|
12457
12545
|
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
12458
|
-
/* @__PURE__ */ jsxs(ViewportPortal, { children: [byNode.map(([nodeId, nodeNotes]) => {
|
|
12546
|
+
/* @__PURE__ */ jsxs(ViewportPortal, { children: [[...byNode.entries()].map(([nodeId, nodeNotes]) => {
|
|
12459
12547
|
const openNotes = nodeNotes.filter((note) => !note.resolved);
|
|
12460
12548
|
if (openNotes.length === 0) return null;
|
|
12461
12549
|
const tone = openNotes.some((note) => note.kind === "fix") ? "fix" : "info";
|
|
@@ -12464,10 +12552,21 @@ const CanvasNotesLayer = () => {
|
|
|
12464
12552
|
tone
|
|
12465
12553
|
}, nodeId);
|
|
12466
12554
|
}), /* @__PURE__ */ jsx(FlashRing, {})] }),
|
|
12467
|
-
|
|
12468
|
-
nodeId
|
|
12469
|
-
|
|
12470
|
-
|
|
12555
|
+
pinnedNodeIds.map((nodeId) => {
|
|
12556
|
+
const nodeSuggestions = suggestions.onNode.get(nodeId);
|
|
12557
|
+
return /* @__PURE__ */ jsx(NodePins, {
|
|
12558
|
+
nodeId,
|
|
12559
|
+
notes: byNode.get(nodeId) ?? [],
|
|
12560
|
+
...nodeSuggestions && suggestions.controls ? { suggestions: {
|
|
12561
|
+
items: nodeSuggestions,
|
|
12562
|
+
controls: suggestions.controls
|
|
12563
|
+
} } : {}
|
|
12564
|
+
}, nodeId);
|
|
12565
|
+
}),
|
|
12566
|
+
suggestions.controls && suggestions.onWorkflow.length > 0 && /* @__PURE__ */ jsx(WorkflowSuggestionsPanel, {
|
|
12567
|
+
items: suggestions.onWorkflow,
|
|
12568
|
+
controls: suggestions.controls
|
|
12569
|
+
}),
|
|
12471
12570
|
notes.length > 0 && /* @__PURE__ */ jsx(NotesList, {
|
|
12472
12571
|
notes,
|
|
12473
12572
|
live
|
|
@@ -19343,7 +19442,7 @@ const FlowBuilder = ({ readOnly = false, fitToScreen = false }) => {
|
|
|
19343
19442
|
paletteGatesRef.current = paletteGates;
|
|
19344
19443
|
}, [paletteGates]);
|
|
19345
19444
|
useWarmBuilderOverlays();
|
|
19346
|
-
useLazyAgentTools(() => import("./agentTools-
|
|
19445
|
+
useLazyAgentTools(() => import("./agentTools-CSoCNDRx.js").then(({ createBuilderAgentTools }) => createBuilderAgentTools({ durableFunctionsEnabled: () => paletteGatesRef.current })), !editingBlocked, "Agent tools");
|
|
19347
19446
|
const [nodes, edges, onNodesChange, onEdgesChange, onConnect] = useFlowStore(useShallow((s) => {
|
|
19348
19447
|
return [
|
|
19349
19448
|
s.workflow.nodes,
|
|
@@ -19353,6 +19452,8 @@ const FlowBuilder = ({ readOnly = false, fitToScreen = false }) => {
|
|
|
19353
19452
|
s.actions.edges.onConnect
|
|
19354
19453
|
];
|
|
19355
19454
|
}));
|
|
19455
|
+
const savedWorkflowKey = useFlowStore((s) => s.workflow.workflowKey);
|
|
19456
|
+
useLatestFailedRun(savedWorkflowKey || void 0, useFgAskAboutAvailable());
|
|
19356
19457
|
const canvasEdges = useCanvasEdges(nodes, edges);
|
|
19357
19458
|
const closeQuickConfig = useFlowStore((s) => s.actions.quickConfig.close);
|
|
19358
19459
|
const ndvOpen = useFlowStore((s) => !!s.workflow.ndv);
|
|
@@ -19385,7 +19486,7 @@ const FlowBuilder = ({ readOnly = false, fitToScreen = false }) => {
|
|
|
19385
19486
|
useEffect(() => {
|
|
19386
19487
|
fitViewRef.current = fitView;
|
|
19387
19488
|
}, [fitView]);
|
|
19388
|
-
useLazyAgentTools(() => import("./canvasNoteTools-
|
|
19489
|
+
useLazyAgentTools(() => import("./canvasNoteTools-DTc3EKvg.js").then(({ createCanvasNoteTools }) => createCanvasNoteTools({ focusNode: (nodeId) => fitViewRef.current({
|
|
19389
19490
|
nodes: [{ id: nodeId }],
|
|
19390
19491
|
duration: 400,
|
|
19391
19492
|
padding: .6,
|
package/dist/history.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
import { f as FluidGridsTheme, r as FluidGridsRefreshedTokens } from "./index-72XFgvbn.js";
|
|
3
3
|
import { R as FluidGridsProviderProps, w as WorkflowData } from "./index-RWAuYE2j.js";
|
|
4
|
-
import {
|
|
4
|
+
import { i as Translator } from "./TranslationBridge-Bd4aJKMs.js";
|
|
5
5
|
import { t as RunsQuota } from "./runsQuota-DsniKiSg.js";
|
|
6
6
|
import * as React$2 from "react";
|
|
7
7
|
import { HTMLAttributes, InputHTMLAttributes } from "react";
|