@burdenoff/fluidgrids-fe-sdk 2026.1113.3 → 2026.1113.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/dist/{AiStudioPage-kQnqKTLK.js → AiStudioPage-DzvEkuoS.js} +6 -6
  2. package/dist/{ApprovalInboxPage-BsJX4osU.js → ApprovalInboxPage-BIDGY0Qm.js} +8 -8
  3. package/dist/{DataSinkDashboardPage-8ZDn85e2.js → DataSinkDashboardPage-DYuBqD2Y.js} +15 -15
  4. package/dist/{DataTablesPage-BBvABuxE.js → DataTablesPage-CA4CGEcM.js} +15 -15
  5. package/dist/{ExecutionDetailPage-2zr-EHVq.js → ExecutionDetailPage-CXiHGMVH.js} +131 -131
  6. package/dist/{ExecutionsListPage-ASTpHWjv.js → ExecutionsListPage-DGHmXNTR.js} +77 -77
  7. package/dist/{FailureTriagePanel-CM-vmvbA.js → FailureTriagePanel-DA91XKVj.js} +3 -3
  8. package/dist/{FluidGridsProvider-Dc_Jhtch.js → FluidGridsProvider-gB2POEu6.js} +34 -5
  9. package/dist/{HistoryPage-D2QBZ6Oc.js → HistoryPage-8lQ6xf5Q.js} +12 -12
  10. package/dist/{InsightsPage-BqbRbyc4.js → InsightsPage-q5agPRFA.js} +29 -29
  11. package/dist/{NodesPage-C5Dq-ru-.js → NodesPage-DeBc3zix.js} +10 -10
  12. package/dist/{PaidTemplateConfirm-CSf_Wl1x.js → PaidTemplateConfirm-BadoJJPx.js} +1 -1
  13. package/dist/{QuotaExhaustedDialog-wvu_-WJ-.js → QuotaExhaustedDialog-BBK3aX_0.js} +1 -1
  14. package/dist/{SettingsPage-JwcsjXkM.js → SettingsPage-BfBa-qSk.js} +72 -72
  15. package/dist/{TaskQueuesPage-BwnNad_J.js → TaskQueuesPage-DsGNGmGN.js} +15 -15
  16. package/dist/{TemplateCard-HSRLZw7S.js → TemplateCard-lKGodHU8.js} +2 -2
  17. package/dist/{TemplatePreview-xCpg2M_J.js → TemplatePreview-YGddO09g.js} +4 -4
  18. package/dist/{TemplatesPage-AAAJ2T7C.js → TemplatesPage-DZQDzv7d.js} +19 -19
  19. package/dist/{VariablesPage-CgUBKhAe.js → VariablesPage-2Q7gYE2N.js} +7 -7
  20. package/dist/{WorkflowBuilder-DAeOmBhD.js → WorkflowBuilder-DKqz8W6n.js} +3 -3
  21. package/dist/{WorkflowBuilder-rndStRRC.js → WorkflowBuilder-DtSOvYST.js} +6 -6
  22. package/dist/{WorkflowProposalCard-zCdUpCk8.js → WorkflowProposalCard-SmRv_Egf.js} +1 -1
  23. package/dist/{WorkflowSearchRedirect-CVFby4w5.js → WorkflowSearchRedirect-mX-YNhkj.js} +1 -1
  24. package/dist/{WorkflowsList-DuMF4-P0.js → WorkflowsList-DBKQLEUU.js} +7 -7
  25. package/dist/{agentTools-DTXUqtfu.js → agentTools-Dle04WMj.js} +1 -1
  26. package/dist/{api-BqA-f-AD.js → api-CEnNq15C.js} +1 -1
  27. package/dist/{api-BZVyX5d2.js → api-DKfMt0IX.js} +1 -1
  28. package/dist/{app-BJUvugPM.js → app-BIsCEL65.js} +5 -5
  29. package/dist/{canvasNoteTools-DmfZwtnL.js → canvasNoteTools-Bror30X8.js} +1 -1
  30. package/dist/executions.js +2 -2
  31. package/dist/{flow-builder-Cf3mxhiN.js → flow-builder-CErj7Fgi.js} +51 -28
  32. package/dist/history.js +1 -1
  33. package/dist/{index-BC0bLtnH.d.ts → index-Df6NgmmH.d.ts} +1 -1
  34. package/dist/{index-CJGq3QbH.d.ts → index-RWAuYE2j.d.ts} +2 -0
  35. package/dist/index.d.ts +2 -2
  36. package/dist/index.js +71 -71
  37. package/dist/{logs-panel-DtG93ocy.js → logs-panel-2L4TLGcG.js} +10 -10
  38. package/dist/{node-detail-view-LaFhKUoA.js → node-detail-view-BqGpYHEE.js} +6 -6
  39. package/dist/{node-editor-tab-body-BL6QrLVL.js → node-editor-tab-body-f2EIl5lh.js} +2 -2
  40. package/dist/nodes.js +1 -1
  41. package/dist/observability.d.ts +1 -1
  42. package/dist/observability.js +2 -2
  43. package/dist/{popover-PFfxvM9g.js → popover-3Vs4f1Uy.js} +2 -2
  44. package/dist/{quick-config-panel-hrOn1WJp.js → quick-config-panel-Aja-lh3W.js} +3 -3
  45. package/dist/{schedule-panel-BBI5V5AX.js → schedule-panel-DCzLeJvi.js} +6 -6
  46. package/dist/settings.js +1 -1
  47. package/dist/{shared-Ctl9ZHo1.js → shared-C0LCTtyh.js} +3 -3
  48. package/dist/{sidebar-node-editor-CZ2hHqwr.js → sidebar-node-editor-CWdejdLi.js} +3 -3
  49. package/dist/templates.js +2 -2
  50. package/dist/{useAgentDefinitions-B4EL7HU3.js → useAgentDefinitions-DoMEv0kS.js} +1 -1
  51. package/dist/{useDurableParity-CoX24dE8.js → useDurableParity-9mQYNpiP.js} +1 -1
  52. package/dist/{useExecutions-CB1Rva2V.js → useExecutions-BvldyVgF.js} +1 -1
  53. package/dist/{useGlobalStoreClient-DMTrywdX.js → useGlobalStoreClient-CpTRykJx.js} +1 -1
  54. package/dist/{useObservability-DPATdbw7.js → useObservability-Cps9Y9a3.js} +1 -1
  55. package/dist/{useRunHistory-dFVv-1Tn.js → useRunHistory-DoxQsQIm.js} +9 -9
  56. package/dist/{useWorkflowCodeExport-Dej_LUk7.js → useWorkflowCodeExport-BLl0hv2J.js} +1 -1
  57. package/dist/{useWorkflows-DEWdntS_.js → useWorkflows-Z4M64JlD.js} +1 -1
  58. package/dist/workflow-builder.d.ts +1 -1
  59. package/dist/workflow-builder.js +4 -4
  60. package/dist/workflow-pages.d.ts +2 -2
  61. package/dist/workflow-pages.js +18 -18
  62. package/dist/workflows-list.js +1 -1
  63. package/package.json +1 -1
@@ -1,12 +1,12 @@
1
1
  "use client";
2
2
  import { A as NodeTypeIcon, F as isTriggerOperation, M as useFlowStore, N as useIsValidConnection, j as isImageIcon, r as CODE_WORKFLOW_NODE_TYPE } from "./node-operation-selection-Czeeb2D4.js";
3
- import { A as workflowParameterIssues, At as shouldReleaseForIdle, Bt as AUTOSAVE_RETRY_DELAYS_MS, Ct as bannerOf, D as useInsertNode, Dt as phaseAfterAcquire, Et as leaseCallSequence, Ft as sessionBeforeReload, Gt as resettledBaseline, In as getNodeDetail, It as rememberOwnStatusChange, Jt as useNodeExecution, Kt as saveFailureActionOf, Ln as buildStickyNode, Lt as rememberRevision, Mt as EDIT_SESSION_ID, Nt as forgetSessionForReload, O as MissingParametersDialog, Ot as phaseAfterTakeOver, Pt as rememberSessionForReload, Rn as loadMarkdown, Rt as revisionOf, St as useEditLeaseStore, T as buildOperationSeed, Tt as leaseCallQueue, Vt as canAutosave, Wt as inAppLeaveTarget, _t as refusalOfQuota, a as NODES_METADATA, at as editingLeaseLocked, bt as workflowSaveQueue, ct as touchesSavedFields, dt as useFlowValidator, et as useGuardedNavigate, f as isNodeConfigsInitialized, ft as useSaveWorkflow, g as registerWorkflowNodeTypes, i as AVAILABLE_NODES, it as editStateFor, jt as tickAction, k as useRunGuard, kt as releasesOnClose, l as ensureNodeConfigsLoaded, ln as loadDefinitionJson, lt as watchLeavingLosesChanges, m as refetchStoreNodes, nt as autosaveAllowedFor, o as NODE_CONFIGS, on as useCanvasEdges, ot as leavingLosesChanges, p as onNodeTypesUpdate, qt as workflowFingerprint, rt as departingSave, s as NODE_TYPES, sn as useNodeRegistryRevision, st as savedEverythingBeforeLeaving, t as FluidGridsContext, tt as useManualSave, ut as isFlowComplete, v as scheduleNodePaletteLoad, vt as saveIndicatorOf, wt as isLocked, x as getNodeMetadata, xt as useEditLeaseLocked, yt as useSaveStatusStore, zn as useMarkdownRenderer, zt as AUTOSAVE_DEBOUNCE_MS } from "./FluidGridsProvider-Dc_Jhtch.js";
3
+ import { A as workflowParameterIssues, At as shouldReleaseForIdle, Bt as AUTOSAVE_RETRY_DELAYS_MS, Ct as bannerOf, D as useInsertNode, Dt as phaseAfterAcquire, Et as leaseCallSequence, Ft as sessionBeforeReload, Gt as resettledBaseline, In as getNodeDetail, It as rememberOwnStatusChange, Jt as useNodeExecution, Kt as saveFailureActionOf, Ln as buildStickyNode, Lt as rememberRevision, Mt as EDIT_SESSION_ID, Nt as forgetSessionForReload, O as MissingParametersDialog, Ot as phaseAfterTakeOver, Pt as rememberSessionForReload, Rn as loadMarkdown, Rt as revisionOf, St as useEditLeaseStore, T as buildOperationSeed, Tt as leaseCallQueue, Vt as canAutosave, Wt as inAppLeaveTarget, _t as refusalOfQuota, a as NODES_METADATA, at as editingLeaseLocked, bt as workflowSaveQueue, ct as touchesSavedFields, dt as useFlowValidator, et as useGuardedNavigate, f as isNodeConfigsInitialized, ft as useSaveWorkflow, g as registerWorkflowNodeTypes, i as AVAILABLE_NODES, it as editStateFor, jt as tickAction, k as useRunGuard, kt as releasesOnClose, l as ensureNodeConfigsLoaded, ln as loadDefinitionJson, lt as watchLeavingLosesChanges, m as refetchStoreNodes, nt as autosaveAllowedFor, o as NODE_CONFIGS, on as useCanvasEdges, ot as leavingLosesChanges, p as onNodeTypesUpdate, qt as workflowFingerprint, rt as departingSave, s as NODE_TYPES, sn as useNodeRegistryRevision, st as savedEverythingBeforeLeaving, t as FluidGridsContext, tt as useManualSave, ut as isFlowComplete, v as scheduleNodePaletteLoad, vt as saveIndicatorOf, wt as isLocked, x as getNodeMetadata, xt as useEditLeaseLocked, yt as useSaveStatusStore, zn as useMarkdownRenderer, zt as AUTOSAVE_DEBOUNCE_MS } from "./FluidGridsProvider-gB2POEu6.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-DMTrywdX.js";
7
+ import { t as useGlobalStoreClient } from "./useGlobalStoreClient-CpTRykJx.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-HSRLZw7S.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-lKGodHU8.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 { i as filterPaletteNodes } from "./durable-nodes-DXCCQYWD.js";
12
12
  import { c as NODE_TYPE_DRAG_DATA_FORMAT, l as STICKY_NOTE_TYPE, s as NODE_OPERATION_DRAG_DATA_FORMAT } from "./sticky-notes-23j-wL6Q.js";
@@ -23,18 +23,18 @@ import { t as NavigationV2Provider } from "./NavigationV2Provider-DCDt35eG.js";
23
23
  import { i as emitFluidGridsEvent } from "./token-refresh-link-BjN7H4qA.js";
24
24
  import { n as useBuilderReadOnly, t as BuilderReadOnlyProvider } from "./read-only-context-Dt9N9SIG.js";
25
25
  import { r as MAPPING_TYPE_COLORS, t as MAPPING_COMPATIBILITY_COLORS } from "./mapping-colors-BIX_YeCQ.js";
26
- import { n as LogsPanel } from "./logs-panel-DtG93ocy.js";
26
+ import { n as LogsPanel } from "./logs-panel-2L4TLGcG.js";
27
27
  import { c as emptyTestCaseDraft, d as nextSortOrder, f as pinnedOutputsFromCanvas, g as useAgentTokenStream, h as testStatusTone, i as TEST_STATUS_TONE_CLASS, l as enabledCaseIds, m as testStatusLabel, o as draftFromTestCase, p as testRunSummaryText, r as useWorkflowTests, s as draftToInput, t as useWorkflowProposal, u as isTestRunOpen, y as latestAgentTokenStream } from "./useWorkflowProposal-UtJYycLv.js";
28
- import { r as useExecutionActions } from "./useExecutions-CB1Rva2V.js";
28
+ import { r as useExecutionActions } from "./useExecutions-BvldyVgF.js";
29
29
  import { n as useAgentMarksStore } from "./marksStore-DGCXjTmZ.js";
30
30
  import { t as notesKeyOf } from "./notesKey-5EaREBGA.js";
31
- import { a as saveWorkflowDescription, c as CreateWorkflowRefusalDialog, i as normalizeWorkflowDescription, n as useWorkflowCodeExport, o as visibleWorkflowDescription, r as commitWorkflowDescription, s as workflowDescriptionCharactersLeft } from "./useWorkflowCodeExport-Dej_LUk7.js";
31
+ import { a as saveWorkflowDescription, c as CreateWorkflowRefusalDialog, i as normalizeWorkflowDescription, n as useWorkflowCodeExport, o as visibleWorkflowDescription, r as commitWorkflowDescription, s as workflowDescriptionCharactersLeft } from "./useWorkflowCodeExport-BLl0hv2J.js";
32
32
  import { r as RUNS_QUOTA_NAME, t as BILLING_PLANS_PATH } from "./quota-Cdt8yz7N.js";
33
33
  import { t as EntityTagPicker } from "./EntityTagPicker-BppBSEJk.js";
34
34
  import { t as FluidGridsDocsLink } from "./FluidGridsDocsLink-JxkBpOeb.js";
35
35
  import { n as runsQuotaLevel, t as readRunsQuota } from "./runsQuota-DvXR6mRN.js";
36
36
  import { a as SdkPermissionGate, i as SdkPermissionButton, s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-dcxg6zG6.js";
37
- import { a as useDeactivateWorkflow, d as useRestoreWorkflowVersion, o as useDeleteWorkflow, t as useActivateWorkflow, v as useWorkflowVersions } from "./useWorkflows-DEWdntS_.js";
37
+ import { a as useDeactivateWorkflow, d as useRestoreWorkflowVersion, o as useDeleteWorkflow, t as useActivateWorkflow, v as useWorkflowVersions } from "./useWorkflows-Z4M64JlD.js";
38
38
  import { t as WorkflowDefinitionDocument } from "./WorkflowDefinitionDocument-DZLbTPUZ.js";
39
39
  import { o as countLifecycle, t as VersionLifecycleBar } from "./VersionLifecycleBar-DuphLOT0.js";
40
40
  import { $P as VersioningBehavior, Eu as DrainageStatus, PI as WorkflowTestExpectedStatus, aI as WorkflowExportFormat, jo as CodeReplaceStatus, rI as WorkflowEnvironment } from "./graphql-types-C5Tr6508.js";
@@ -6683,15 +6683,15 @@ function IntroductionPropertyPanel() {
6683
6683
  * waiting for its chunk and React's Suspense throttle (about 0.5 s on first
6684
6684
  * open even with the chunk cached).
6685
6685
  */
6686
- const NodeDetailViewOverlay = preloadableLazy(() => import("./node-detail-view-LaFhKUoA.js").then((m) => m.NodeDetailView), "NodeDetailView");
6687
- const QuickConfigPanelOverlay = preloadableLazy(() => import("./quick-config-panel-hrOn1WJp.js").then((m) => m.QuickConfigPanel), "QuickConfigPanel");
6688
- const SidebarNodeEditorOverlay = preloadableLazy(() => import("./sidebar-node-editor-CZ2hHqwr.js").then((m) => m.SidebarNodeEditor), "SidebarNodeEditor");
6686
+ const NodeDetailViewOverlay = preloadableLazy(() => import("./node-detail-view-BqGpYHEE.js").then((m) => m.NodeDetailView), "NodeDetailView");
6687
+ const QuickConfigPanelOverlay = preloadableLazy(() => import("./quick-config-panel-Aja-lh3W.js").then((m) => m.QuickConfigPanel), "QuickConfigPanel");
6688
+ const SidebarNodeEditorOverlay = preloadableLazy(() => import("./sidebar-node-editor-CWdejdLi.js").then((m) => m.SidebarNodeEditor), "SidebarNodeEditor");
6689
6689
  const WorkflowShareDialogOverlay = preloadableLazy(() => import("./WorkflowShareDialog-BcfzZDOj.js").then((n) => n.n).then((m) => m.WorkflowShareDialog), "WorkflowShareDialog");
6690
6690
  const ConnectionFormDialogOverlay = preloadableLazy(() => import("./ConnectionFormDialog-Dr1-CTan.js").then((n) => n.n).then((m) => m.ConnectionFormDialog), "ConnectionFormDialog");
6691
- const EdgeMapperOverlay = preloadableLazy(() => import("./app-BJUvugPM.js").then((m) => m.default), "EdgeMapper");
6691
+ const EdgeMapperOverlay = preloadableLazy(() => import("./app-BIsCEL65.js").then((m) => m.default), "EdgeMapper");
6692
6692
  const EdgeConditionBuilderOverlay = preloadableLazy(() => import("./conditionBuilder-D8aLGL1w.js").then((m) => m.default), "EdgeConditionBuilder");
6693
6693
  const VersionDiffDialogOverlay = preloadableLazy(() => import("./VersionDiffDialog-D9W5Fm56.js").then((n) => n.n).then((m) => m.VersionDiffDialog), "VersionDiffDialog");
6694
- const WorkflowProposalCardOverlay = preloadableLazy(() => import("./WorkflowProposalCard-zCdUpCk8.js").then((n) => n.n).then((m) => m.WorkflowProposalCard), "WorkflowProposalCard");
6694
+ const WorkflowProposalCardOverlay = preloadableLazy(() => import("./WorkflowProposalCard-SmRv_Egf.js").then((n) => n.n).then((m) => m.WorkflowProposalCard), "WorkflowProposalCard");
6695
6695
  /**
6696
6696
  * Loads every overlay's code (and the markdown renderer the sticky notes and
6697
6697
  * the Node Store use) without rendering anything. Best effort: it never
@@ -7755,7 +7755,7 @@ function OrganizationPrivateNodesSection() {
7755
7755
  else toast.error(tr(`${KEY}.uninstallErrorToast`, "Uninstall failed"), { description: result.error });
7756
7756
  };
7757
7757
  return /* @__PURE__ */ jsxs("section", {
7758
- className: "mb-2 rounded-lg border border-default px-1 py-1",
7758
+ className: "mb-2 rounded-lg border border-border-default px-1 py-1",
7759
7759
  "data-testid": "org-private-nodes",
7760
7760
  children: [/* @__PURE__ */ jsxs("div", {
7761
7761
  className: "flex items-center gap-2 px-2 pt-2 pb-1",
@@ -7971,7 +7971,7 @@ function StoreCategoryList({ searchTerm, onSearchChange, onSelectCategory, onSel
7971
7971
  className: "flex flex-col gap-0.5 pt-1",
7972
7972
  children: [STORE_CATEGORIES.map((cat) => /* @__PURE__ */ jsxs("button", {
7973
7973
  onClick: () => onSelectCategory(cat),
7974
- className: "w-full flex items-center gap-3 px-2 py-3 rounded-lg border border-transparent hover:border-default hover:bg-muted/60 transition-colors text-left group",
7974
+ className: "w-full flex items-center gap-3 px-2 py-3 rounded-lg border border-transparent hover:border-border-default hover:bg-muted/60 transition-colors text-left group",
7975
7975
  children: [
7976
7976
  /* @__PURE__ */ jsx("div", {
7977
7977
  className: "size-9 shrink-0 rounded-lg flex items-center justify-center",
@@ -7999,7 +7999,7 @@ function StoreCategoryList({ searchTerm, onSearchChange, onSelectCategory, onSel
7999
7999
  ]
8000
8000
  }, cat.key)), deprecatedInstallations.length > 0 && /* @__PURE__ */ jsxs("button", {
8001
8001
  onClick: () => setShowDeprecated(true),
8002
- className: "w-full flex items-center gap-3 px-2 py-3 rounded-lg border border-transparent hover:border-default hover:bg-muted/60 transition-colors text-left group",
8002
+ className: "w-full flex items-center gap-3 px-2 py-3 rounded-lg border border-transparent hover:border-border-default hover:bg-muted/60 transition-colors text-left group",
8003
8003
  children: [
8004
8004
  /* @__PURE__ */ jsx("div", {
8005
8005
  className: "size-9 shrink-0 rounded-lg flex items-center justify-center",
@@ -11578,7 +11578,7 @@ function ChatCollapsedBar({ onOpen }) {
11578
11578
  className: "size-4 text-primary"
11579
11579
  }), tr("fluidgrids.builder.chatPanel.openButton", "Chat")]
11580
11580
  }), /* @__PURE__ */ jsx("span", {
11581
- className: "text-xs text-tertiary",
11581
+ className: "text-xs text-text-muted",
11582
11582
  children: tr("fluidgrids.builder.chatPanel.collapsedHint", "Test your AI workflow with messages")
11583
11583
  })]
11584
11584
  });
@@ -11609,7 +11609,7 @@ function ChatPanelHeader({ userMessageCount, onCollapse, onClear }) {
11609
11609
  children: tr("fluidgrids.builder.chatPanel.headerTitle", "Chat")
11610
11610
  }),
11611
11611
  userMessageCount > 0 && /* @__PURE__ */ jsx("span", {
11612
- className: "text-xs text-tertiary",
11612
+ className: "text-xs text-text-muted",
11613
11613
  children: tr("fluidgrids.builder.chatPanel.messageCount", "({{count}} messages)", { count: userMessageCount })
11614
11614
  })
11615
11615
  ]
@@ -11658,7 +11658,7 @@ function ChatBubble({ message, content, streaming }) {
11658
11658
  children: tr("fluidgrids.builder.chatPanel.errorMessage", "Error: {{message}}", { message: message.error })
11659
11659
  }),
11660
11660
  message.status === "stopped" && /* @__PURE__ */ jsx("div", {
11661
- className: "mt-1.5 text-xs text-tertiary italic",
11661
+ className: "mt-1.5 text-xs text-text-muted italic",
11662
11662
  children: tr("fluidgrids.builder.chatPanel.stoppedMarker", "Stopped before the reply was finished")
11663
11663
  }),
11664
11664
  message.runId && /* @__PURE__ */ jsx("div", {
@@ -11672,7 +11672,7 @@ function ChatMessageRow({ message, content, streaming }) {
11672
11672
  return /* @__PURE__ */ jsx("div", {
11673
11673
  className: cn("flex", message.role === "user" && "justify-end", message.role === "system" && "justify-center", message.role === "assistant" && "justify-start"),
11674
11674
  children: message.role === "system" ? /* @__PURE__ */ jsx("span", {
11675
- className: "text-xs text-tertiary italic",
11675
+ className: "text-xs text-text-muted italic",
11676
11676
  children: message.content
11677
11677
  }) : /* @__PURE__ */ jsx(ChatBubble, {
11678
11678
  message,
@@ -11783,6 +11783,10 @@ function usePanelResize(initialHeight) {
11783
11783
 
11784
11784
  // src/builder/components/flow-builder/components/chat-panel/chat-reply.ts
11785
11785
  const AI_AGENT_NODE_TYPE = "store/ai-agent";
11786
+ /** The node's output is still being read (absent state: loaded). */
11787
+ function outputLoading(log) {
11788
+ return !log.output && log.outputState === "loading";
11789
+ }
11786
11790
  /** The streamed text to show, marking a reply whose start never arrived. */
11787
11791
  function streamedText(stream) {
11788
11792
  if (!stream?.text) return "";
@@ -11828,11 +11832,29 @@ function resolveChatReply({ runLogs, isExecutionRunning, liveText, texts }) {
11828
11832
  if (runLogs.length === 0) return null;
11829
11833
  const agentLog = runLogs.find((log) => log.nodeType === "store/ai-agent" && (log.status === "completed" || log.status === "failed"));
11830
11834
  if (agentLog) {
11831
- if (agentLog.status === "completed" && agentLog.output) return {
11832
- kind: "complete",
11833
- content: agentResponse(agentLog.output) ?? (liveText || outputText(agentLog.output)),
11834
- duration: agentLog.duration ? `${Number(agentLog.duration).toFixed(1)}s` : void 0
11835
- };
11835
+ if (agentLog.status === "completed") {
11836
+ if (outputLoading(agentLog)) return null;
11837
+ const duration = agentLog.duration ? `${Number(agentLog.duration).toFixed(1)}s` : void 0;
11838
+ if (agentLog.output) return {
11839
+ kind: "complete",
11840
+ content: agentResponse(agentLog.output) ?? (liveText || outputText(agentLog.output)),
11841
+ duration
11842
+ };
11843
+ if (liveText) return {
11844
+ kind: "complete",
11845
+ content: liveText,
11846
+ duration
11847
+ };
11848
+ return agentLog.outputState === "unavailable" ? {
11849
+ kind: "error",
11850
+ content: "",
11851
+ error: texts.outputUnavailable
11852
+ } : {
11853
+ kind: "complete",
11854
+ content: texts.noOutput,
11855
+ duration
11856
+ };
11857
+ }
11836
11858
  return {
11837
11859
  kind: "error",
11838
11860
  content: liveText,
@@ -11851,7 +11873,7 @@ function resolveChatReply({ runLogs, isExecutionRunning, liveText, texts }) {
11851
11873
  content: liveText
11852
11874
  };
11853
11875
  const lastCompleted = runLogs.filter((log) => log.status === "completed").at(-1);
11854
- if (!lastCompleted) return null;
11876
+ if (!lastCompleted || outputLoading(lastCompleted)) return null;
11855
11877
  return {
11856
11878
  kind: "complete",
11857
11879
  content: lastCompleted.output ? outputText(lastCompleted.output) : texts.noOutput
@@ -11933,7 +11955,8 @@ function chatReplyTexts(tr) {
11933
11955
  return {
11934
11956
  agentFailed: tr("fluidgrids.builder.chatPanel.agentFailed", "The AI Agent failed"),
11935
11957
  workflowFailed: tr("fluidgrids.builder.chatPanel.workflowFailed", "The workflow failed"),
11936
- noOutput: tr("fluidgrids.builder.chatPanel.noOutputMessage", "Workflow completed with no output")
11958
+ noOutput: tr("fluidgrids.builder.chatPanel.noOutputMessage", "Workflow completed with no output"),
11959
+ outputUnavailable: tr("fluidgrids.builder.chatPanel.outputUnavailable", "The AI Agent finished, but its reply could not be loaded. Open the run to see it.")
11937
11960
  };
11938
11961
  }
11939
11962
  /**
@@ -19319,7 +19342,7 @@ const FlowBuilder = ({ readOnly = false, fitToScreen = false }) => {
19319
19342
  paletteGatesRef.current = paletteGates;
19320
19343
  }, [paletteGates]);
19321
19344
  useWarmBuilderOverlays();
19322
- useLazyAgentTools(() => import("./agentTools-DTXUqtfu.js").then(({ createBuilderAgentTools }) => createBuilderAgentTools({ durableFunctionsEnabled: () => paletteGatesRef.current })), !editingBlocked, "Agent tools");
19345
+ useLazyAgentTools(() => import("./agentTools-Dle04WMj.js").then(({ createBuilderAgentTools }) => createBuilderAgentTools({ durableFunctionsEnabled: () => paletteGatesRef.current })), !editingBlocked, "Agent tools");
19323
19346
  const [nodes, edges, onNodesChange, onEdgesChange, onConnect] = useFlowStore(useShallow((s) => {
19324
19347
  return [
19325
19348
  s.workflow.nodes,
@@ -19361,7 +19384,7 @@ const FlowBuilder = ({ readOnly = false, fitToScreen = false }) => {
19361
19384
  useEffect(() => {
19362
19385
  fitViewRef.current = fitView;
19363
19386
  }, [fitView]);
19364
- useLazyAgentTools(() => import("./canvasNoteTools-DmfZwtnL.js").then(({ createCanvasNoteTools }) => createCanvasNoteTools({ focusNode: (nodeId) => fitViewRef.current({
19387
+ useLazyAgentTools(() => import("./canvasNoteTools-Bror30X8.js").then(({ createCanvasNoteTools }) => createCanvasNoteTools({ focusNode: (nodeId) => fitViewRef.current({
19365
19388
  nodes: [{ id: nodeId }],
19366
19389
  duration: 400,
19367
19390
  padding: .6,
package/dist/history.js CHANGED
@@ -1,4 +1,4 @@
1
1
  "use client";
2
- import { t as HistoryPage } from "./HistoryPage-D2QBZ6Oc.js";
2
+ import { t as HistoryPage } from "./HistoryPage-8lQ6xf5Q.js";
3
3
 
4
4
  export { HistoryPage };
@@ -1,6 +1,6 @@
1
1
 
2
2
  import { f as FluidGridsTheme, r as FluidGridsRefreshedTokens } from "./index-72XFgvbn.js";
3
- import { R as FluidGridsProviderProps, w as WorkflowData } from "./index-CJGq3QbH.js";
3
+ import { R as FluidGridsProviderProps, w as WorkflowData } from "./index-RWAuYE2j.js";
4
4
  import { j as Translator } from "./constants-XdvUxeWK.js";
5
5
  import { t as RunsQuota } from "./runsQuota-DsniKiSg.js";
6
6
  import * as React$2 from "react";
@@ -306,7 +306,9 @@ interface ExecutionLog {
306
306
  endTime: string | null;
307
307
  usedPinnedData?: boolean;
308
308
  reusedFromRunId?: string | null;
309
+ outputState?: ExecutionLogOutputState;
309
310
  }
311
+ type ExecutionLogOutputState = "loading" | "loaded" | "unavailable";
310
312
  interface ExecutionsFilter {
311
313
  status?: RunStatus[];
312
314
  workflowKey?: string;