@burdenoff/fluidgrids-fe-sdk 2026.1113.8 → 2026.1113.10

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 (54) hide show
  1. package/dist/{AiStudioPage-Di3eW5Lb.js → AiStudioPage-VxCnlq_r.js} +4 -4
  2. package/dist/{ApprovalInboxPage-CbkmOXaq.js → ApprovalInboxPage-DVoqdqwA.js} +1 -1
  3. package/dist/{DataSinkDashboardPage-231cS9dt.js → DataSinkDashboardPage-CDwbkGHh.js} +1 -1
  4. package/dist/{ExecutionDetailPage-B2jVApvM.js → ExecutionDetailPage-HtS19b0X.js} +117 -48
  5. package/dist/{ExecutionsListDocument-CzdLPpj5.js → ExecutionStatsDocument-6ixNZnBV.js} +1 -346
  6. package/dist/{ExecutionsListPage-ZCmFNid9.js → ExecutionsListPage-CJqBT2xe.js} +5 -5
  7. package/dist/{FluidGridsProvider-DQP7gPxN.js → FluidGridsProvider-BXQTsUUW.js} +533 -35
  8. package/dist/{HistoryPage-C99YGv7V.js → HistoryPage-Bjl0YbNG.js} +1 -1
  9. package/dist/{InsightsPage-ySywDcp_.js → InsightsPage-B9DQ1yA8.js} +1 -1
  10. package/dist/{PaidTemplateConfirm-CI6TDivO.js → PaidTemplateConfirm-CIDph--N.js} +1 -1
  11. package/dist/{QuotaExhaustedDialog-nlnRlQ2i.js → QuotaExhaustedDialog-CRd7SYXz.js} +1 -1
  12. package/dist/{SettingsPage-tKzJkG-L.js → SettingsPage-S8_SgU9s.js} +4 -4
  13. package/dist/{TemplateCard-UnjAFsS4.js → TemplateCard-BqWjHUzk.js} +2 -2
  14. package/dist/{TemplatePreview-DYxxlBad.js → TemplatePreview-BZVn6L-8.js} +4 -4
  15. package/dist/{TemplatesPage-Z2LDGg3g.js → TemplatesPage-9_44jYuL.js} +7 -7
  16. package/dist/{WorkflowBuilder-LkCC0Arp.js → WorkflowBuilder-DVtVPQkq.js} +6 -6
  17. package/dist/{WorkflowBuilder-Dp9chOr5.js → WorkflowBuilder-moMdJ83j.js} +4 -4
  18. package/dist/{WorkflowSearchRedirect-DoiDmeyL.js → WorkflowSearchRedirect-Ddv1GDOl.js} +1 -1
  19. package/dist/{WorkflowsList-C86YEuZZ.js → WorkflowsList-DqNyX65P.js} +6 -6
  20. package/dist/{agentTools-BQbgd_wK.js → agentTools-C6PPmcJz.js} +3 -3
  21. package/dist/{askAboutBridge-BV8m95kk.js → askAboutBridge-ByYsQams.js} +43 -2
  22. package/dist/assistant.d.ts +2 -0
  23. package/dist/assistant.js +1 -1
  24. package/dist/{attach-node-helpers-CtV1mej0.js → attach-node-helpers-CCWFS75V.js} +1 -1
  25. package/dist/{canvasNoteTools-D9RwHOz4.js → canvasNoteTools-CJzCcA-A.js} +2 -2
  26. package/dist/executions.js +2 -2
  27. package/dist/{flow-builder-7gVV3Y8R.js → flow-builder-DSKuzsVe.js} +18 -15
  28. package/dist/history.js +1 -1
  29. package/dist/index.js +30 -30
  30. package/dist/{logs-panel-Cn4gGng9.js → logs-panel-_Dl5Nrdn.js} +1 -1
  31. package/dist/{node-detail-view-DtZe2ggI.js → node-detail-view-BCG3MA47.js} +6 -6
  32. package/dist/{node-editor-tab-body-CFprr94T.js → node-editor-tab-body-D1mGxSFV.js} +3 -3
  33. package/dist/{node-operation-selection-BGj5YwAS.js → node-operation-selection-bFx9s45-.js} +16 -4
  34. package/dist/observability.js +2 -2
  35. package/dist/{popover-DuaVzhfH.js → popover-CDOlW_mU.js} +2 -2
  36. package/dist/{quick-config-panel-CmL27iO-.js → quick-config-panel-Ds3_l-3-.js} +4 -4
  37. package/dist/{run-display-BycKYSU0.js → run-display-UjLAoYqQ.js} +38 -3
  38. package/dist/{schedule-panel-DIUNqU9B.js → schedule-panel-DExtrJhg.js} +5 -5
  39. package/dist/settings.js +1 -1
  40. package/dist/{sidebar-node-editor-C_mhVSxd.js → sidebar-node-editor-sig409hs.js} +4 -4
  41. package/dist/templates.js +2 -2
  42. package/dist/{useAgentDefinitions-CKZ7oDZD.js → useAgentDefinitions-JeTU3Axe.js} +2 -2
  43. package/dist/{useDurableParity-BUSM-z_7.js → useDurableParity-BIh8h9oO.js} +1 -1
  44. package/dist/{useExecutions-DSZisQHk.js → useExecutions-CtpcnNXY.js} +2 -2
  45. package/dist/{useGlobalStoreClient-CXPqlK1M.js → useGlobalStoreClient-BrBZo54N.js} +1 -1
  46. package/dist/{useObservability-n7Qdc8Xg.js → useObservability-D3c2BemM.js} +1 -1
  47. package/dist/{useRunHistory-Bxs6LrME.js → useRunHistory-C9To9FVu.js} +1 -1
  48. package/dist/{useWorkflowCodeExport-Bj4QY-xY.js → useWorkflowCodeExport-CEYZ0_Po.js} +1 -1
  49. package/dist/{useWorkflows-BY5b8r9n.js → useWorkflows-BLG1ycnl.js} +1 -1
  50. package/dist/workflow-builder.js +5 -5
  51. package/dist/workflow-pages.js +14 -14
  52. package/dist/workflow-preview.js +1 -1
  53. package/dist/workflows-list.js +1 -1
  54. package/package.json +1 -1
@@ -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-7gVV3Y8R.js";
5
- import { T as buildOperationSeed, ht as classifyCreateRefusal, mt as builderPathOf, u as ensureNodeTypesLoaded } from "./FluidGridsProvider-DQP7gPxN.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-DSKuzsVe.js";
5
+ import { bt as builderPathOf, j as buildOperationSeed, u as ensureNodeTypesLoaded, xt as classifyCreateRefusal } from "./FluidGridsProvider-BXQTsUUW.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-BY5b8r9n.js";
9
+ import { n as useCreateWorkflow } from "./useWorkflows-BLG1ycnl.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 { c as CreateWorkflowRefusalDialog } from "./useWorkflowCodeExport-Bj4QY-xY.js";
12
+ import { c as CreateWorkflowRefusalDialog } from "./useWorkflowCodeExport-CEYZ0_Po.js";
13
13
  import { s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-dcxg6zG6.js";
14
14
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
15
15
  import { useNavigate } from "react-router";
@@ -8,7 +8,7 @@ import { n as useRespondToHumanRequest, t as usePendingHumanRequests } from "./u
8
8
  import { t as TechnicalDetails } from "./TechnicalDetails-r5JXr1jZ.js";
9
9
  import { t as FluidGridsDocsLink } from "./FluidGridsDocsLink-JxkBpOeb.js";
10
10
  import { n as getFluidGridsClient } from "./client-Ctl4jmY3.js";
11
- import { r as nodeDisplayTitle, t as buildNodeDisplayMap } from "./run-display-BycKYSU0.js";
11
+ import { r as nodeDisplayTitle, t as buildNodeDisplayMap } from "./run-display-UjLAoYqQ.js";
12
12
  import { i as SdkPermissionButton, s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-dcxg6zG6.js";
13
13
  import { useCallback, useEffect, useState } from "react";
14
14
  import { Link, useNavigate } from "react-router";
@@ -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-n7Qdc8Xg.js";
5
+ import { n as useDataSinks, t as useDataSinkData } from "./useObservability-D3c2BemM.js";
6
6
  import { c as prettyJson, r as formatTimestamp, t as formatBytes } from "./utils-C0dtnN4R.js";
7
7
  import { useEffect, useMemo, useState } from "react";
8
8
  import { Icon } from "@iconify/react";
@@ -1,14 +1,14 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
- import { c as errorAdvice, d as NodeStatusBadge, i as useRunPending, l as needsReconnect, n as useDurableParityRunFields, o as ConfirmStopRunDialog, r as useRunMetadata, t as setRunVersioningOverride, u as ExecutionStatusBadge } from "./useDurableParity-BUSM-z_7.js";
4
- import { n as formatRunVersion, r as nodeDisplayTitle, t as buildNodeDisplayMap } from "./run-display-BycKYSU0.js";
3
+ import { c as errorAdvice, d as NodeStatusBadge, i as useRunPending, l as needsReconnect, n as useDurableParityRunFields, o as ConfirmStopRunDialog, r as useRunMetadata, t as setRunVersioningOverride, u as ExecutionStatusBadge } from "./useDurableParity-BIh8h9oO.js";
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 { C as describeRunStep, S as describeRunError, Xt as nodeStateDurationMs, Yt as formatElapsedMs, Zt as runDurationMs, dn as canSignalRun, gn as runSignalTargets, pn as durableInterfaceOf } from "./FluidGridsProvider-DQP7gPxN.js";
8
- import { n as useFgAskable, r as useFgAskableSelection } from "./askAboutBridge-BV8m95kk.js";
7
+ import { C as failureQuestions, D as describeRun, E as runStepQuestions, O as describeRunError, Sn as runSignalTargets, T as runQuestions, _n as canSignalRun, k as describeRunStep, nn as nodeStateDurationMs, rn as runDurationMs, tn as formatElapsedMs, w as isFailedStatus, yn as durableInterfaceOf } from "./FluidGridsProvider-BXQTsUUW.js";
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
10
  import { t as TechnicalDetails } from "./TechnicalDetails-r5JXr1jZ.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-DSZisQHk.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-CtpcnNXY.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,7 +23,7 @@ import { t as useWorkflowProposal } from "./useWorkflowProposal-B9vXLKef.js";
23
23
  import { t as WorkflowProposalCard } from "./WorkflowProposalCard-SmRv_Egf.js";
24
24
  import { t as AiCreditBalanceSlot } from "./aiCreditsBridge-BuE92tKo.js";
25
25
  import { a as fetchRunFailureClusters, i as dismissRunFailureCluster, r as OPEN_STATUSES, t as BUCKET_LABELS } from "./FailureTriagePanel-DA91XKVj.js";
26
- import { a as useDurableRunFields, i as useDeterminismStatus, n as SignalRunDialog, o as useRunStackTrace, r as terminateDurableRun, s as RunHistoryView, t as useRunHistory } from "./useRunHistory-Bxs6LrME.js";
26
+ import { a as useDurableRunFields, i as useDeterminismStatus, n as SignalRunDialog, o as useRunStackTrace, r as terminateDurableRun, s as RunHistoryView, t as useRunHistory } from "./useRunHistory-C9To9FVu.js";
27
27
  import { $P as VersioningBehavior, L as AgentStepKind, LI as WorkflowUpdateWaitFor, jd as ErrorType, yI as WorkflowQueryRejectCondition } from "./graphql-types-C5Tr6508.js";
28
28
  import { _ as agentTokenStreamsFor, g as agentLiveReplyState, h as useAgentTokenStream, i as canSaveRunAsTestCase, t as saveRunAsTestCase } from "./use-workflow-tests-BUzndyWO.js";
29
29
  import { a as formatTokens, d as formatMicroUsd, o as modelLabel, r as aiCost } from "./ai-usage-D7SjIkUZ.js";
@@ -31,7 +31,7 @@ import { _ as useWorkflowTestsEnabled, l as useDurableFunctionNodesEnabled, m as
31
31
  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-CEnNq15C.js";
32
32
  import { a as fetchTaskQueueStats } from "./api-DKfMt0IX.js";
33
33
  import { a as RUN_CONTROL_DIALOG_STYLE, c as parseJsonInput, i as NativeSelect, l as parseJsonObjectInput, n as JsonBlock, o as StatusPill, r as JsonField, s as newRunControlId, t as FieldError, u as useResource } from "./shared-C0LCTtyh.js";
34
- import { v as useWorkflowVersions } from "./useWorkflows-BY5b8r9n.js";
34
+ import { v as useWorkflowVersions } from "./useWorkflows-BLG1ycnl.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";
@@ -1960,16 +1960,19 @@ function NodeTimeline({ nodeStates, nodeDisplay, loading, triggerNodeId, onRetry
1960
1960
  const isWaitingSubworkflow = node.status === "WAITING_SUBWORKFLOW";
1961
1961
  const hasChildRun = Boolean(node.childRunId);
1962
1962
  const stepName = nodeDisplayTitle(nodeDisplay?.[node.nodeId], node.nodeId);
1963
- const describeStep = () => askRun ? describeRunStep({
1964
- run: askRun,
1965
- stepId: node.nodeId,
1966
- stepName,
1967
- stepType: node.nodeType,
1968
- stepVersion: node.nodeVersion,
1969
- status: node.status,
1970
- errorType: node.errorType,
1971
- error: nodeError
1972
- }) : null;
1963
+ const describeStep = () => askRun ? {
1964
+ ...describeRunStep({
1965
+ run: askRun,
1966
+ stepId: node.nodeId,
1967
+ stepName,
1968
+ stepType: node.nodeType,
1969
+ stepVersion: node.nodeVersion,
1970
+ status: node.status,
1971
+ errorType: node.errorType,
1972
+ error: nodeError
1973
+ }),
1974
+ suggestions: isFailedStatus(node.status) || nodeError?.trim() ? failureQuestions(tr) : runStepQuestions(tr)
1975
+ } : null;
1973
1976
  return /* @__PURE__ */ jsxs("div", {
1974
1977
  className: "relative flex gap-4",
1975
1978
  children: [/* @__PURE__ */ jsxs("div", {
@@ -3392,7 +3395,7 @@ function RunBudgetPanel({ budget }) {
3392
3395
  *
3393
3396
  * Renders nothing for a run that has not failed.
3394
3397
  */
3395
- function RunAiAssistPanel({ runId, status, canPropose, canApply, onOpenWorkflow }) {
3398
+ function RunAiAssistPanel({ runId, status, canPropose, canApply, onOpenWorkflow, askAbout }) {
3396
3399
  const tr = useTr();
3397
3400
  const [explanation, setExplanation] = useState(null);
3398
3401
  const [explaining, setExplaining] = useState(false);
@@ -3470,23 +3473,9 @@ function RunAiAssistPanel({ runId, status, canPropose, canApply, onOpenWorkflow
3470
3473
  className: "mt-3 text-sm text-[var(--color-status-error-text)]",
3471
3474
  children: explainError
3472
3475
  }),
3473
- explanation && /* @__PURE__ */ jsxs("div", {
3474
- className: "mt-3 space-y-2",
3475
- "data-testid": "run-ai-explanation",
3476
- children: [
3477
- /* @__PURE__ */ jsx("p", {
3478
- className: "text-sm text-text-primary",
3479
- children: explanation.cause
3480
- }),
3481
- explanation.evidence.length > 0 && /* @__PURE__ */ jsx("pre", {
3482
- className: "max-h-40 overflow-auto whitespace-pre-wrap rounded bg-surface p-2 text-xs text-text-secondary",
3483
- children: explanation.evidence.join("\n")
3484
- }),
3485
- explanation.suggestions.length > 0 && /* @__PURE__ */ jsx("ul", {
3486
- className: "list-disc space-y-0.5 pl-5 text-sm text-text-primary",
3487
- children: explanation.suggestions.map((suggestion) => /* @__PURE__ */ jsx("li", { children: suggestion }, suggestion))
3488
- })
3489
- ]
3476
+ explanation && /* @__PURE__ */ jsx(RunExplanationView, {
3477
+ explanation,
3478
+ askAbout
3490
3479
  }),
3491
3480
  proposal.error && /* @__PURE__ */ jsx("p", {
3492
3481
  className: "mt-3 text-sm text-[var(--color-status-error-text)]",
@@ -3510,6 +3499,65 @@ function RunAiAssistPanel({ runId, status, canPropose, canApply, onOpenWorkflow
3510
3499
  ]
3511
3500
  });
3512
3501
  }
3502
+ /**
3503
+ * The diagnosis "Explain failure" returned, and (BOFF-13381) "Ask AI about
3504
+ * this" to follow it up in the assistant: the run's error picked, with the
3505
+ * diagnosis and its suggested fixes first in what the assistant is told, so it
3506
+ * starts from them rather than diagnosing again.
3507
+ */
3508
+ function RunExplanationView({ explanation, askAbout }) {
3509
+ const tr = useTr();
3510
+ const askAssistant = useFgAskAssistant();
3511
+ const ref = useRef(null);
3512
+ const followUp = askAssistant && askAbout ? () => {
3513
+ const base = askAbout();
3514
+ askAssistant({
3515
+ ...base,
3516
+ facts: [
3517
+ {
3518
+ label: "Diagnosis",
3519
+ value: explanation.cause
3520
+ },
3521
+ ...explanation.suggestions.slice(0, 3).map((suggestion, index) => ({
3522
+ label: `Suggested fix ${index + 1}`,
3523
+ value: suggestion
3524
+ })),
3525
+ ...base.facts ?? []
3526
+ ]
3527
+ }, ref.current);
3528
+ } : null;
3529
+ return /* @__PURE__ */ jsxs("div", {
3530
+ ref,
3531
+ className: "mt-3 space-y-2",
3532
+ "data-testid": "run-ai-explanation",
3533
+ children: [
3534
+ /* @__PURE__ */ jsx("p", {
3535
+ className: "text-sm text-text-primary",
3536
+ children: explanation.cause
3537
+ }),
3538
+ explanation.evidence.length > 0 && /* @__PURE__ */ jsx("pre", {
3539
+ className: "max-h-40 overflow-auto whitespace-pre-wrap rounded bg-surface p-2 text-xs text-text-secondary",
3540
+ children: explanation.evidence.join("\n")
3541
+ }),
3542
+ explanation.suggestions.length > 0 && /* @__PURE__ */ jsx("ul", {
3543
+ className: "list-disc space-y-0.5 pl-5 text-sm text-text-primary",
3544
+ children: explanation.suggestions.map((suggestion) => /* @__PURE__ */ jsx("li", { children: suggestion }, suggestion))
3545
+ }),
3546
+ followUp && /* @__PURE__ */ jsxs(Button, {
3547
+ size: "sm",
3548
+ variant: "outline",
3549
+ onClick: followUp,
3550
+ "data-agent": "deny",
3551
+ "data-testid": "run-ai-explanation-ask",
3552
+ children: [/* @__PURE__ */ jsx(Icon, {
3553
+ icon: "lucide:sparkles",
3554
+ width: 14,
3555
+ className: "mr-1"
3556
+ }), tr("fluidgrids.ai.runAssist.askFollowUp", "Ask AI about this")]
3557
+ })
3558
+ ]
3559
+ });
3560
+ }
3513
3561
 
3514
3562
  // src/modules/executions/components/RunFailureClusterCard.tsx
3515
3563
  /**
@@ -8342,6 +8390,7 @@ function ExecutionDetailPage() {
8342
8390
  checked: autoRefreshEnabled,
8343
8391
  onCheckedChange: setAutoRefreshEnabled
8344
8392
  }] : [];
8393
+ const stoppedAtNode = orderedSteps.find((node) => node.status === "FAILED");
8345
8394
  const askRun = {
8346
8395
  runId: execution.id,
8347
8396
  status: execution.status,
@@ -8349,7 +8398,20 @@ function ExecutionDetailPage() {
8349
8398
  version: execution.version,
8350
8399
  errorType: execution.errorType ?? null,
8351
8400
  errorMessage: execution.errorMessage ?? null,
8352
- failedSteps: execution.failedNodes
8401
+ failedSteps: execution.failedNodes,
8402
+ workflowName: execution.workflow?.name ?? null,
8403
+ stoppedAt: stoppedAtNode ? nodeDisplayTitle(nodeDisplay[stoppedAtNode.nodeId], stoppedAtNode.nodeId) : null
8404
+ };
8405
+ const askAboutRunError = () => ({
8406
+ ...describeRunError(askRun),
8407
+ suggestions: failureQuestions(tr)
8408
+ });
8409
+ const askAboutRun = () => {
8410
+ const focus = describeRun(askRun);
8411
+ return {
8412
+ ...focus,
8413
+ suggestions: focus.kind === "run error" ? failureQuestions(tr) : runQuestions(tr)
8414
+ };
8353
8415
  };
8354
8416
  return /* @__PURE__ */ jsxs("div", {
8355
8417
  className: "p-4 pb-24 sm:p-6 sm:pb-24 bg-surface-canvas min-h-screen",
@@ -8382,7 +8444,9 @@ function ExecutionDetailPage() {
8382
8444
  /* @__PURE__ */ jsxs("div", {
8383
8445
  className: "flex flex-col lg:flex-row lg:items-start lg:justify-between gap-4 mb-6",
8384
8446
  children: [/* @__PURE__ */ jsxs("div", { children: [
8385
- /* @__PURE__ */ jsxs("div", {
8447
+ /* @__PURE__ */ jsxs(AskableDiv, {
8448
+ describe: askAboutRun,
8449
+ "data-testid": "run-title-askable",
8386
8450
  className: "flex items-center gap-3 mb-2",
8387
8451
  ...runSuggestAnchorProps(execution.id),
8388
8452
  children: [
@@ -8705,13 +8769,17 @@ function ExecutionDetailPage() {
8705
8769
  ]
8706
8770
  })]
8707
8771
  }),
8708
- summary && /* @__PURE__ */ jsx(RunSummaryCard, {
8709
- status: execution.status,
8710
- sentence: summary.sentence,
8711
- onRunAgain: canRunAgain ? () => void handleRunAgain() : void 0,
8712
- runAgainBusy: actionLoading,
8713
- onOpenWorkflow: execution.workflowKey ? handleOpenWorkflow : void 0,
8714
- reconnectTo: needsReconnect(summary.errorType) ? CONNECTIONS_ROUTE : void 0
8772
+ summary && /* @__PURE__ */ jsx(AskableDiv, {
8773
+ describe: askAboutRun,
8774
+ "data-testid": "run-summary-askable",
8775
+ children: /* @__PURE__ */ jsx(RunSummaryCard, {
8776
+ status: execution.status,
8777
+ sentence: summary.sentence,
8778
+ onRunAgain: canRunAgain ? () => void handleRunAgain() : void 0,
8779
+ runAgainBusy: actionLoading,
8780
+ onOpenWorkflow: execution.workflowKey ? handleOpenWorkflow : void 0,
8781
+ reconnectTo: needsReconnect(summary.errorType) ? CONNECTIONS_ROUTE : void 0
8782
+ })
8715
8783
  }),
8716
8784
  /* @__PURE__ */ jsxs("div", {
8717
8785
  className: "grid grid-cols-2 sm:grid-cols-4 gap-4 mb-6",
@@ -8791,11 +8859,11 @@ function ExecutionDetailPage() {
8791
8859
  ]
8792
8860
  }),
8793
8861
  v2 && execution.errorMessage && /* @__PURE__ */ jsx(AskableDiv, {
8794
- describe: () => describeRunError(askRun),
8862
+ describe: askAboutRunError,
8795
8863
  "data-testid": "run-error-banner",
8796
8864
  className: "mb-6",
8797
8865
  children: /* @__PURE__ */ jsx(TechnicalDetails, { children: /* @__PURE__ */ jsx(AskableSelectionDiv, {
8798
- describe: () => describeRunError(askRun),
8866
+ describe: askAboutRunError,
8799
8867
  children: /* @__PURE__ */ jsxs("p", {
8800
8868
  className: "text-sm text-[var(--color-status-error-text)] break-words",
8801
8869
  children: [
@@ -8808,7 +8876,7 @@ function ExecutionDetailPage() {
8808
8876
  }) })
8809
8877
  }),
8810
8878
  !v2 && execution.errorMessage && /* @__PURE__ */ jsxs(AskableDiv, {
8811
- describe: () => describeRunError(askRun),
8879
+ describe: askAboutRunError,
8812
8880
  "data-testid": "run-error-banner",
8813
8881
  className: "mb-6 p-4 bg-[var(--color-status-error-bg-subtle)] border border-[var(--color-status-error-border)] rounded-lg",
8814
8882
  children: [/* @__PURE__ */ jsxs("div", {
@@ -8821,7 +8889,7 @@ function ExecutionDetailPage() {
8821
8889
  children: [tr("fluidgrids.executions.executionDetail.errorLabel", "Error"), execution.errorType ? ` (${execution.errorType})` : ""]
8822
8890
  })]
8823
8891
  }), /* @__PURE__ */ jsx(AskableSelectionDiv, {
8824
- describe: () => describeRunError(askRun),
8892
+ describe: askAboutRunError,
8825
8893
  children: /* @__PURE__ */ jsx("p", {
8826
8894
  className: "text-[var(--color-status-error-text)]",
8827
8895
  children: execution.errorMessage
@@ -8842,6 +8910,7 @@ function ExecutionDetailPage() {
8842
8910
  status: execution.status,
8843
8911
  canPropose: canProposeFix,
8844
8912
  canApply: canApplyFix,
8913
+ askAbout: askAboutRunError,
8845
8914
  onOpenWorkflow: (workflowKey, version) => navigate(`../workflow/${encodeURIComponent(workflowKey)}/${encodeURIComponent(version)}`)
8846
8915
  }),
8847
8916
  /* @__PURE__ */ jsx(RunFailureClusterCard, {
@@ -911,349 +911,4 @@ const ExecutionStatsDocument = {
911
911
  }]
912
912
  };
913
913
 
914
- // src/generated/documents/wspace/ExecutionsListDocument.ts
915
- const ExecutionsListDocument = {
916
- "kind": "Document",
917
- "definitions": [{
918
- "kind": "OperationDefinition",
919
- "operation": "query",
920
- "name": {
921
- "kind": "Name",
922
- "value": "ExecutionsList"
923
- },
924
- "variableDefinitions": [{
925
- "kind": "VariableDefinition",
926
- "variable": {
927
- "kind": "Variable",
928
- "name": {
929
- "kind": "Name",
930
- "value": "input"
931
- }
932
- },
933
- "type": {
934
- "kind": "NonNullType",
935
- "type": {
936
- "kind": "NamedType",
937
- "name": {
938
- "kind": "Name",
939
- "value": "ListWorkflowRunsInput"
940
- }
941
- }
942
- },
943
- "directives": []
944
- }],
945
- "directives": [],
946
- "selectionSet": {
947
- "kind": "SelectionSet",
948
- "selections": [{
949
- "kind": "Field",
950
- "name": {
951
- "kind": "Name",
952
- "value": "workflowRuns"
953
- },
954
- "arguments": [{
955
- "kind": "Argument",
956
- "name": {
957
- "kind": "Name",
958
- "value": "input"
959
- },
960
- "value": {
961
- "kind": "Variable",
962
- "name": {
963
- "kind": "Name",
964
- "value": "input"
965
- }
966
- }
967
- }],
968
- "directives": [],
969
- "selectionSet": {
970
- "kind": "SelectionSet",
971
- "selections": [
972
- {
973
- "kind": "Field",
974
- "name": {
975
- "kind": "Name",
976
- "value": "items"
977
- },
978
- "arguments": [],
979
- "directives": [],
980
- "selectionSet": {
981
- "kind": "SelectionSet",
982
- "selections": [
983
- {
984
- "kind": "Field",
985
- "name": {
986
- "kind": "Name",
987
- "value": "id"
988
- },
989
- "arguments": [],
990
- "directives": []
991
- },
992
- {
993
- "kind": "Field",
994
- "name": {
995
- "kind": "Name",
996
- "value": "workflowId"
997
- },
998
- "arguments": [],
999
- "directives": []
1000
- },
1001
- {
1002
- "kind": "Field",
1003
- "name": {
1004
- "kind": "Name",
1005
- "value": "workflowKey"
1006
- },
1007
- "arguments": [],
1008
- "directives": []
1009
- },
1010
- {
1011
- "kind": "Field",
1012
- "name": {
1013
- "kind": "Name",
1014
- "value": "version"
1015
- },
1016
- "arguments": [],
1017
- "directives": []
1018
- },
1019
- {
1020
- "kind": "Field",
1021
- "name": {
1022
- "kind": "Name",
1023
- "value": "triggerNodeId"
1024
- },
1025
- "arguments": [],
1026
- "directives": []
1027
- },
1028
- {
1029
- "kind": "Field",
1030
- "name": {
1031
- "kind": "Name",
1032
- "value": "triggerData"
1033
- },
1034
- "arguments": [],
1035
- "directives": []
1036
- },
1037
- {
1038
- "kind": "Field",
1039
- "name": {
1040
- "kind": "Name",
1041
- "value": "status"
1042
- },
1043
- "arguments": [],
1044
- "directives": []
1045
- },
1046
- {
1047
- "kind": "Field",
1048
- "name": {
1049
- "kind": "Name",
1050
- "value": "mode"
1051
- },
1052
- "arguments": [],
1053
- "directives": []
1054
- },
1055
- {
1056
- "kind": "Field",
1057
- "name": {
1058
- "kind": "Name",
1059
- "value": "context"
1060
- },
1061
- "arguments": [],
1062
- "directives": []
1063
- },
1064
- {
1065
- "kind": "Field",
1066
- "name": {
1067
- "kind": "Name",
1068
- "value": "triggeredById"
1069
- },
1070
- "arguments": [],
1071
- "directives": []
1072
- },
1073
- {
1074
- "kind": "Field",
1075
- "name": {
1076
- "kind": "Name",
1077
- "value": "parentRunId"
1078
- },
1079
- "arguments": [],
1080
- "directives": []
1081
- },
1082
- {
1083
- "kind": "Field",
1084
- "name": {
1085
- "kind": "Name",
1086
- "value": "createdAt"
1087
- },
1088
- "arguments": [],
1089
- "directives": []
1090
- },
1091
- {
1092
- "kind": "Field",
1093
- "name": {
1094
- "kind": "Name",
1095
- "value": "updatedAt"
1096
- },
1097
- "arguments": [],
1098
- "directives": []
1099
- },
1100
- {
1101
- "kind": "Field",
1102
- "name": {
1103
- "kind": "Name",
1104
- "value": "startedAt"
1105
- },
1106
- "arguments": [],
1107
- "directives": []
1108
- },
1109
- {
1110
- "kind": "Field",
1111
- "name": {
1112
- "kind": "Name",
1113
- "value": "completedAt"
1114
- },
1115
- "arguments": [],
1116
- "directives": []
1117
- },
1118
- {
1119
- "kind": "Field",
1120
- "name": {
1121
- "kind": "Name",
1122
- "value": "duration"
1123
- },
1124
- "arguments": [],
1125
- "directives": []
1126
- },
1127
- {
1128
- "kind": "Field",
1129
- "name": {
1130
- "kind": "Name",
1131
- "value": "errorMessage"
1132
- },
1133
- "arguments": [],
1134
- "directives": []
1135
- },
1136
- {
1137
- "kind": "Field",
1138
- "name": {
1139
- "kind": "Name",
1140
- "value": "errorType"
1141
- },
1142
- "arguments": [],
1143
- "directives": []
1144
- },
1145
- {
1146
- "kind": "Field",
1147
- "name": {
1148
- "kind": "Name",
1149
- "value": "totalNodes"
1150
- },
1151
- "arguments": [],
1152
- "directives": []
1153
- },
1154
- {
1155
- "kind": "Field",
1156
- "name": {
1157
- "kind": "Name",
1158
- "value": "completedNodes"
1159
- },
1160
- "arguments": [],
1161
- "directives": []
1162
- },
1163
- {
1164
- "kind": "Field",
1165
- "name": {
1166
- "kind": "Name",
1167
- "value": "failedNodes"
1168
- },
1169
- "arguments": [],
1170
- "directives": []
1171
- },
1172
- {
1173
- "kind": "Field",
1174
- "name": {
1175
- "kind": "Name",
1176
- "value": "skippedNodes"
1177
- },
1178
- "arguments": [],
1179
- "directives": []
1180
- },
1181
- {
1182
- "kind": "Field",
1183
- "name": {
1184
- "kind": "Name",
1185
- "value": "progress"
1186
- },
1187
- "arguments": [],
1188
- "directives": []
1189
- },
1190
- {
1191
- "kind": "Field",
1192
- "name": {
1193
- "kind": "Name",
1194
- "value": "workflow"
1195
- },
1196
- "arguments": [],
1197
- "directives": [],
1198
- "selectionSet": {
1199
- "kind": "SelectionSet",
1200
- "selections": [
1201
- {
1202
- "kind": "Field",
1203
- "name": {
1204
- "kind": "Name",
1205
- "value": "id"
1206
- },
1207
- "arguments": [],
1208
- "directives": []
1209
- },
1210
- {
1211
- "kind": "Field",
1212
- "name": {
1213
- "kind": "Name",
1214
- "value": "name"
1215
- },
1216
- "arguments": [],
1217
- "directives": []
1218
- },
1219
- {
1220
- "kind": "Field",
1221
- "name": {
1222
- "kind": "Name",
1223
- "value": "description"
1224
- },
1225
- "arguments": [],
1226
- "directives": []
1227
- }
1228
- ]
1229
- }
1230
- }
1231
- ]
1232
- }
1233
- },
1234
- {
1235
- "kind": "Field",
1236
- "name": {
1237
- "kind": "Name",
1238
- "value": "total"
1239
- },
1240
- "arguments": [],
1241
- "directives": []
1242
- },
1243
- {
1244
- "kind": "Field",
1245
- "name": {
1246
- "kind": "Name",
1247
- "value": "hasMore"
1248
- },
1249
- "arguments": [],
1250
- "directives": []
1251
- }
1252
- ]
1253
- }
1254
- }]
1255
- }
1256
- }]
1257
- };
1258
-
1259
- export { ResumeExecutionDocument as a, RetryNodeDocument as i, ExecutionStatsDocument as n, PauseExecutionDocument as o, TerminateExecutionDocument as r, CancelExecutionDocument as s, ExecutionsListDocument as t };
914
+ export { PauseExecutionDocument as a, ResumeExecutionDocument as i, TerminateExecutionDocument as n, CancelExecutionDocument as o, RetryNodeDocument as r, ExecutionStatsDocument as t };