@burdenoff/fluidgrids-fe-sdk 2026.1115.6 → 2026.1115.8

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 (81) hide show
  1. package/dist/{AiStudioPage-B5iwjb5Q.js → AiStudioPage-BoxsR2hy.js} +4 -4
  2. package/dist/{ApprovalInboxPage-5RsXtGOd.js → ApprovalInboxPage-BRnmz88g.js} +1 -1
  3. package/dist/{DataSinkDashboardPage-BvYuAkRQ.js → DataSinkDashboardPage-Ccg_SZmm.js} +1 -1
  4. package/dist/{DataTablesPage-Ds0oPx2J.js → DataTablesPage-Dnmd_wKx.js} +2 -2
  5. package/dist/{Disclosure-PfrdUKIg.js → Disclosure-C3xMLSU-.js} +1 -1
  6. package/dist/{ExecutionDetailPage-BySGUCt-.js → ExecutionDetailPage-DwadwaR0.js} +91 -27
  7. package/dist/{ExecutionsListPage-ChU3hVSX.js → ExecutionsListPage-D18xVwH7.js} +9 -9
  8. package/dist/{FailureTriagePanel-CBGgU4Tl.js → FailureTriagePanel-Cka9Rc1_.js} +1 -1
  9. package/dist/{FluidGridsProvider-bj1n0e-_.js → FluidGridsProvider-xFYPchhw.js} +3 -3
  10. package/dist/{HistoryPage-BCM7aOp1.js → HistoryPage-DjvD1-YA.js} +1 -1
  11. package/dist/{InsightsPage-BplUI-WG.js → InsightsPage-eHkVOiJC.js} +6 -6
  12. package/dist/{NodesPage-D8xEY3Wd.js → NodesPage-D8rMR0is.js} +3 -3
  13. package/dist/OfflineIcon-DnKb-mo2.js +190 -0
  14. package/dist/{OpenTemplateAsCodeButton-BemhA1u4.js → OpenTemplateAsCodeButton-CQV-YHlJ.js} +2 -2
  15. package/dist/{PaidTemplateConfirm-B2U1afV_.js → PaidTemplateConfirm-C4hmka25.js} +1 -1
  16. package/dist/{RunnersPage-DPPthewP.js → RunnersPage-XXDoZ0R1.js} +1 -1
  17. package/dist/{SettingsPage-BqvPcRdc.js → SettingsPage-B1DZRkIr.js} +7 -7
  18. package/dist/{TaskQueuesPage-ESjeGUg3.js → TaskQueuesPage-CZQUO33o.js} +1 -1
  19. package/dist/{TechnicalDetails-CMZwijEM.js → TechnicalDetails-xQtjIWWx.js} +1 -1
  20. package/dist/{TemplateCard-Dc3OZtJ9.js → TemplateCard-CCz5NW6t.js} +13 -6
  21. package/dist/{TemplateConfigurationModal-DMyuHZ3O.js → TemplateConfigurationModal-D8eQsJXJ.js} +1 -1
  22. package/dist/{TemplateDetailPanel-D81Wl3rx.js → TemplateDetailPanel-DFUiz6n7.js} +2 -2
  23. package/dist/{TemplatePreview-DGRairGW.js → TemplatePreview-Kd2FKykc.js} +7 -8
  24. package/dist/{TemplatesPage-70rbq8Rc.js → TemplatesPage-DvRDWMtn.js} +13 -14
  25. package/dist/{VariablesPage-D_8oB3WB.js → VariablesPage-CFzJFbMb.js} +1 -1
  26. package/dist/{WorkflowBuilder-BZUy6XTc.js → WorkflowBuilder-44buoEQ3.js} +6 -6
  27. package/dist/{WorkflowBuilder-BTb_XmrM.js → WorkflowBuilder-CrLctwxF.js} +4 -4
  28. package/dist/{WorkflowSearchRedirect-DGVMIcRB.js → WorkflowSearchRedirect-guNkbQSU.js} +1 -1
  29. package/dist/{WorkflowShareDialog-qyGW0cSr.js → WorkflowShareDialog-D_G3TUGQ.js} +1 -1
  30. package/dist/{WorkflowsList-I9dki9XL.js → WorkflowsList-Dqqk_Y-X.js} +10 -10
  31. package/dist/{agentTools-D1GE1R3W.js → agentTools-B_Po22sZ.js} +3 -3
  32. package/dist/{ai-usage-yzPWZgAC.js → ai-usage-DhSKp0tV.js} +1 -1
  33. package/dist/{api-o5UUDbr8.js → api-D1cWC1yx.js} +190 -1
  34. package/dist/{assert-rules-FOiGC7-z.js → assert-rules-D9PNDTMK.js} +1 -1
  35. package/dist/{attach-node-helpers-CdJnfSMp.js → attach-node-helpers-vlWwLKOg.js} +1 -1
  36. package/dist/{canvasNoteTools-hcxOjdUt.js → canvasNoteTools-DljlLrdC.js} +2 -2
  37. package/dist/executions.js +2 -2
  38. package/dist/{flow-builder-DVFgddvT.js → flow-builder-Dkf2pKoQ.js} +25 -22
  39. package/dist/{graphql-types-C2heV7ot.js → graphql-types-CxkVzQqA.js} +25 -1
  40. package/dist/history.js +1 -1
  41. package/dist/{index-CIRkv8Dr.d.ts → index-BFzvT8JS.d.ts} +163 -1
  42. package/dist/index.d.ts +2 -2
  43. package/dist/index.js +42 -42
  44. package/dist/{logs-panel-PCjDyny7.js → logs-panel-CMwkrzx_.js} +1 -1
  45. package/dist/{node-detail-view-BSA9SzZe.js → node-detail-view-BxPBWA_k.js} +8 -8
  46. package/dist/{node-editor-tab-body-BIg34eC4.js → node-editor-tab-body-CfcsbpTx.js} +3 -3
  47. package/dist/{node-operation-selection-DCJ_DDHr.js → node-operation-selection-sT7nCmDk.js} +1 -1
  48. package/dist/{node-type-icon-nGIb5TyU.js → node-type-icon-BiX35H0z.js} +2 -2
  49. package/dist/nodes.js +1 -1
  50. package/dist/observability.d.ts +1 -1
  51. package/dist/observability.js +2 -2
  52. package/dist/{popover-Cm6NUt8X.js → popover-DJ91SCN_.js} +2 -2
  53. package/dist/{quick-config-panel-DlFgPsD3.js → quick-config-panel-DnO8kCH6.js} +5 -5
  54. package/dist/{run-list-links-sTAexiqj.js → run-list-links-BwsCiBPB.js} +1 -1
  55. package/dist/{run-mode-DjXIqsz3.js → run-mode-vpIlmfgY.js} +1 -1
  56. package/dist/{schedule-panel-8FOmrXOc.js → schedule-panel-D2nCNyJR.js} +8 -8
  57. package/dist/settings.js +1 -1
  58. package/dist/{sidebar-node-editor-CmUVQI98.js → sidebar-node-editor-DuE6t-hj.js} +5 -5
  59. package/dist/{store-icon-CVt10XSp.js → store-icon-Bgmyn3Lt.js} +1 -1
  60. package/dist/{template-code-DrS_vlf_.js → template-code-9dL1SUji.js} +1 -1
  61. package/dist/{template-preview-ByYgTYSz.js → template-preview-BwOqyuFH.js} +1 -1
  62. package/dist/templates.js +2 -2
  63. package/dist/{use-workflow-code-editor-Bx2D6sH5.js → use-workflow-code-editor-DJMH7-Xx.js} +2 -2
  64. package/dist/{use-workflow-tests-CVVKinFU.js → use-workflow-tests-C4e6aJZS.js} +2 -2
  65. package/dist/{useAgentDefinitions-Dx4SqPfQ.js → useAgentDefinitions-BCLCgtQt.js} +1 -1
  66. package/dist/{useDurableParity-Befl3Upg.js → useDurableParity-BO--Wn7k.js} +1 -1
  67. package/dist/{useExecutions-BfWbGmS-.js → useExecutions-DG6XbEsa.js} +2 -2
  68. package/dist/{useGlobalStoreClient-9mTD1C4n.js → useGlobalStoreClient-CY3q5xdv.js} +1 -1
  69. package/dist/{useObservability-p3zh8LJ1.js → useObservability-CC8fdMQ-.js} +1 -1
  70. package/dist/{useRunHistory-CmTXVjbW.js → useRunHistory-DIFumHVe.js} +2 -2
  71. package/dist/{useWorkflowCodeExport-ViLhpUDg.js → useWorkflowCodeExport-CcGfzyh6.js} +2 -2
  72. package/dist/{useWorkflows-CW2ojGoA.js → useWorkflows-B7ZkOKhh.js} +1 -1
  73. package/dist/workflow-builder.js +5 -5
  74. package/dist/{workflow-description-QyeY2oiH.js → workflow-description-DIp27SKz.js} +1 -1
  75. package/dist/workflow-pages.d.ts +1 -1
  76. package/dist/workflow-pages.js +19 -19
  77. package/dist/workflow-preview.js +1 -1
  78. package/dist/{workflow-transfer-BlDyxa9L.js → workflow-transfer-CsXh0mIi.js} +1 -1
  79. package/dist/workflows-list.js +1 -1
  80. package/package.json +1 -1
  81. package/dist/OfflineIcon-Ckynq7Vp.js +0 -124
@@ -1,15 +1,15 @@
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 { a as useAiWorkflowTemplates, i as enrichDraftNodes, n as AI_DRAFT_MAX_PROMPT_LENGTH, r as draftToCanvas, t as FlowBuilderPage } from "./flow-builder-DVFgddvT.js";
5
- import { Ct as classifyCreateRefusal, N as buildOperationSeed, St as builderPathOf, d as ensureNodeTypesLoaded } from "./FluidGridsProvider-bj1n0e-_.js";
4
+ import { a as useAiWorkflowTemplates, i as enrichDraftNodes, n as AI_DRAFT_MAX_PROMPT_LENGTH, r as draftToCanvas, t as FlowBuilderPage } from "./flow-builder-Dkf2pKoQ.js";
5
+ import { Ct as classifyCreateRefusal, N as buildOperationSeed, St as builderPathOf, d as ensureNodeTypesLoaded } from "./FluidGridsProvider-xFYPchhw.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 { a as notifyFluidGridsAiCreditsUpdated, t as AiCreditBalanceSlot } from "./aiCreditsBridge-BuE92tKo.js";
9
- import { n as useCreateWorkflow } from "./useWorkflows-CW2ojGoA.js";
9
+ import { n as useCreateWorkflow } from "./useWorkflows-B7ZkOKhh.js";
10
10
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
11
11
  import { t as BILLING_PLANS_PATH } from "./quota-Cdt8yz7N.js";
12
- import { o as CreateWorkflowRefusalDialog } from "./workflow-description-QyeY2oiH.js";
12
+ import { o as CreateWorkflowRefusalDialog } from "./workflow-description-DIp27SKz.js";
13
13
  import { s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-65QV61nQ.js";
14
14
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
15
15
  import { useNavigate } from "react-router";
@@ -5,7 +5,7 @@ import { n as useNavigationV2 } from "./useNavigationV2-C2WeqN7d.js";
5
5
  import { o as throwIfResultError, r as isForbiddenError, t as describeOperationError } from "./errors-xPZ-IbQd.js";
6
6
  import { a as useRecipientLabel, i as notAnswerableText, n as ApprovalApprovers, r as answeredToastText, t as channelLabel } from "./channel-DtF1n_ab.js";
7
7
  import { n as useRespondToHumanRequest, t as usePendingHumanRequests } from "./useHumanRequests-DwG2tQ3f.js";
8
- import { t as TechnicalDetails } from "./TechnicalDetails-CMZwijEM.js";
8
+ import { t as TechnicalDetails } from "./TechnicalDetails-xQtjIWWx.js";
9
9
  import { t as FluidGridsDocsLink } from "./FluidGridsDocsLink-JxkBpOeb.js";
10
10
  import { n as getFluidGridsClient } from "./client-Ctl4jmY3.js";
11
11
  import { r as nodeDisplayTitle, t as buildNodeDisplayMap } from "./run-display-UjLAoYqQ.js";
@@ -2,7 +2,7 @@
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
3
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
4
4
  import { n as useNavigationV2 } from "./useNavigationV2-C2WeqN7d.js";
5
- import { n as useDataSinks, t as useDataSinkData } from "./useObservability-p3zh8LJ1.js";
5
+ import { n as useDataSinks, t as useDataSinkData } from "./useObservability-CC8fdMQ-.js";
6
6
  import { i as formatTimestamp, l as prettyJson, t as formatBytes } from "./utils-CXEodE1a.js";
7
7
  import { useEffect, useMemo, useState } from "react";
8
8
  import { Icon } from "@iconify/react";
@@ -11,9 +11,9 @@ import { n as getFluidGridsClient } from "./client-Ctl4jmY3.js";
11
11
  import { t as FluidGridsDocsLink } from "./FluidGridsDocsLink-JxkBpOeb.js";
12
12
  import { n as useNavigationV2 } from "./useNavigationV2-C2WeqN7d.js";
13
13
  import { t as ConfirmActionDialog } from "./ConfirmActionDialog-D9Pir3bc.js";
14
- import { t as Disclosure } from "./Disclosure-PfrdUKIg.js";
14
+ import { t as Disclosure } from "./Disclosure-C3xMLSU-.js";
15
15
  import { t as RunActionsMenu } from "./RunActionsMenu-BZY4NreS.js";
16
- import { t as TechnicalDetails } from "./TechnicalDetails-CMZwijEM.js";
16
+ import { t as TechnicalDetails } from "./TechnicalDetails-xQtjIWWx.js";
17
17
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
18
18
  import { useNavigate } from "react-router";
19
19
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { t as OfflineIcon } from "./OfflineIcon-Ckynq7Vp.js";
2
+ import { t as OfflineIcon } from "./OfflineIcon-DnKb-mo2.js";
3
3
  import { useId, useState } from "react";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
 
@@ -1,14 +1,14 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
- import { c as activityOptionsFrom, d as errorAdvice, f as needsReconnect, i as useRunPending, l as ConfirmStopRunDialog, m as NodeStatusBadge, n as useDurableParityRunFields, o as ActivityOptionsFields, p as ExecutionStatusBadge, r as useRunMetadata, s as EMPTY_ACTIVITY_OPTIONS_FORM, t as setRunVersioningOverride } from "./useDurableParity-Befl3Upg.js";
3
+ import { c as activityOptionsFrom, d as errorAdvice, f as needsReconnect, i as useRunPending, l as ConfirmStopRunDialog, m as NodeStatusBadge, n as useDurableParityRunFields, o as ActivityOptionsFields, p as ExecutionStatusBadge, r as useRunMetadata, s as EMPTY_ACTIVITY_OPTIONS_FORM, t as setRunVersioningOverride } from "./useDurableParity-BO--Wn7k.js";
4
4
  import { n as formatRunVersion, r as nodeDisplayTitle, t as buildNodeDisplayMap } from "./run-display-UjLAoYqQ.js";
5
5
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
6
6
  import { c as RunLogAppendedDocument, l as RunLogsDocument, s as isAgentNodeType } from "./agent-form-D0uLvzx4.js";
7
- import { A as describeRunError, D as runQuestions, E as isFailedStatus, O as runStepQuestions, T as failureQuestions, an as runDurationMs, in as nodeStateDurationMs, j as describeRunStep, k as describeRun, rn as formatElapsedMs, wn as runSignalTargets, xn as durableInterfaceOf, yn as canSignalRun } from "./FluidGridsProvider-bj1n0e-_.js";
7
+ import { A as describeRunError, D as runQuestions, E as isFailedStatus, O as runStepQuestions, T as failureQuestions, an as runDurationMs, in as nodeStateDurationMs, j as describeRunStep, k as describeRun, rn as formatElapsedMs, wn as runSignalTargets, xn as durableInterfaceOf, yn as canSignalRun } from "./FluidGridsProvider-xFYPchhw.js";
8
8
  import { i as useFgAskable, o as useFgAskableSelection, r as useFgAskAssistant } from "./askAboutBridge-ByYsQams.js";
9
9
  import { n as useNavigationV2 } from "./useNavigationV2-C2WeqN7d.js";
10
- import { t as TechnicalDetails } from "./TechnicalDetails-CMZwijEM.js";
11
- import { _ as shortRunId, g as runChainLinks, h as parseMetadataDefinition, m as overrideRequestOf, n as useExecution, p as callbackTone, r as useExecutionActions, s as buildRetryTriggerInput, t as useAutoRefresh } from "./useExecutions-BfWbGmS-.js";
10
+ import { t as TechnicalDetails } from "./TechnicalDetails-xQtjIWWx.js";
11
+ import { _ as shortRunId, g as runChainLinks, h as parseMetadataDefinition, m as overrideRequestOf, n as useExecution, p as callbackTone, r as useExecutionActions, s as buildRetryTriggerInput, t as useAutoRefresh } from "./useExecutions-DG6XbEsa.js";
12
12
  import { t as RunActionsMenu } from "./RunActionsMenu-BZY4NreS.js";
13
13
  import { n as getFluidGridsClient, r as getFluidGridsClientSafe } from "./client-Ctl4jmY3.js";
14
14
  import { o as throwIfResultError, t as describeOperationError } from "./errors-xPZ-IbQd.js";
@@ -23,15 +23,15 @@ import { a as RUN_CONTROL_DIALOG_STYLE, c as parseJsonInput, i as NativeSelect,
23
23
  import { t as useWorkflowProposal } from "./useWorkflowProposal-B9vXLKef.js";
24
24
  import { t as WorkflowProposalCard } from "./WorkflowProposalCard-SmRv_Egf.js";
25
25
  import { t as AiCreditBalanceSlot } from "./aiCreditsBridge-BuE92tKo.js";
26
- import { a as fetchRunFailureClusters, i as dismissRunFailureCluster, r as OPEN_STATUSES, t as BUCKET_LABELS } from "./FailureTriagePanel-CBGgU4Tl.js";
27
- import { a as useDurableRunFields, i as useDeterminismStatus, n as SignalRunDialog, o as useRunStackTrace, r as terminateDurableRun, s as RunHistoryView, t as useRunHistory } from "./useRunHistory-CmTXVjbW.js";
28
- import { BF as VersioningBehavior, DL as WorkflowUpdateWaitFor, L as AgentStepKind, Xd as ErrorType, sL as WorkflowQueryRejectCondition } from "./graphql-types-C2heV7ot.js";
29
- import { _ as agentTokenStreamsFor, g as agentLiveReplyState, h as useAgentTokenStream, i as canSaveRunAsTestCase, t as saveRunAsTestCase } from "./use-workflow-tests-CVVKinFU.js";
30
- import { a as formatTokens, d as formatMicroUsd, o as modelLabel, r as aiCost } from "./ai-usage-yzPWZgAC.js";
26
+ import { a as fetchRunFailureClusters, i as dismissRunFailureCluster, r as OPEN_STATUSES, t as BUCKET_LABELS } from "./FailureTriagePanel-Cka9Rc1_.js";
27
+ import { a as useDurableRunFields, i as useDeterminismStatus, n as SignalRunDialog, o as useRunStackTrace, r as terminateDurableRun, s as RunHistoryView, t as useRunHistory } from "./useRunHistory-DIFumHVe.js";
28
+ import { HF as VersioningBehavior, L as AgentStepKind, Qd as ErrorType, kL as WorkflowUpdateWaitFor, lL as WorkflowQueryRejectCondition } from "./graphql-types-CxkVzQqA.js";
29
+ import { _ as agentTokenStreamsFor, g as agentLiveReplyState, h as useAgentTokenStream, i as canSaveRunAsTestCase, t as saveRunAsTestCase } from "./use-workflow-tests-C4e6aJZS.js";
30
+ import { a as formatTokens, d as formatMicroUsd, o as modelLabel, r as aiCost } from "./ai-usage-DhSKp0tV.js";
31
31
  import { _ as useWorkflowTestsEnabled, l as useDurableFunctionNodesEnabled, m as usePhaseCFlags, u as useDurableParityEnabled } from "./feature-flags-B_b8PJ6Z.js";
32
- import { A as revokeSignalToken, B as updateActivityOptions, D as resetActivities, E as queryRun, N as sendRunUpdate, O as resetRun, R as unpauseActivities, S as fetchSignalTokens, V as upsertRunSearchAttributes, _ as fetchPauseRules, b as fetchRunUpdate, d as failActivityById, g as fetchCodecServerSettings, i as completeActivityById, k as resetRunToLastCleanTask, s as createSignalToken, v as fetchRunControlFields, w as pauseActivities, y as fetchRunHistoryArchive } from "./api-o5UUDbr8.js";
32
+ import { A as resetRunToLastCleanTask, C as fetchSignalTokens, D as queryRun, H as upsertRunSearchAttributes, O as resetActivities, P as sendRunUpdate, T as pauseActivities, V as updateActivityOptions, _ as fetchPauseRules, b as fetchRunHistoryArchive, d as failActivityById, g as fetchCodecServerSettings, i as completeActivityById, j as revokeSignalToken, k as resetRun, s as createSignalToken, v as fetchRunArchive, x as fetchRunUpdate, y as fetchRunControlFields, z as unpauseActivities } from "./api-D1cWC1yx.js";
33
33
  import { a as fetchTaskQueueStats } from "./api-CEzqoN5H.js";
34
- import { v as useWorkflowVersions } from "./useWorkflows-CW2ojGoA.js";
34
+ import { v as useWorkflowVersions } from "./useWorkflows-B7ZkOKhh.js";
35
35
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
36
36
  import { Link, useNavigate, useParams, useSearchParams } from "react-router";
37
37
  import { Icon } from "@iconify/react";
@@ -7143,25 +7143,33 @@ function EncodedPayloadChip({ payload, codecServer, fetchImpl }) {
7143
7143
  }
7144
7144
 
7145
7145
  // src/modules/run-control/components/ArchivedRunView.tsx
7146
+ /** An ISO timestamp as the viewer's local date and time; the input when it does not parse. */
7147
+ function localTime(iso) {
7148
+ if (!iso) return "";
7149
+ const date = new Date(iso);
7150
+ return Number.isNaN(date.getTime()) ? iso : date.toLocaleString();
7151
+ }
7146
7152
  function ArchivedRunView({ runId, enabled, fallback, backLink, onViewChildRun }) {
7147
7153
  const tr = useTr();
7148
- const archive = useResource(`archived-run:${runId}`, enabled, () => fetchRunHistoryArchive(runId));
7149
- const archived = archive.data?.archived === true;
7154
+ const lookup = useResource(`archived-run:${runId}`, enabled, async () => ({ archive: await fetchRunArchive(runId) }));
7155
+ const archive = lookup.data?.archive ?? null;
7156
+ const hasEvents = (archive?.eventCount ?? 0) > 0;
7157
+ const readStatus = useResource(`archived-run-read:${runId}`, enabled && hasEvents, () => fetchRunHistoryArchive(runId));
7150
7158
  const history = useRunHistory(runId, {
7151
- enabled: archived,
7159
+ enabled: enabled && hasEvents,
7152
7160
  live: false
7153
7161
  });
7154
7162
  if (!enabled) return /* @__PURE__ */ jsx(Fragment$1, { children: fallback });
7155
- if (!archive.data && !archive.error) return /* @__PURE__ */ jsxs("div", {
7163
+ if (lookup.error) return /* @__PURE__ */ jsx(Fragment$1, { children: fallback });
7164
+ if (!lookup.data) return /* @__PURE__ */ jsxs("div", {
7156
7165
  className: "animate-pulse p-4 sm:p-6",
7157
7166
  "data-testid": "archived-run-loading",
7158
7167
  "aria-busy": "true",
7159
7168
  children: [/* @__PURE__ */ jsx("div", { className: "mb-4 h-8 w-48 rounded bg-surface-sunken" }), /* @__PURE__ */ jsx("div", { className: "h-64 rounded-lg bg-surface-sunken" })]
7160
7169
  });
7161
- if (!archived) return /* @__PURE__ */ jsx(Fragment$1, { children: fallback });
7162
- const ref = archive.data?.archiveRef ?? tr("fluidgrids.runControl.archive.unknownRef", "the workspace's archive bucket");
7163
- const archivedCount = archive.data?.historyLength ?? 0;
7164
- const unreadable = !history.loading && !history.error && history.events.length === 0 && archivedCount > 0;
7170
+ if (!archive) return /* @__PURE__ */ jsx(Fragment$1, { children: fallback });
7171
+ const ref = archive.archiveRef;
7172
+ const readError = readStatus.data?.archiveReadError ?? null;
7165
7173
  return /* @__PURE__ */ jsxs("div", {
7166
7174
  className: "space-y-4 p-4 sm:p-6",
7167
7175
  "data-testid": "archived-run",
@@ -7180,6 +7188,56 @@ function ArchivedRunView({ runId, enabled, fallback, backLink, onViewChildRun })
7180
7188
  }), tr("fluidgrids.runControl.archive.badge", "Archived")]
7181
7189
  })]
7182
7190
  }),
7191
+ /* @__PURE__ */ jsxs("dl", {
7192
+ className: "grid grid-cols-1 gap-x-6 gap-y-1 text-sm sm:grid-cols-2",
7193
+ "data-testid": "archived-run-facts",
7194
+ children: [
7195
+ /* @__PURE__ */ jsxs("div", {
7196
+ className: "flex gap-2",
7197
+ children: [/* @__PURE__ */ jsx("dt", {
7198
+ className: "text-text-secondary",
7199
+ children: tr("fluidgrids.runControl.archive.workflow", "Workflow")
7200
+ }), /* @__PURE__ */ jsxs("dd", {
7201
+ className: "font-mono text-text-primary",
7202
+ children: [
7203
+ archive.workflowKey,
7204
+ " ",
7205
+ archive.version
7206
+ ]
7207
+ })]
7208
+ }),
7209
+ /* @__PURE__ */ jsxs("div", {
7210
+ className: "flex gap-2",
7211
+ children: [/* @__PURE__ */ jsx("dt", {
7212
+ className: "text-text-secondary",
7213
+ children: tr("fluidgrids.runControl.archive.status", "Status")
7214
+ }), /* @__PURE__ */ jsx("dd", {
7215
+ className: "text-text-primary",
7216
+ children: archive.status
7217
+ })]
7218
+ }),
7219
+ /* @__PURE__ */ jsxs("div", {
7220
+ className: "flex gap-2",
7221
+ children: [/* @__PURE__ */ jsx("dt", {
7222
+ className: "text-text-secondary",
7223
+ children: tr("fluidgrids.runControl.archive.archivedAt", "Archived at")
7224
+ }), /* @__PURE__ */ jsx("dd", {
7225
+ className: "text-text-primary",
7226
+ children: localTime(archive.archivedAt)
7227
+ })]
7228
+ }),
7229
+ /* @__PURE__ */ jsxs("div", {
7230
+ className: "flex gap-2",
7231
+ children: [/* @__PURE__ */ jsx("dt", {
7232
+ className: "text-text-secondary",
7233
+ children: tr("fluidgrids.runControl.archive.events", "Events archived")
7234
+ }), /* @__PURE__ */ jsx("dd", {
7235
+ className: "text-text-primary",
7236
+ children: archive.eventCount
7237
+ })]
7238
+ })
7239
+ ]
7240
+ }),
7183
7241
  /* @__PURE__ */ jsxs("div", {
7184
7242
  role: "status",
7185
7243
  className: "flex items-start gap-2 rounded-md border border-border-default bg-surface-elevated p-3 text-sm text-text-primary",
@@ -7190,7 +7248,11 @@ function ArchivedRunView({ runId, enabled, fallback, backLink, onViewChildRun })
7190
7248
  className: "mt-0.5 shrink-0 text-text-secondary"
7191
7249
  }), /* @__PURE__ */ jsx("span", { children: tr("fluidgrids.runControl.archive.readBack", "Retention purged this run after archiving it to {{ref}}. Its history below is read back from the archive.", { ref }) })]
7192
7250
  }),
7193
- unreadable ? /* @__PURE__ */ jsxs("div", {
7251
+ !hasEvents ? /* @__PURE__ */ jsx("p", {
7252
+ className: "text-sm text-text-secondary",
7253
+ "data-testid": "archived-run-no-events",
7254
+ children: tr("fluidgrids.runControl.archive.noEvents", "This run archived no history events. A canvas run keeps its node executions in nodes.jsonl.gz next to the archive.")
7255
+ }) : readError ? /* @__PURE__ */ jsxs("div", {
7194
7256
  role: "alert",
7195
7257
  className: "flex items-start gap-2 rounded-md border border-status-warning-border bg-status-warning-bg-subtle p-3 text-sm text-status-warning-text",
7196
7258
  "data-testid": "archived-run-unreadable",
@@ -7198,13 +7260,14 @@ function ArchivedRunView({ runId, enabled, fallback, backLink, onViewChildRun })
7198
7260
  icon: "mdi:lock-outline",
7199
7261
  width: 18,
7200
7262
  className: "mt-0.5 shrink-0"
7201
- }), /* @__PURE__ */ jsx("span", { children: tr("fluidgrids.runControl.archive.unreadable", "{{count}} events were archived, but they could not be read back. Allow s3:GetObject on the archive prefix to the archive role, or read the files in {{ref}} directly.", {
7202
- count: archivedCount,
7263
+ }), /* @__PURE__ */ jsx("span", { children: tr("fluidgrids.runControl.archive.unreadableReason", "{{count}} events were archived, but they could not be read back: {{reason}}. You can also read the files in {{ref}} directly.", {
7264
+ count: archive.eventCount,
7265
+ reason: readError,
7203
7266
  ref
7204
7267
  }) })]
7205
7268
  }) : /* @__PURE__ */ jsx(RunHistoryView, {
7206
7269
  events: history.events,
7207
- loading: history.loading,
7270
+ loading: history.loading || readStatus.loading,
7208
7271
  error: history.error,
7209
7272
  active: false,
7210
7273
  streaming: false,
@@ -8050,6 +8113,7 @@ function ExecutionDetailPage() {
8050
8113
  ...durableFields.fields
8051
8114
  } : baseExecution, [baseExecution, durableFields.fields]);
8052
8115
  const refetchDurableFields = durableFields.refetch;
8116
+ const loadedRunId = runId && baseExecution?.id === runId ? runId : void 0;
8053
8117
  const parityFields = useDurableParityRunFields(runId, parityEnabled);
8054
8118
  const refetchParityFields = parityFields.refetch;
8055
8119
  const refetch = useCallback(async () => {
@@ -8064,8 +8128,8 @@ function ExecutionDetailPage() {
8064
8128
  refetchParityFields
8065
8129
  ]);
8066
8130
  const runCanChange = execution?.status === "RUNNING" || execution?.status === "PENDING" || execution?.status === "WAITING";
8067
- const { items: humanRequests, loadedAt: humanRequestsLoadedAt, error: humanRequestsError, refetch: refetchHumanRequests } = useRunHumanRequests(runId, { pollIntervalMs: runCanChange ? 1e4 : 0 });
8068
- const { decisions: policyDecisions, decide: decidePolicyApproval } = useRunPolicyDecisions(runId, { pollIntervalMs: runCanChange ? 1e4 : 0 });
8131
+ const { items: humanRequests, loadedAt: humanRequestsLoadedAt, error: humanRequestsError, refetch: refetchHumanRequests } = useRunHumanRequests(loadedRunId, { pollIntervalMs: runCanChange ? 1e4 : 0 });
8132
+ const { decisions: policyDecisions, decide: decidePolicyApproval } = useRunPolicyDecisions(loadedRunId, { pollIntervalMs: runCanChange ? 1e4 : 0 });
8069
8133
  const awaitingPerson = humanRequests.some((request) => request.status === "PENDING");
8070
8134
  const [waitingSeenAt, setWaitingSeenAt] = useState(null);
8071
8135
  const isWaiting = execution?.status === "WAITING";
@@ -8099,8 +8163,8 @@ function ExecutionDetailPage() {
8099
8163
  useAutoRefresh(useCallback(() => {
8100
8164
  refetch();
8101
8165
  }, [refetch]), autoRefreshEnabled && isActive, 2e3);
8102
- const hierarchy = useRunHierarchy(runId, { live: isActive });
8103
- const runLogs = useRunLogs(runId, {
8166
+ const hierarchy = useRunHierarchy(loadedRunId, { live: isActive });
8167
+ const runLogs = useRunLogs(loadedRunId, {
8104
8168
  live: isActive,
8105
8169
  minLevel: minLogLevel
8106
8170
  });
@@ -1,30 +1,30 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
3
  import { g as useExecutionsStore, h as DEFAULT_EXECUTIONS_FILTER } from "./config-X97zrIvn.js";
4
- import { b as validateDateRange, c as EMPTY_SEARCH_FILTER, d as searchFilterConflicts, i as useExecutionStats, l as OPERATORS_BY_TYPE, m as overrideRequestOf, o as useExecutionsWithStore, r as useExecutionActions, t as useAutoRefresh, u as buildSearchAttributeFilter } from "./useExecutions-BfWbGmS-.js";
4
+ import { b as validateDateRange, c as EMPTY_SEARCH_FILTER, d as searchFilterConflicts, i as useExecutionStats, l as OPERATORS_BY_TYPE, m as overrideRequestOf, o as useExecutionsWithStore, r as useExecutionActions, t as useAutoRefresh, u as buildSearchAttributeFilter } from "./useExecutions-DG6XbEsa.js";
5
5
  import { m as usePhaseCFlags, u as useDurableParityEnabled } from "./feature-flags-B_b8PJ6Z.js";
6
6
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
7
7
  import { n as useFluidGridsPageControls } from "./pageControlsBridge-0pX9s-3k.js";
8
8
  import { t as executionsControls } from "./pageControlSpecs-DZJ9K37m.js";
9
9
  import { t as TagFilterSelect } from "./TagFilterSelect-CAShgvbS.js";
10
10
  import { n as useNavigationV2 } from "./useNavigationV2-C2WeqN7d.js";
11
- import { a as useRunStatusCounts, c as activityOptionsFrom, d as errorAdvice, g as RUN_STATUS_CONFIG, h as runStatusLabels, l as ConfirmStopRunDialog, o as ActivityOptionsFields, p as ExecutionStatusBadge, s as EMPTY_ACTIVITY_OPTIONS_FORM, u as ADVICE_ERROR_TYPES } from "./useDurableParity-Befl3Upg.js";
12
- import { t as Disclosure } from "./Disclosure-PfrdUKIg.js";
11
+ import { a as useRunStatusCounts, c as activityOptionsFrom, d as errorAdvice, g as RUN_STATUS_CONFIG, h as runStatusLabels, l as ConfirmStopRunDialog, o as ActivityOptionsFields, p as ExecutionStatusBadge, s as EMPTY_ACTIVITY_OPTIONS_FORM, u as ADVICE_ERROR_TYPES } from "./useDurableParity-BO--Wn7k.js";
12
+ import { t as Disclosure } from "./Disclosure-C3xMLSU-.js";
13
13
  import { n as formatRunVersion } from "./run-display-UjLAoYqQ.js";
14
14
  import { r as runSuggestAnchorProps } from "./entities-I_0kio3q.js";
15
- import { an as runDurationMs, rn as formatElapsedMs } from "./FluidGridsProvider-bj1n0e-_.js";
15
+ import { an as runDurationMs, rn as formatElapsedMs } from "./FluidGridsProvider-xFYPchhw.js";
16
16
  import { r as useRunHumanRequests } from "./useHumanRequests-DwG2tQ3f.js";
17
- import { n as runListLinkKey, t as runListFilterFromSearch } from "./run-list-links-sTAexiqj.js";
18
- import { t as TechnicalDetails } from "./TechnicalDetails-CMZwijEM.js";
17
+ import { n as runListLinkKey, t as runListFilterFromSearch } from "./run-list-links-BwsCiBPB.js";
18
+ import { t as TechnicalDetails } from "./TechnicalDetails-xQtjIWWx.js";
19
19
  import { t as RunActionsMenu } from "./RunActionsMenu-BZY4NreS.js";
20
- import { h as useWorkflowDefinitions, v as useWorkflowVersions } from "./useWorkflows-CW2ojGoA.js";
20
+ import { h as useWorkflowDefinitions, v as useWorkflowVersions } from "./useWorkflows-B7ZkOKhh.js";
21
21
  import { t as FluidGridsDocsLink } from "./FluidGridsDocsLink-JxkBpOeb.js";
22
22
  import { s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-65QV61nQ.js";
23
- import { C as jsonArg, F as startBatchOperation, I as startBatchTerminate, P as startBatchExport, m as fetchBatchOperations, n as cancelBatchOperation, p as fetchBatchOperation, x as fetchSearchAttributes } from "./api-o5UUDbr8.js";
23
+ import { F as startBatchExport, I as startBatchOperation, L as startBatchTerminate, S as fetchSearchAttributes, m as fetchBatchOperations, n as cancelBatchOperation, p as fetchBatchOperation, w as jsonArg } from "./api-D1cWC1yx.js";
24
24
  import { a as RUN_CONTROL_DIALOG_STYLE, c as parseJsonInput, i as NativeSelect, o as StatusPill, r as JsonField, t as FieldError, u as useResource } from "./shared-mbyvDPde.js";
25
25
  import { t as describeOperationError } from "./errors-xPZ-IbQd.js";
26
26
  import { n as getFluidGridsClient } from "./client-Ctl4jmY3.js";
27
- import { VI as WorkflowBatchOperationType, cL as WorkflowResetType } from "./graphql-types-C2heV7ot.js";
27
+ import { UI as WorkflowBatchOperationType, uL as WorkflowResetType } from "./graphql-types-CxkVzQqA.js";
28
28
  import { Fragment, useCallback, useEffect, useMemo, useRef, useState } from "react";
29
29
  import { useNavigate, useSearchParams } from "react-router";
30
30
  import { Icon } from "@iconify/react";
@@ -2,7 +2,7 @@
2
2
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
3
3
  import { n as getFluidGridsClient } from "./client-Ctl4jmY3.js";
4
4
  import { o as throwIfResultError } from "./errors-xPZ-IbQd.js";
5
- import { kO as RunFailureClusterStatus } from "./graphql-types-C2heV7ot.js";
5
+ import { jO as RunFailureClusterStatus } from "./graphql-types-CxkVzQqA.js";
6
6
  import { useCallback, useEffect, useState } from "react";
7
7
  import { Icon } from "@iconify/react";
8
8
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -1,11 +1,11 @@
1
1
  "use client";
2
2
  import { a as resetFluidGridsClient, n as getFluidGridsClient, o as setFluidGridsClient, r as getFluidGridsClientSafe, s as waitForFluidGridsClient, t as createFluidGridsClient } from "./client-Ctl4jmY3.js";
3
3
  import { a as setGlobalStoreClient, i as resetGlobalStoreClient, n as getGlobalStoreClient, t as createGlobalStoreClient } from "./global-client-DP_Wxe5t.js";
4
- import { A as useFlowStore, C as outputHandlesSpacerHeight, D as NodeCardBody, E as NodeCard, M as isNodeTrigger, O as NodeCardHeader, S as nodeAdaptersOf, T as resolveOutputHandles, _ as InputHandles, b as hasNodeManifest, g as LogicNodeCard, i as WAIT_FOR_SIGNAL_NODE_TYPE, k as nodeAccent, l as interfaceFields, m as readSignalName, n as synchronizeOperationUpdate, p as readCodeWorkflowState, r as CODE_WORKFLOW_NODE_TYPE, t as resolveOperationName, u as interfaceHandlers, v as OutputHandles, w as resolveInputHandles, y as alignPlainOutputEdges } from "./node-operation-selection-DCJ_DDHr.js";
4
+ import { A as useFlowStore, C as outputHandlesSpacerHeight, D as NodeCardBody, E as NodeCard, M as isNodeTrigger, O as NodeCardHeader, S as nodeAdaptersOf, T as resolveOutputHandles, _ as InputHandles, b as hasNodeManifest, g as LogicNodeCard, i as WAIT_FOR_SIGNAL_NODE_TYPE, k as nodeAccent, l as interfaceFields, m as readSignalName, n as synchronizeOperationUpdate, p as readCodeWorkflowState, r as CODE_WORKFLOW_NODE_TYPE, t as resolveOperationName, u as interfaceHandlers, v as OutputHandles, w as resolveInputHandles, y as alignPlainOutputEdges } from "./node-operation-selection-sT7nCmDk.js";
5
5
  import { n as useBuilderReadOnly } from "./read-only-context-Dt9N9SIG.js";
6
6
  import { a as resolveStickyColor, i as partitionStickyNotes, l as STICKY_NOTE_TYPE, n as STICKY_COLORS, o as stickySurfaceStyle, t as DEFAULT_STICKY_COLOR } from "./sticky-notes-23j-wL6Q.js";
7
7
  import { n as FluidGridsTranslationProvider, r as useTr, t as ENGLISH_FALLBACK_TRANSLATOR } from "./TranslationBridge-Da-TPgQm.js";
8
- import { t as NodeTypeIcon } from "./node-type-icon-nGIb5TyU.js";
8
+ import { t as NodeTypeIcon } from "./node-type-icon-BiX35H0z.js";
9
9
  import { l as useDurableFunctionNodesEnabled } from "./feature-flags-B_b8PJ6Z.js";
10
10
  import { o as throwIfResultError, t as describeOperationError } from "./errors-xPZ-IbQd.js";
11
11
  import { t as WorkflowDefinitionDocument } from "./WorkflowDefinitionDocument-DZLbTPUZ.js";
@@ -15,7 +15,7 @@ import { a as collectExtensions, n as QUOTA_EXHAUSTED_CODE, o as errorCodesOf, r
15
15
  import { c as setFluidGridsConfig, l as validateTrustedOrigin, o as resetFluidGridsConfig, r as getFluidGridsConfig, s as resetFluidGridsExecutionState } from "./config-X97zrIvn.js";
16
16
  import { a as useFgAskableAction } from "./askAboutBridge-ByYsQams.js";
17
17
  import { i as readableNodeType } from "./run-display-UjLAoYqQ.js";
18
- import { Ww as NodeManifestDetail } from "./graphql-types-C2heV7ot.js";
18
+ import { Kw as NodeManifestDetail } from "./graphql-types-CxkVzQqA.js";
19
19
  import { t as provideNodeRegistryRefresh } from "./node-registry-refresh-s3okf83X.js";
20
20
  import { createContext, memo, useCallback, useContext, useEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
21
21
  import { useNavigate, useParams } from "react-router";
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
- import { d as useRestoreWorkflowVersion, h as useWorkflowDefinitions } from "./useWorkflows-CW2ojGoA.js";
3
+ import { d as useRestoreWorkflowVersion, h as useWorkflowDefinitions } from "./useWorkflows-B7ZkOKhh.js";
4
4
  import { t as VersionDiffDialog } from "./VersionDiffDialog-D9W5Fm56.js";
5
5
  import { c as versionsOfWorkflow } from "./VersionLifecycleBar-DuphLOT0.js";
6
6
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
@@ -2,18 +2,18 @@
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
3
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
4
4
  import { n as useNavigationV2 } from "./useNavigationV2-C2WeqN7d.js";
5
- import { t as TechnicalDetails } from "./TechnicalDetails-CMZwijEM.js";
6
- import { o as useRunReplayActions, r as useInsightsData } from "./useObservability-p3zh8LJ1.js";
5
+ import { t as TechnicalDetails } from "./TechnicalDetails-xQtjIWWx.js";
6
+ import { o as useRunReplayActions, r as useInsightsData } from "./useObservability-CC8fdMQ-.js";
7
7
  import { a as getFailureBreakdown, c as percentage, d as summarySuccessRate, n as formatDuration, o as getTopFailingNodes, r as formatMs, s as getTopFailingWorkflows, u as rankedFailingWorkflows } from "./utils-CXEodE1a.js";
8
- import { n as FailureTriagePanel } from "./FailureTriagePanel-CBGgU4Tl.js";
8
+ import { n as FailureTriagePanel } from "./FailureTriagePanel-Cka9Rc1_.js";
9
9
  import { c as useContinuousOptimisationEnabled, l as useDurableFunctionNodesEnabled } from "./feature-flags-B_b8PJ6Z.js";
10
10
  import { i as SdkPermissionButton, s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-65QV61nQ.js";
11
- import { Kj as TaskQueueAvailability, Qw as OptimisationSuggestionStatus, Wv as InsightsRunKind, Xw as OptimisationDismissReason, Zw as OptimisationKind } from "./graphql-types-C2heV7ot.js";
11
+ import { $w as OptimisationKind, Jj as TaskQueueAvailability, Kv as InsightsRunKind, Qw as OptimisationDismissReason, eT as OptimisationSuggestionStatus } from "./graphql-types-CxkVzQqA.js";
12
12
  import { n as getFluidGridsClient } from "./client-Ctl4jmY3.js";
13
13
  import { o as throwIfResultError } from "./errors-xPZ-IbQd.js";
14
14
  import { t as WorkflowProposalDocument } from "./WorkflowProposalDocument-BdUbsrd0.js";
15
- import { a as formatTokens, c as DISMISS_REASONS, f as monthlySavingLabel, i as aiSpendPeriod, l as evidenceFacts, p as shortRunId, r as aiCost, s as runsOfWorkflowPath, t as AI_SPEND_RANGE_DAYS, u as evidenceWindowDays } from "./ai-usage-yzPWZgAC.js";
16
- import { i as utcDay, r as runListPath } from "./run-list-links-sTAexiqj.js";
15
+ import { a as formatTokens, c as DISMISS_REASONS, f as monthlySavingLabel, i as aiSpendPeriod, l as evidenceFacts, p as shortRunId, r as aiCost, s as runsOfWorkflowPath, t as AI_SPEND_RANGE_DAYS, u as evidenceWindowDays } from "./ai-usage-DhSKp0tV.js";
16
+ import { i as utcDay, r as runListPath } from "./run-list-links-BwsCiBPB.js";
17
17
  import { t as proposalCanvasPath } from "./useRequestedProposal-B7uPXfZB.js";
18
18
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
19
19
  import { Link, useNavigate } from "react-router";
@@ -1,12 +1,12 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
- import { r as registerOfflineIcons, t as OfflineIcon } from "./OfflineIcon-Ckynq7Vp.js";
3
+ import { t as OfflineIcon } from "./OfflineIcon-DnKb-mo2.js";
4
4
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
5
5
  import { n as useNavigationV2 } from "./useNavigationV2-C2WeqN7d.js";
6
6
  import { t as PublishCustomNodeAction } from "./PublishCustomNodeAction-OOY35dUv.js";
7
7
  import { n as getFluidGridsClient } from "./client-Ctl4jmY3.js";
8
8
  import { o as throwIfResultError, t as describeOperationError } from "./errors-xPZ-IbQd.js";
9
- import { t as NodeTypeIcon } from "./node-type-icon-nGIb5TyU.js";
9
+ import { t as NodeTypeIcon } from "./node-type-icon-BiX35H0z.js";
10
10
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
11
11
  import { useNavigate } from "react-router";
12
12
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -217,7 +217,6 @@ function nodeStatusLabel(tr, status) {
217
217
 
218
218
  // src/modules/nodes/pages/NodesPage.tsx
219
219
  var NodesPage_exports = /* @__PURE__ */ __exportAll({ NodesPage: () => NodesPage });
220
- registerOfflineIcons();
221
220
  const NODE_CATEGORIES = [
222
221
  {
223
222
  value: "all",
@@ -345,6 +344,7 @@ function NodeCard({ node, category, v2 }) {
345
344
  children: /* @__PURE__ */ jsx(NodeTypeIcon, {
346
345
  icon: node.icon ?? node.favicon,
347
346
  fallbackIcon: "mdi:puzzle",
347
+ offline: true,
348
348
  className: "size-[22px] text-text-primary"
349
349
  })
350
350
  }), /* @__PURE__ */ jsxs(Badge, {