@stigmer/react 0.5.1 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/activity/group-activity.d.ts +13 -0
- package/activity/group-activity.d.ts.map +1 -0
- package/activity/group-activity.js +54 -0
- package/activity/group-activity.js.map +1 -0
- package/activity/index.d.ts +4 -0
- package/activity/index.d.ts.map +1 -0
- package/activity/index.js +3 -0
- package/activity/index.js.map +1 -0
- package/activity/types.d.ts +34 -0
- package/activity/types.d.ts.map +1 -0
- package/activity/types.js +2 -0
- package/activity/types.js.map +1 -0
- package/activity/useRecentActivity.d.ts +35 -0
- package/activity/useRecentActivity.d.ts.map +1 -0
- package/activity/useRecentActivity.js +73 -0
- package/activity/useRecentActivity.js.map +1 -0
- package/agent/AgentPicker.d.ts.map +1 -1
- package/agent/AgentPicker.js +4 -2
- package/agent/AgentPicker.js.map +1 -1
- package/billing/BillingSection.d.ts.map +1 -1
- package/billing/BillingSection.js +1 -1
- package/billing/BillingSection.js.map +1 -1
- package/composer/ComposerToolbar.d.ts +5 -1
- package/composer/ComposerToolbar.d.ts.map +1 -1
- package/composer/ComposerToolbar.js +4 -3
- package/composer/ComposerToolbar.js.map +1 -1
- package/composer/InteractionModePicker.d.ts +40 -0
- package/composer/InteractionModePicker.d.ts.map +1 -0
- package/composer/InteractionModePicker.js +76 -0
- package/composer/InteractionModePicker.js.map +1 -0
- package/composer/SessionComposer.d.ts +53 -64
- package/composer/SessionComposer.d.ts.map +1 -1
- package/composer/SessionComposer.js +20 -8
- package/composer/SessionComposer.js.map +1 -1
- package/composer/__tests__/SessionComposer-memo.test.js +10 -5
- package/composer/__tests__/SessionComposer-memo.test.js.map +1 -1
- package/composer/index.d.ts +3 -1
- package/composer/index.d.ts.map +1 -1
- package/composer/index.js +1 -0
- package/composer/index.js.map +1 -1
- package/dashboard/DashboardFailedRuns.d.ts +19 -0
- package/dashboard/DashboardFailedRuns.d.ts.map +1 -0
- package/dashboard/DashboardFailedRuns.js +35 -0
- package/dashboard/DashboardFailedRuns.js.map +1 -0
- package/dashboard/DashboardKPICards.d.ts +19 -0
- package/dashboard/DashboardKPICards.d.ts.map +1 -0
- package/dashboard/DashboardKPICards.js +80 -0
- package/dashboard/DashboardKPICards.js.map +1 -0
- package/dashboard/OperationalDashboard.d.ts +37 -0
- package/dashboard/OperationalDashboard.d.ts.map +1 -0
- package/dashboard/OperationalDashboard.js +48 -0
- package/dashboard/OperationalDashboard.js.map +1 -0
- package/dashboard/index.d.ts +8 -0
- package/dashboard/index.d.ts.map +1 -0
- package/dashboard/index.js +9 -0
- package/dashboard/index.js.map +1 -0
- package/dashboard/types.d.ts +49 -0
- package/dashboard/types.d.ts.map +1 -0
- package/dashboard/types.js +2 -0
- package/dashboard/types.js.map +1 -0
- package/dashboard/useAgentExecutionSummary.d.ts +33 -0
- package/dashboard/useAgentExecutionSummary.d.ts.map +1 -0
- package/dashboard/useAgentExecutionSummary.js +32 -0
- package/dashboard/useAgentExecutionSummary.js.map +1 -0
- package/dashboard/useDashboardFailedRuns.d.ts +18 -0
- package/dashboard/useDashboardFailedRuns.d.ts.map +1 -0
- package/dashboard/useDashboardFailedRuns.js +86 -0
- package/dashboard/useDashboardFailedRuns.js.map +1 -0
- package/dashboard/useDashboardSummary.d.ts +32 -0
- package/dashboard/useDashboardSummary.d.ts.map +1 -0
- package/dashboard/useDashboardSummary.js +67 -0
- package/dashboard/useDashboardSummary.js.map +1 -0
- package/execution/ContextGauge.d.ts +45 -0
- package/execution/ContextGauge.d.ts.map +1 -0
- package/execution/ContextGauge.js +82 -0
- package/execution/ContextGauge.js.map +1 -0
- package/execution/InteractionModeBadge.d.ts +24 -0
- package/execution/InteractionModeBadge.d.ts.map +1 -0
- package/execution/InteractionModeBadge.js +29 -0
- package/execution/InteractionModeBadge.js.map +1 -0
- package/execution/MessageThread.d.ts +33 -3
- package/execution/MessageThread.d.ts.map +1 -1
- package/execution/MessageThread.js +51 -9
- package/execution/MessageThread.js.map +1 -1
- package/execution/PlanCompletionCard.d.ts +23 -0
- package/execution/PlanCompletionCard.d.ts.map +1 -0
- package/execution/PlanCompletionCard.js +28 -0
- package/execution/PlanCompletionCard.js.map +1 -0
- package/execution/SummarizationBadge.d.ts +30 -0
- package/execution/SummarizationBadge.d.ts.map +1 -0
- package/execution/SummarizationBadge.js +61 -0
- package/execution/SummarizationBadge.js.map +1 -0
- package/execution/SummarizationCard.d.ts +27 -0
- package/execution/SummarizationCard.d.ts.map +1 -0
- package/execution/SummarizationCard.js +47 -0
- package/execution/SummarizationCard.js.map +1 -0
- package/execution/__tests__/PlanCompletionCard.test.d.ts +2 -0
- package/execution/__tests__/PlanCompletionCard.test.d.ts.map +1 -0
- package/execution/__tests__/PlanCompletionCard.test.js +53 -0
- package/execution/__tests__/PlanCompletionCard.test.js.map +1 -0
- package/execution/__tests__/buildThreadItems-plan-completion.test.d.ts +2 -0
- package/execution/__tests__/buildThreadItems-plan-completion.test.d.ts.map +1 -0
- package/execution/__tests__/buildThreadItems-plan-completion.test.js +137 -0
- package/execution/__tests__/buildThreadItems-plan-completion.test.js.map +1 -0
- package/execution/__tests__/useContextWindow.test.d.ts +2 -0
- package/execution/__tests__/useContextWindow.test.d.ts.map +1 -0
- package/execution/__tests__/useContextWindow.test.js +121 -0
- package/execution/__tests__/useContextWindow.test.js.map +1 -0
- package/execution/index.d.ts +12 -0
- package/execution/index.d.ts.map +1 -1
- package/execution/index.js +6 -0
- package/execution/index.js.map +1 -1
- package/execution/useContextWindow.d.ts +71 -0
- package/execution/useContextWindow.d.ts.map +1 -0
- package/execution/useContextWindow.js +91 -0
- package/execution/useContextWindow.js.map +1 -0
- package/execution/useCreateAgentExecution.d.ts +9 -0
- package/execution/useCreateAgentExecution.d.ts.map +1 -1
- package/execution/useCreateAgentExecution.js +15 -3
- package/execution/useCreateAgentExecution.js.map +1 -1
- package/index.d.ts +9 -4
- package/index.d.ts.map +1 -1
- package/index.js +12 -2
- package/index.js.map +1 -1
- package/internal/VirtualizedThread.d.ts +2 -1
- package/internal/VirtualizedThread.d.ts.map +1 -1
- package/internal/VirtualizedThread.js +3 -2
- package/internal/VirtualizedThread.js.map +1 -1
- package/internal/store/index.d.ts +1 -0
- package/internal/store/index.d.ts.map +1 -1
- package/internal/store/index.js +1 -0
- package/internal/store/index.js.map +1 -1
- package/internal/store/workflow-execution-event-store.d.ts +92 -0
- package/internal/store/workflow-execution-event-store.d.ts.map +1 -0
- package/internal/store/workflow-execution-event-store.js +298 -0
- package/internal/store/workflow-execution-event-store.js.map +1 -0
- package/library/ScopeToggle.d.ts +13 -9
- package/library/ScopeToggle.d.ts.map +1 -1
- package/library/ScopeToggle.js +43 -22
- package/library/ScopeToggle.js.map +1 -1
- package/library/VisibilityToggle.js +14 -5
- package/library/VisibilityToggle.js.map +1 -1
- package/library/index.d.ts +1 -0
- package/library/index.d.ts.map +1 -1
- package/library/index.js +1 -0
- package/library/index.js.map +1 -1
- package/library/useExportResource.d.ts +3 -2
- package/library/useExportResource.d.ts.map +1 -1
- package/library/useExportResource.js +11 -6
- package/library/useExportResource.js.map +1 -1
- package/mcp-server/McpServerDetailView.d.ts.map +1 -1
- package/mcp-server/McpServerDetailView.js +25 -13
- package/mcp-server/McpServerDetailView.js.map +1 -1
- package/mcp-server/McpServerPicker.d.ts.map +1 -1
- package/mcp-server/McpServerPicker.js +4 -2
- package/mcp-server/McpServerPicker.js.map +1 -1
- package/package.json +16 -5
- package/provider.d.ts.map +1 -1
- package/provider.js +164 -1
- package/provider.js.map +1 -1
- package/resource-detail/ResourceDetailShell.d.ts +1 -1
- package/resource-detail/ResourceDetailShell.d.ts.map +1 -1
- package/resource-detail/ResourceDetailShell.js +6 -6
- package/resource-detail/ResourceDetailShell.js.map +1 -1
- package/resource-detail/types.d.ts +23 -0
- package/resource-detail/types.d.ts.map +1 -1
- package/resource-detail/useDeleteResource.d.ts +1 -1
- package/resource-detail/useDeleteResource.d.ts.map +1 -1
- package/resource-detail/useDeleteResource.js +5 -0
- package/resource-detail/useDeleteResource.js.map +1 -1
- package/resource-workbench/components/ResourceWorkbench.d.ts.map +1 -1
- package/resource-workbench/components/ResourceWorkbench.js +2 -1
- package/resource-workbench/components/ResourceWorkbench.js.map +1 -1
- package/session/useNewSessionFlow.d.ts.map +1 -1
- package/session/useNewSessionFlow.js +1 -0
- package/session/useNewSessionFlow.js.map +1 -1
- package/session/useSessionConversation.d.ts +7 -0
- package/session/useSessionConversation.d.ts.map +1 -1
- package/session/useSessionConversation.js +1 -0
- package/session/useSessionConversation.js.map +1 -1
- package/session/useSessionPageFlow.d.ts.map +1 -1
- package/session/useSessionPageFlow.js +1 -0
- package/session/useSessionPageFlow.js.map +1 -1
- package/session/useSessionUsage.d.ts.map +1 -1
- package/session/useSessionUsage.js +65 -4
- package/session/useSessionUsage.js.map +1 -1
- package/settings/UsageSection.d.ts.map +1 -1
- package/settings/UsageSection.js +1 -4
- package/settings/UsageSection.js.map +1 -1
- package/skill/SkillPicker.d.ts.map +1 -1
- package/skill/SkillPicker.js +4 -2
- package/skill/SkillPicker.js.map +1 -1
- package/src/activity/group-activity.ts +65 -0
- package/src/activity/index.ts +13 -0
- package/src/activity/types.ts +35 -0
- package/src/activity/useRecentActivity.ts +131 -0
- package/src/agent/AgentPicker.tsx +6 -1
- package/src/billing/BillingSection.tsx +3 -2
- package/src/composer/ComposerToolbar.tsx +19 -1
- package/src/composer/InteractionModePicker.tsx +189 -0
- package/src/composer/SessionComposer.tsx +85 -8
- package/src/composer/__tests__/SessionComposer-memo.test.ts +11 -6
- package/src/composer/index.ts +7 -0
- package/src/dashboard/DashboardFailedRuns.tsx +109 -0
- package/src/dashboard/DashboardKPICards.tsx +128 -0
- package/src/dashboard/OperationalDashboard.tsx +96 -0
- package/src/dashboard/index.ts +37 -0
- package/src/dashboard/types.ts +50 -0
- package/src/dashboard/useAgentExecutionSummary.ts +71 -0
- package/src/dashboard/useDashboardFailedRuns.ts +122 -0
- package/src/dashboard/useDashboardSummary.ts +109 -0
- package/src/execution/ContextGauge.tsx +243 -0
- package/src/execution/InteractionModeBadge.tsx +70 -0
- package/src/execution/MessageThread.tsx +88 -3
- package/src/execution/PlanCompletionCard.tsx +105 -0
- package/src/execution/SummarizationBadge.tsx +188 -0
- package/src/execution/SummarizationCard.tsx +126 -0
- package/src/execution/__tests__/PlanCompletionCard.test.tsx +67 -0
- package/src/execution/__tests__/buildThreadItems-plan-completion.test.ts +197 -0
- package/src/execution/__tests__/useContextWindow.test.ts +167 -0
- package/src/execution/index.ts +22 -0
- package/src/execution/useContextWindow.ts +148 -0
- package/src/execution/useCreateAgentExecution.ts +26 -3
- package/src/index.ts +222 -0
- package/src/internal/VirtualizedThread.tsx +4 -1
- package/src/internal/store/index.ts +6 -0
- package/src/internal/store/workflow-execution-event-store.ts +391 -0
- package/src/library/ScopeToggle.tsx +88 -20
- package/src/library/VisibilityToggle.tsx +54 -13
- package/src/library/index.ts +2 -0
- package/src/library/useExportResource.ts +12 -9
- package/src/mcp-server/McpServerDetailView.tsx +80 -148
- package/src/mcp-server/McpServerPicker.tsx +6 -1
- package/src/provider.tsx +195 -8
- package/src/resource-detail/ResourceDetailShell.tsx +21 -4
- package/src/resource-detail/types.ts +25 -0
- package/src/resource-detail/useDeleteResource.ts +6 -1
- package/src/resource-workbench/components/ResourceWorkbench.tsx +4 -0
- package/src/session/useNewSessionFlow.ts +1 -0
- package/src/session/useSessionConversation.ts +8 -0
- package/src/session/useSessionPageFlow.ts +1 -0
- package/src/session/useSessionUsage.ts +72 -4
- package/src/settings/UsageSection.tsx +1 -9
- package/src/skill/SkillPicker.tsx +6 -1
- package/src/workflow/ApprovalFormBuilder.tsx +1017 -0
- package/src/workflow/BranchConditionBuilder.tsx +451 -0
- package/src/workflow/CanvasActionsContext.ts +12 -0
- package/src/workflow/CanvasContextMenu.tsx +364 -0
- package/src/workflow/CanvasTaskNode.tsx +372 -0
- package/src/workflow/CanvasTransitionEdge.tsx +122 -0
- package/src/workflow/CostByWorkflowChart.tsx +120 -0
- package/src/workflow/ExecutionSummaryWidget.tsx +194 -0
- package/src/workflow/ExecutionTrendChart.tsx +157 -0
- package/src/workflow/FailedRunsWidget.tsx +109 -0
- package/src/workflow/PendingApprovalsWidget.tsx +115 -0
- package/src/workflow/TaskConfigForm.tsx +618 -0
- package/src/workflow/TaskKindRegistryContext.ts +36 -0
- package/src/workflow/TaskPickerPopover.tsx +326 -0
- package/src/workflow/WorkflowArchitectDialog.tsx +505 -0
- package/src/workflow/WorkflowCanvasEditor.tsx +651 -0
- package/src/workflow/WorkflowCanvasInner.tsx +160 -0
- package/src/workflow/WorkflowDashboard.tsx +124 -0
- package/src/workflow/WorkflowDetailView.tsx +527 -0
- package/src/workflow/WorkflowEditorView.tsx +547 -0
- package/src/workflow/WorkflowExecutionApprovalCard.tsx +129 -0
- package/src/workflow/WorkflowExecutionArtifactPanel.tsx +112 -0
- package/src/workflow/WorkflowExecutionCostPanel.tsx +131 -0
- package/src/workflow/WorkflowExecutionHeader.tsx +194 -0
- package/src/workflow/WorkflowExecutionPhaseBadge.tsx +188 -0
- package/src/workflow/WorkflowExecutionTaskPanel.tsx +135 -0
- package/src/workflow/WorkflowExecutionTimeline.tsx +118 -0
- package/src/workflow/WorkflowExecutionTimelineEvent.tsx +488 -0
- package/src/workflow/WorkflowExecutionViewer.tsx +248 -0
- package/src/workflow/WorkflowInspectorPanel.tsx +568 -0
- package/src/workflow/WorkflowRefinePanel.tsx +411 -0
- package/src/workflow/WorkflowRepairCard.tsx +433 -0
- package/src/workflow/WorkflowRunDialog.tsx +220 -0
- package/src/workflow/WorkflowRunForm.tsx +245 -0
- package/src/workflow/WorkflowTaskList.tsx +177 -0
- package/src/workflow/WorkflowTaskPalette.tsx +248 -0
- package/src/workflow/WorkflowTopologyGraph.tsx +250 -0
- package/src/workflow/WorkflowYamlEditor.tsx +271 -0
- package/src/workflow/__tests__/starter-workflow-yaml.test.ts +57 -0
- package/src/workflow/canvas-constants.ts +87 -0
- package/src/workflow/canvas-icons.tsx +36 -0
- package/src/workflow/extract-workflow-yaml.ts +87 -0
- package/src/workflow/graph-commands.ts +675 -0
- package/src/workflow/index.ts +375 -0
- package/src/workflow/serialize-workflow-yaml.ts +546 -0
- package/src/workflow/starter-workflow-yaml.ts +29 -0
- package/src/workflow/types.ts +99 -0
- package/src/workflow/useCanvasKeyboardShortcuts.ts +134 -0
- package/src/workflow/useDiagnoseExecutionFlow.ts +378 -0
- package/src/workflow/useGraphHistory.ts +138 -0
- package/src/workflow/usePendingApprovals.ts +89 -0
- package/src/workflow/useRefineWorkflowFlow.ts +321 -0
- package/src/workflow/useResolveAgentExecutionSession.ts +57 -0
- package/src/workflow/useRunWorkflowFlow.ts +235 -0
- package/src/workflow/useTaskKindRegistry.ts +135 -0
- package/src/workflow/useWorkflow.ts +78 -0
- package/src/workflow/useWorkflowArchitectFlow.ts +303 -0
- package/src/workflow/useWorkflowCanvas.ts +882 -0
- package/src/workflow/useWorkflowCount.ts +66 -0
- package/src/workflow/useWorkflowDashboardSummary.ts +71 -0
- package/src/workflow/useWorkflowEditor.ts +106 -0
- package/src/workflow/useWorkflowExecution.ts +67 -0
- package/src/workflow/useWorkflowExecutionActions.ts +179 -0
- package/src/workflow/useWorkflowExecutionArtifacts.ts +57 -0
- package/src/workflow/useWorkflowExecutionEventLog.ts +111 -0
- package/src/workflow/useWorkflowExecutionEventStream.ts +244 -0
- package/src/workflow/useWorkflowExecutionList.ts +121 -0
- package/src/workflow/useWorkflowInstances.ts +62 -0
- package/src/workflow/useWorkflowList.ts +79 -0
- package/src/workflow/useWorkflowSave.ts +84 -0
- package/src/workflow/useWorkflowTopology.ts +229 -0
- package/src/workflow/useWorkflowValidation.ts +329 -0
- package/src/workflow/useWorkflowYaml.ts +49 -0
- package/src/workflow/workflow-graph-conversions.ts +796 -0
- package/src/workflow/workflow-graph-model.ts +83 -0
- package/src/workflow/workflow-yaml-diff.ts +132 -0
- package/styles.css +1 -1
- package/workflow/ApprovalFormBuilder.d.ts +24 -0
- package/workflow/ApprovalFormBuilder.d.ts.map +1 -0
- package/workflow/ApprovalFormBuilder.js +347 -0
- package/workflow/ApprovalFormBuilder.js.map +1 -0
- package/workflow/BranchConditionBuilder.d.ts +29 -0
- package/workflow/BranchConditionBuilder.d.ts.map +1 -0
- package/workflow/BranchConditionBuilder.js +170 -0
- package/workflow/BranchConditionBuilder.js.map +1 -0
- package/workflow/CanvasActionsContext.d.ts +8 -0
- package/workflow/CanvasActionsContext.d.ts.map +1 -0
- package/workflow/CanvasActionsContext.js +4 -0
- package/workflow/CanvasActionsContext.js.map +1 -0
- package/workflow/CanvasContextMenu.d.ts +59 -0
- package/workflow/CanvasContextMenu.d.ts.map +1 -0
- package/workflow/CanvasContextMenu.js +98 -0
- package/workflow/CanvasContextMenu.js.map +1 -0
- package/workflow/CanvasTaskNode.d.ts +21 -0
- package/workflow/CanvasTaskNode.d.ts.map +1 -0
- package/workflow/CanvasTaskNode.js +125 -0
- package/workflow/CanvasTaskNode.js.map +1 -0
- package/workflow/CanvasTransitionEdge.d.ts +24 -0
- package/workflow/CanvasTransitionEdge.d.ts.map +1 -0
- package/workflow/CanvasTransitionEdge.js +50 -0
- package/workflow/CanvasTransitionEdge.js.map +1 -0
- package/workflow/CostByWorkflowChart.d.ts +15 -0
- package/workflow/CostByWorkflowChart.d.ts.map +1 -0
- package/workflow/CostByWorkflowChart.js +45 -0
- package/workflow/CostByWorkflowChart.js.map +1 -0
- package/workflow/ExecutionSummaryWidget.d.ts +16 -0
- package/workflow/ExecutionSummaryWidget.d.ts.map +1 -0
- package/workflow/ExecutionSummaryWidget.js +93 -0
- package/workflow/ExecutionSummaryWidget.js.map +1 -0
- package/workflow/ExecutionTrendChart.d.ts +14 -0
- package/workflow/ExecutionTrendChart.d.ts.map +1 -0
- package/workflow/ExecutionTrendChart.js +67 -0
- package/workflow/ExecutionTrendChart.js.map +1 -0
- package/workflow/FailedRunsWidget.d.ts +19 -0
- package/workflow/FailedRunsWidget.d.ts.map +1 -0
- package/workflow/FailedRunsWidget.js +37 -0
- package/workflow/FailedRunsWidget.js.map +1 -0
- package/workflow/PendingApprovalsWidget.d.ts +19 -0
- package/workflow/PendingApprovalsWidget.d.ts.map +1 -0
- package/workflow/PendingApprovalsWidget.js +35 -0
- package/workflow/PendingApprovalsWidget.js.map +1 -0
- package/workflow/TaskConfigForm.d.ts +29 -0
- package/workflow/TaskConfigForm.d.ts.map +1 -0
- package/workflow/TaskConfigForm.js +230 -0
- package/workflow/TaskConfigForm.js.map +1 -0
- package/workflow/TaskKindRegistryContext.d.ts +24 -0
- package/workflow/TaskKindRegistryContext.d.ts.map +1 -0
- package/workflow/TaskKindRegistryContext.js +25 -0
- package/workflow/TaskKindRegistryContext.js.map +1 -0
- package/workflow/TaskPickerPopover.d.ts +33 -0
- package/workflow/TaskPickerPopover.d.ts.map +1 -0
- package/workflow/TaskPickerPopover.js +110 -0
- package/workflow/TaskPickerPopover.js.map +1 -0
- package/workflow/WorkflowArchitectDialog.d.ts +48 -0
- package/workflow/WorkflowArchitectDialog.d.ts.map +1 -0
- package/workflow/WorkflowArchitectDialog.js +129 -0
- package/workflow/WorkflowArchitectDialog.js.map +1 -0
- package/workflow/WorkflowCanvasEditor.d.ts +38 -0
- package/workflow/WorkflowCanvasEditor.d.ts.map +1 -0
- package/workflow/WorkflowCanvasEditor.js +287 -0
- package/workflow/WorkflowCanvasEditor.js.map +1 -0
- package/workflow/WorkflowCanvasInner.d.ts +32 -0
- package/workflow/WorkflowCanvasInner.d.ts.map +1 -0
- package/workflow/WorkflowCanvasInner.js +49 -0
- package/workflow/WorkflowCanvasInner.js.map +1 -0
- package/workflow/WorkflowDashboard.d.ts +35 -0
- package/workflow/WorkflowDashboard.d.ts.map +1 -0
- package/workflow/WorkflowDashboard.js +59 -0
- package/workflow/WorkflowDashboard.js.map +1 -0
- package/workflow/WorkflowDetailView.d.ts +63 -0
- package/workflow/WorkflowDetailView.d.ts.map +1 -0
- package/workflow/WorkflowDetailView.js +202 -0
- package/workflow/WorkflowDetailView.js.map +1 -0
- package/workflow/WorkflowEditorView.d.ts +43 -0
- package/workflow/WorkflowEditorView.d.ts.map +1 -0
- package/workflow/WorkflowEditorView.js +165 -0
- package/workflow/WorkflowEditorView.js.map +1 -0
- package/workflow/WorkflowExecutionApprovalCard.d.ts +27 -0
- package/workflow/WorkflowExecutionApprovalCard.d.ts.map +1 -0
- package/workflow/WorkflowExecutionApprovalCard.js +32 -0
- package/workflow/WorkflowExecutionApprovalCard.js.map +1 -0
- package/workflow/WorkflowExecutionArtifactPanel.d.ts +15 -0
- package/workflow/WorkflowExecutionArtifactPanel.d.ts.map +1 -0
- package/workflow/WorkflowExecutionArtifactPanel.js +53 -0
- package/workflow/WorkflowExecutionArtifactPanel.js.map +1 -0
- package/workflow/WorkflowExecutionCostPanel.d.ts +18 -0
- package/workflow/WorkflowExecutionCostPanel.d.ts.map +1 -0
- package/workflow/WorkflowExecutionCostPanel.js +44 -0
- package/workflow/WorkflowExecutionCostPanel.js.map +1 -0
- package/workflow/WorkflowExecutionHeader.d.ts +26 -0
- package/workflow/WorkflowExecutionHeader.d.ts.map +1 -0
- package/workflow/WorkflowExecutionHeader.js +68 -0
- package/workflow/WorkflowExecutionHeader.js.map +1 -0
- package/workflow/WorkflowExecutionPhaseBadge.d.ts +23 -0
- package/workflow/WorkflowExecutionPhaseBadge.d.ts.map +1 -0
- package/workflow/WorkflowExecutionPhaseBadge.js +99 -0
- package/workflow/WorkflowExecutionPhaseBadge.js.map +1 -0
- package/workflow/WorkflowExecutionTaskPanel.d.ts +24 -0
- package/workflow/WorkflowExecutionTaskPanel.d.ts.map +1 -0
- package/workflow/WorkflowExecutionTaskPanel.js +59 -0
- package/workflow/WorkflowExecutionTaskPanel.js.map +1 -0
- package/workflow/WorkflowExecutionTimeline.d.ts +27 -0
- package/workflow/WorkflowExecutionTimeline.d.ts.map +1 -0
- package/workflow/WorkflowExecutionTimeline.js +51 -0
- package/workflow/WorkflowExecutionTimeline.js.map +1 -0
- package/workflow/WorkflowExecutionTimelineEvent.d.ts +18 -0
- package/workflow/WorkflowExecutionTimelineEvent.d.ts.map +1 -0
- package/workflow/WorkflowExecutionTimelineEvent.js +210 -0
- package/workflow/WorkflowExecutionTimelineEvent.js.map +1 -0
- package/workflow/WorkflowExecutionViewer.d.ts +45 -0
- package/workflow/WorkflowExecutionViewer.d.ts.map +1 -0
- package/workflow/WorkflowExecutionViewer.js +75 -0
- package/workflow/WorkflowExecutionViewer.js.map +1 -0
- package/workflow/WorkflowInspectorPanel.d.ts +46 -0
- package/workflow/WorkflowInspectorPanel.d.ts.map +1 -0
- package/workflow/WorkflowInspectorPanel.js +152 -0
- package/workflow/WorkflowInspectorPanel.js.map +1 -0
- package/workflow/WorkflowRefinePanel.d.ts +30 -0
- package/workflow/WorkflowRefinePanel.d.ts.map +1 -0
- package/workflow/WorkflowRefinePanel.js +107 -0
- package/workflow/WorkflowRefinePanel.js.map +1 -0
- package/workflow/WorkflowRepairCard.d.ts +35 -0
- package/workflow/WorkflowRepairCard.d.ts.map +1 -0
- package/workflow/WorkflowRepairCard.js +113 -0
- package/workflow/WorkflowRepairCard.js.map +1 -0
- package/workflow/WorkflowRunDialog.d.ts +51 -0
- package/workflow/WorkflowRunDialog.d.ts.map +1 -0
- package/workflow/WorkflowRunDialog.js +75 -0
- package/workflow/WorkflowRunDialog.js.map +1 -0
- package/workflow/WorkflowRunForm.d.ts +62 -0
- package/workflow/WorkflowRunForm.d.ts.map +1 -0
- package/workflow/WorkflowRunForm.js +64 -0
- package/workflow/WorkflowRunForm.js.map +1 -0
- package/workflow/WorkflowTaskList.d.ts +25 -0
- package/workflow/WorkflowTaskList.d.ts.map +1 -0
- package/workflow/WorkflowTaskList.js +89 -0
- package/workflow/WorkflowTaskList.js.map +1 -0
- package/workflow/WorkflowTaskPalette.d.ts +22 -0
- package/workflow/WorkflowTaskPalette.d.ts.map +1 -0
- package/workflow/WorkflowTaskPalette.js +83 -0
- package/workflow/WorkflowTaskPalette.js.map +1 -0
- package/workflow/WorkflowTopologyGraph.d.ts +22 -0
- package/workflow/WorkflowTopologyGraph.d.ts.map +1 -0
- package/workflow/WorkflowTopologyGraph.js +123 -0
- package/workflow/WorkflowTopologyGraph.js.map +1 -0
- package/workflow/WorkflowYamlEditor.d.ts +43 -0
- package/workflow/WorkflowYamlEditor.d.ts.map +1 -0
- package/workflow/WorkflowYamlEditor.js +215 -0
- package/workflow/WorkflowYamlEditor.js.map +1 -0
- package/workflow/__tests__/starter-workflow-yaml.test.d.ts +2 -0
- package/workflow/__tests__/starter-workflow-yaml.test.d.ts.map +1 -0
- package/workflow/__tests__/starter-workflow-yaml.test.js +44 -0
- package/workflow/__tests__/starter-workflow-yaml.test.js.map +1 -0
- package/workflow/canvas-constants.d.ts +56 -0
- package/workflow/canvas-constants.d.ts.map +1 -0
- package/workflow/canvas-constants.js +74 -0
- package/workflow/canvas-constants.js.map +1 -0
- package/workflow/canvas-icons.d.ts +13 -0
- package/workflow/canvas-icons.d.ts.map +1 -0
- package/workflow/canvas-icons.js +21 -0
- package/workflow/canvas-icons.js.map +1 -0
- package/workflow/extract-workflow-yaml.d.ts +22 -0
- package/workflow/extract-workflow-yaml.d.ts.map +1 -0
- package/workflow/extract-workflow-yaml.js +63 -0
- package/workflow/extract-workflow-yaml.js.map +1 -0
- package/workflow/graph-commands.d.ts +209 -0
- package/workflow/graph-commands.d.ts.map +1 -0
- package/workflow/graph-commands.js +516 -0
- package/workflow/graph-commands.js.map +1 -0
- package/workflow/index.d.ts +66 -0
- package/workflow/index.d.ts.map +1 -0
- package/workflow/index.js +88 -0
- package/workflow/index.js.map +1 -0
- package/workflow/serialize-workflow-yaml.d.ts +39 -0
- package/workflow/serialize-workflow-yaml.d.ts.map +1 -0
- package/workflow/serialize-workflow-yaml.js +413 -0
- package/workflow/serialize-workflow-yaml.js.map +1 -0
- package/workflow/starter-workflow-yaml.d.ts +12 -0
- package/workflow/starter-workflow-yaml.d.ts.map +1 -0
- package/workflow/starter-workflow-yaml.js +30 -0
- package/workflow/starter-workflow-yaml.js.map +1 -0
- package/workflow/types.d.ts +80 -0
- package/workflow/types.d.ts.map +1 -0
- package/workflow/types.js +2 -0
- package/workflow/types.js.map +1 -0
- package/workflow/useCanvasKeyboardShortcuts.d.ts +34 -0
- package/workflow/useCanvasKeyboardShortcuts.d.ts.map +1 -0
- package/workflow/useCanvasKeyboardShortcuts.js +108 -0
- package/workflow/useCanvasKeyboardShortcuts.js.map +1 -0
- package/workflow/useDiagnoseExecutionFlow.d.ts +87 -0
- package/workflow/useDiagnoseExecutionFlow.d.ts.map +1 -0
- package/workflow/useDiagnoseExecutionFlow.js +257 -0
- package/workflow/useDiagnoseExecutionFlow.js.map +1 -0
- package/workflow/useGraphHistory.d.ts +28 -0
- package/workflow/useGraphHistory.d.ts.map +1 -0
- package/workflow/useGraphHistory.js +106 -0
- package/workflow/useGraphHistory.js.map +1 -0
- package/workflow/usePendingApprovals.d.ts +35 -0
- package/workflow/usePendingApprovals.d.ts.map +1 -0
- package/workflow/usePendingApprovals.js +50 -0
- package/workflow/usePendingApprovals.js.map +1 -0
- package/workflow/useRefineWorkflowFlow.d.ts +75 -0
- package/workflow/useRefineWorkflowFlow.d.ts.map +1 -0
- package/workflow/useRefineWorkflowFlow.js +216 -0
- package/workflow/useRefineWorkflowFlow.js.map +1 -0
- package/workflow/useResolveAgentExecutionSession.d.ts +33 -0
- package/workflow/useResolveAgentExecutionSession.d.ts.map +1 -0
- package/workflow/useResolveAgentExecutionSession.js +37 -0
- package/workflow/useResolveAgentExecutionSession.js.map +1 -0
- package/workflow/useRunWorkflowFlow.d.ts +82 -0
- package/workflow/useRunWorkflowFlow.d.ts.map +1 -0
- package/workflow/useRunWorkflowFlow.js +145 -0
- package/workflow/useRunWorkflowFlow.js.map +1 -0
- package/workflow/useTaskKindRegistry.d.ts +96 -0
- package/workflow/useTaskKindRegistry.d.ts.map +1 -0
- package/workflow/useTaskKindRegistry.js +75 -0
- package/workflow/useTaskKindRegistry.js.map +1 -0
- package/workflow/useWorkflow.d.ts +47 -0
- package/workflow/useWorkflow.d.ts.map +1 -0
- package/workflow/useWorkflow.js +53 -0
- package/workflow/useWorkflow.js.map +1 -0
- package/workflow/useWorkflowArchitectFlow.d.ts +96 -0
- package/workflow/useWorkflowArchitectFlow.d.ts.map +1 -0
- package/workflow/useWorkflowArchitectFlow.js +179 -0
- package/workflow/useWorkflowArchitectFlow.js.map +1 -0
- package/workflow/useWorkflowCanvas.d.ts +66 -0
- package/workflow/useWorkflowCanvas.d.ts.map +1 -0
- package/workflow/useWorkflowCanvas.js +628 -0
- package/workflow/useWorkflowCanvas.js.map +1 -0
- package/workflow/useWorkflowCount.d.ts +47 -0
- package/workflow/useWorkflowCount.d.ts.map +1 -0
- package/workflow/useWorkflowCount.js +26 -0
- package/workflow/useWorkflowCount.js.map +1 -0
- package/workflow/useWorkflowDashboardSummary.d.ts +34 -0
- package/workflow/useWorkflowDashboardSummary.d.ts.map +1 -0
- package/workflow/useWorkflowDashboardSummary.js +33 -0
- package/workflow/useWorkflowDashboardSummary.js.map +1 -0
- package/workflow/useWorkflowEditor.d.ts +45 -0
- package/workflow/useWorkflowEditor.d.ts.map +1 -0
- package/workflow/useWorkflowEditor.js +52 -0
- package/workflow/useWorkflowEditor.js.map +1 -0
- package/workflow/useWorkflowExecution.d.ts +37 -0
- package/workflow/useWorkflowExecution.d.ts.map +1 -0
- package/workflow/useWorkflowExecution.js +43 -0
- package/workflow/useWorkflowExecution.js.map +1 -0
- package/workflow/useWorkflowExecutionActions.d.ts +41 -0
- package/workflow/useWorkflowExecutionActions.d.ts.map +1 -0
- package/workflow/useWorkflowExecutionActions.js +86 -0
- package/workflow/useWorkflowExecutionActions.js.map +1 -0
- package/workflow/useWorkflowExecutionArtifacts.d.ts +26 -0
- package/workflow/useWorkflowExecutionArtifacts.d.ts.map +1 -0
- package/workflow/useWorkflowExecutionArtifacts.js +29 -0
- package/workflow/useWorkflowExecutionArtifacts.js.map +1 -0
- package/workflow/useWorkflowExecutionEventLog.d.ts +47 -0
- package/workflow/useWorkflowExecutionEventLog.d.ts.map +1 -0
- package/workflow/useWorkflowExecutionEventLog.js +59 -0
- package/workflow/useWorkflowExecutionEventLog.js.map +1 -0
- package/workflow/useWorkflowExecutionEventStream.d.ts +61 -0
- package/workflow/useWorkflowExecutionEventStream.d.ts.map +1 -0
- package/workflow/useWorkflowExecutionEventStream.js +161 -0
- package/workflow/useWorkflowExecutionEventStream.js.map +1 -0
- package/workflow/useWorkflowExecutionList.d.ts +49 -0
- package/workflow/useWorkflowExecutionList.d.ts.map +1 -0
- package/workflow/useWorkflowExecutionList.js +65 -0
- package/workflow/useWorkflowExecutionList.js.map +1 -0
- package/workflow/useWorkflowInstances.d.ts +30 -0
- package/workflow/useWorkflowInstances.d.ts.map +1 -0
- package/workflow/useWorkflowInstances.js +33 -0
- package/workflow/useWorkflowInstances.js.map +1 -0
- package/workflow/useWorkflowList.d.ts +57 -0
- package/workflow/useWorkflowList.d.ts.map +1 -0
- package/workflow/useWorkflowList.js +29 -0
- package/workflow/useWorkflowList.js.map +1 -0
- package/workflow/useWorkflowSave.d.ts +25 -0
- package/workflow/useWorkflowSave.d.ts.map +1 -0
- package/workflow/useWorkflowSave.js +61 -0
- package/workflow/useWorkflowSave.js.map +1 -0
- package/workflow/useWorkflowTopology.d.ts +40 -0
- package/workflow/useWorkflowTopology.d.ts.map +1 -0
- package/workflow/useWorkflowTopology.js +163 -0
- package/workflow/useWorkflowTopology.js.map +1 -0
- package/workflow/useWorkflowValidation.d.ts +27 -0
- package/workflow/useWorkflowValidation.d.ts.map +1 -0
- package/workflow/useWorkflowValidation.js +253 -0
- package/workflow/useWorkflowValidation.js.map +1 -0
- package/workflow/useWorkflowYaml.d.ts +26 -0
- package/workflow/useWorkflowYaml.d.ts.map +1 -0
- package/workflow/useWorkflowYaml.js +26 -0
- package/workflow/useWorkflowYaml.js.map +1 -0
- package/workflow/workflow-graph-conversions.d.ts +70 -0
- package/workflow/workflow-graph-conversions.d.ts.map +1 -0
- package/workflow/workflow-graph-conversions.js +634 -0
- package/workflow/workflow-graph-conversions.js.map +1 -0
- package/workflow/workflow-graph-model.d.ts +83 -0
- package/workflow/workflow-graph-model.d.ts.map +1 -0
- package/workflow/workflow-graph-model.js +5 -0
- package/workflow/workflow-graph-model.js.map +1 -0
- package/workflow/workflow-yaml-diff.d.ts +24 -0
- package/workflow/workflow-yaml-diff.d.ts.map +1 -0
- package/workflow/workflow-yaml-diff.js +96 -0
- package/workflow/workflow-yaml-diff.js.map +1 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { memo } from "react";
|
|
4
|
+
import { cn } from "@stigmer/theme";
|
|
5
|
+
function formatCost(usd) {
|
|
6
|
+
if (usd >= 1)
|
|
7
|
+
return `$${usd.toFixed(2)}`;
|
|
8
|
+
if (usd >= 0.01)
|
|
9
|
+
return `$${usd.toFixed(3)}`;
|
|
10
|
+
if (usd > 0)
|
|
11
|
+
return `<$0.01`;
|
|
12
|
+
return "$0.00";
|
|
13
|
+
}
|
|
14
|
+
const STAT_CARDS = [
|
|
15
|
+
{
|
|
16
|
+
label: "Active",
|
|
17
|
+
valueClass: "text-foreground",
|
|
18
|
+
getValue: (s) => String(s.activeCount),
|
|
19
|
+
getBreakdown: (s) => {
|
|
20
|
+
const ag = s.agent?.activeCount ?? 0;
|
|
21
|
+
const wf = s.workflow?.activeCount ?? 0;
|
|
22
|
+
if (ag === 0 && wf === 0)
|
|
23
|
+
return null;
|
|
24
|
+
return `${ag} agent, ${wf} workflow`;
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
label: "Completed",
|
|
29
|
+
valueClass: "text-success",
|
|
30
|
+
getValue: (s) => String(s.completedCount),
|
|
31
|
+
getBreakdown: (s) => {
|
|
32
|
+
const ag = s.agent?.phaseCounts[3] ?? 0;
|
|
33
|
+
const wf = s.workflow?.phaseCounts[3] ?? 0;
|
|
34
|
+
if (ag === 0 && wf === 0)
|
|
35
|
+
return null;
|
|
36
|
+
return `${ag} agent, ${wf} workflow`;
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
label: "Failed",
|
|
41
|
+
valueClass: "text-destructive",
|
|
42
|
+
getValue: (s) => String(s.failedCount),
|
|
43
|
+
getBreakdown: (s) => {
|
|
44
|
+
const ag = s.agent?.phaseCounts[4] ?? 0;
|
|
45
|
+
const wf = s.workflow?.phaseCounts[4] ?? 0;
|
|
46
|
+
if (ag === 0 && wf === 0)
|
|
47
|
+
return null;
|
|
48
|
+
return `${ag} agent, ${wf} workflow`;
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
label: "Total Cost",
|
|
53
|
+
valueClass: "text-foreground",
|
|
54
|
+
getValue: (s) => formatCost(s.totalCostUsd),
|
|
55
|
+
getBreakdown: () => null,
|
|
56
|
+
},
|
|
57
|
+
];
|
|
58
|
+
/**
|
|
59
|
+
* Unified stat cards showing combined agent + workflow execution KPIs.
|
|
60
|
+
*
|
|
61
|
+
* Each card shows the combined count with a breakdown tooltip showing
|
|
62
|
+
* per-source values (e.g., "2 agent, 1 workflow").
|
|
63
|
+
*
|
|
64
|
+
* Cost comes from the billing source of truth (getOrgUsageReport),
|
|
65
|
+
* not from summing per-domain costs. See AD-DASH-005.
|
|
66
|
+
*
|
|
67
|
+
* @since Unified Platform Dashboard
|
|
68
|
+
*/
|
|
69
|
+
export const DashboardKPICards = memo(function DashboardKPICards({ summary, isLoading, className, }) {
|
|
70
|
+
if (isLoading) {
|
|
71
|
+
return (_jsx("div", { className: cn("space-y-3", className), "aria-busy": "true", children: _jsx("div", { className: "grid gap-3 sm:grid-cols-2 lg:grid-cols-4", children: Array.from({ length: 4 }, (_, i) => (_jsx("div", { className: "h-[72px] animate-pulse rounded-lg border border-border bg-muted/50" }, i))) }) }));
|
|
72
|
+
}
|
|
73
|
+
if (!summary)
|
|
74
|
+
return null;
|
|
75
|
+
return (_jsx("div", { className: cn("grid gap-3 sm:grid-cols-2 lg:grid-cols-4", className), children: STAT_CARDS.map((card) => {
|
|
76
|
+
const breakdown = card.getBreakdown(summary);
|
|
77
|
+
return (_jsxs("div", { className: "rounded-lg border border-border bg-card px-4 py-3", title: breakdown ?? undefined, children: [_jsx("p", { className: "text-xs font-medium text-muted-foreground", children: card.label }), _jsx("p", { className: cn("mt-1 text-2xl font-semibold", card.valueClass), children: card.getValue(summary) }), breakdown && (_jsx("p", { className: "mt-0.5 text-[10px] text-muted-foreground", children: breakdown }))] }, card.label));
|
|
78
|
+
}) }));
|
|
79
|
+
});
|
|
80
|
+
//# sourceMappingURL=DashboardKPICards.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DashboardKPICards.js","sourceRoot":"","sources":["../../src/dashboard/DashboardKPICards.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { DashboardFailedRun } from "./types";
|
|
2
|
+
export interface OperationalDashboardProps {
|
|
3
|
+
/** Organization slug for execution summaries and pending approvals. */
|
|
4
|
+
readonly org: string | null | undefined;
|
|
5
|
+
/** Organization ID (metadata.id) for the usage report. */
|
|
6
|
+
readonly orgId: string | null | undefined;
|
|
7
|
+
/** Called when the user clicks "Review" on a pending approval. */
|
|
8
|
+
readonly onApprovalClick?: (executionId: string) => void;
|
|
9
|
+
/** Called when the user clicks "View" on a failed execution. */
|
|
10
|
+
readonly onFailedRunClick?: (id: string, type: DashboardFailedRun["type"]) => void;
|
|
11
|
+
readonly className?: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Composed dashboard widget that aggregates operational metrics from both
|
|
15
|
+
* agent and workflow domains into a unified platform view.
|
|
16
|
+
*
|
|
17
|
+
* Layout:
|
|
18
|
+
* - Row 1: KPI stat cards (Active | Completed | Failed | Total Cost)
|
|
19
|
+
* - Row 2: Pending Approvals | Recent Failures (2-column grid)
|
|
20
|
+
*
|
|
21
|
+
* Cost comes from the billing source of truth (`getOrgUsageReport`),
|
|
22
|
+
* not from summing agent + workflow costs. See AD-DASH-005.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```tsx
|
|
26
|
+
* <OperationalDashboard
|
|
27
|
+
* org="acme"
|
|
28
|
+
* orgId={activeOrg?.metadata?.id}
|
|
29
|
+
* onApprovalClick={(id) => navigate(`/executions/${id}`)}
|
|
30
|
+
* onFailedRunClick={(id, type) => navigate(`/executions/${id}`)}
|
|
31
|
+
* />
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* @since Unified Platform Dashboard
|
|
35
|
+
*/
|
|
36
|
+
export declare const OperationalDashboard: import("react").NamedExoticComponent<OperationalDashboardProps>;
|
|
37
|
+
//# sourceMappingURL=OperationalDashboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OperationalDashboard.d.ts","sourceRoot":"","sources":["../../src/dashboard/OperationalDashboard.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,MAAM,WAAW,yBAAyB;IACxC,uEAAuE;IACvE,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACxC,0DAA0D;IAC1D,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,kEAAkE;IAClE,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD,gEAAgE;IAChE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IACnF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,oBAAoB,iEAgD/B,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { memo, useCallback } from "react";
|
|
4
|
+
import { cn } from "@stigmer/theme";
|
|
5
|
+
import { usePendingApprovals } from "../workflow/usePendingApprovals";
|
|
6
|
+
import { PendingApprovalsWidget } from "../workflow/PendingApprovalsWidget";
|
|
7
|
+
import { useDashboardSummary } from "./useDashboardSummary";
|
|
8
|
+
import { useDashboardFailedRuns } from "./useDashboardFailedRuns";
|
|
9
|
+
import { DashboardKPICards } from "./DashboardKPICards";
|
|
10
|
+
import { DashboardFailedRuns } from "./DashboardFailedRuns";
|
|
11
|
+
/**
|
|
12
|
+
* Composed dashboard widget that aggregates operational metrics from both
|
|
13
|
+
* agent and workflow domains into a unified platform view.
|
|
14
|
+
*
|
|
15
|
+
* Layout:
|
|
16
|
+
* - Row 1: KPI stat cards (Active | Completed | Failed | Total Cost)
|
|
17
|
+
* - Row 2: Pending Approvals | Recent Failures (2-column grid)
|
|
18
|
+
*
|
|
19
|
+
* Cost comes from the billing source of truth (`getOrgUsageReport`),
|
|
20
|
+
* not from summing agent + workflow costs. See AD-DASH-005.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```tsx
|
|
24
|
+
* <OperationalDashboard
|
|
25
|
+
* org="acme"
|
|
26
|
+
* orgId={activeOrg?.metadata?.id}
|
|
27
|
+
* onApprovalClick={(id) => navigate(`/executions/${id}`)}
|
|
28
|
+
* onFailedRunClick={(id, type) => navigate(`/executions/${id}`)}
|
|
29
|
+
* />
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* @since Unified Platform Dashboard
|
|
33
|
+
*/
|
|
34
|
+
export const OperationalDashboard = memo(function OperationalDashboard({ org, orgId, onApprovalClick, onFailedRunClick, className, }) {
|
|
35
|
+
const summaryOptions = {
|
|
36
|
+
org,
|
|
37
|
+
orgId,
|
|
38
|
+
refetchInterval: 60_000,
|
|
39
|
+
};
|
|
40
|
+
const { summary, isLoading: summaryLoading } = useDashboardSummary(summaryOptions);
|
|
41
|
+
const { approvals, totalCount: approvalCount, isLoading: approvalsLoading } = usePendingApprovals({ org, refetchInterval: 30_000 });
|
|
42
|
+
const { failedRuns, isLoading: failedLoading } = useDashboardFailedRuns(org);
|
|
43
|
+
const handleFailedRunClick = useCallback((id, type) => {
|
|
44
|
+
onFailedRunClick?.(id, type);
|
|
45
|
+
}, [onFailedRunClick]);
|
|
46
|
+
return (_jsxs("section", { "aria-label": "Platform dashboard", className: cn("space-y-6", className), children: [_jsx(DashboardKPICards, { summary: summary, isLoading: summaryLoading }), _jsxs("div", { className: "grid gap-6 lg:grid-cols-2", children: [_jsx(PendingApprovalsWidget, { approvals: approvals, totalCount: approvalCount, isLoading: approvalsLoading, onReviewClick: onApprovalClick }), _jsx(DashboardFailedRuns, { failedRuns: failedRuns, isLoading: failedLoading, onViewClick: handleFailedRunClick })] })] }));
|
|
47
|
+
});
|
|
48
|
+
//# sourceMappingURL=OperationalDashboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OperationalDashboard.js","sourceRoot":"","sources":["../../src/dashboard/OperationalDashboard.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAmC,MAAM,uBAAuB,CAAC;AAC7F,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAe5D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC,SAAS,oBAAoB,CAAC,EACrE,GAAG,EACH,KAAK,EACL,eAAe,EACf,gBAAgB,EAChB,SAAS,GACiB;IAC1B,MAAM,cAAc,GAA+B;QACjD,GAAG;QACH,KAAK;QACL,eAAe,EAAE,MAAM;KACxB,CAAC;IACF,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAC;IAEnF,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,gBAAgB,EAAE,GACzE,mBAAmB,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,CAAC;IAExD,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAE7E,MAAM,oBAAoB,GAAG,WAAW,CACtC,CAAC,EAAU,EAAE,IAAgC,EAAE,EAAE;QAC/C,gBAAgB,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC,EACD,CAAC,gBAAgB,CAAC,CACnB,CAAC;IAEF,OAAO,CACL,iCACa,oBAAoB,EAC/B,SAAS,EAAE,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,aAErC,KAAC,iBAAiB,IAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,GAAI,EAElE,eAAK,SAAS,EAAC,2BAA2B,aACxC,KAAC,sBAAsB,IACrB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,aAAa,EACzB,SAAS,EAAE,gBAAgB,EAC3B,aAAa,EAAE,eAAe,GAC9B,EACF,KAAC,mBAAmB,IAClB,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,aAAa,EACxB,WAAW,EAAE,oBAAoB,GACjC,IACE,IACE,CACX,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type { DashboardSummary, DashboardFailedRun } from "./types";
|
|
2
|
+
export { useAgentExecutionSummary, AgentExecutionSummaryTimeWindow, type UseAgentExecutionSummaryOptions, type UseAgentExecutionSummaryReturn, } from "./useAgentExecutionSummary";
|
|
3
|
+
export { useDashboardSummary, type UseDashboardSummaryOptions, type UseDashboardSummaryReturn, } from "./useDashboardSummary";
|
|
4
|
+
export { useDashboardFailedRuns, type UseDashboardFailedRunsReturn, } from "./useDashboardFailedRuns";
|
|
5
|
+
export { DashboardKPICards, type DashboardKPICardsProps, } from "./DashboardKPICards";
|
|
6
|
+
export { DashboardFailedRuns, type DashboardFailedRunsProps, } from "./DashboardFailedRuns";
|
|
7
|
+
export { OperationalDashboard, type OperationalDashboardProps, } from "./OperationalDashboard";
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dashboard/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAGpE,OAAO,EACL,wBAAwB,EACxB,+BAA+B,EAC/B,KAAK,+BAA+B,EACpC,KAAK,8BAA8B,GACpC,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,mBAAmB,EACnB,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,GAC/B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,sBAAsB,EACtB,KAAK,4BAA4B,GAClC,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,iBAAiB,EACjB,KAAK,sBAAsB,GAC5B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,mBAAmB,EACnB,KAAK,wBAAwB,GAC9B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,oBAAoB,EACpB,KAAK,yBAAyB,GAC/B,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// ─── Data Hooks ─────────────────────────────────────────────────────────────
|
|
2
|
+
export { useAgentExecutionSummary, AgentExecutionSummaryTimeWindow, } from "./useAgentExecutionSummary";
|
|
3
|
+
export { useDashboardSummary, } from "./useDashboardSummary";
|
|
4
|
+
export { useDashboardFailedRuns, } from "./useDashboardFailedRuns";
|
|
5
|
+
// ─── Styled Components ─────────────────────────────────────────────────────
|
|
6
|
+
export { DashboardKPICards, } from "./DashboardKPICards";
|
|
7
|
+
export { DashboardFailedRuns, } from "./DashboardFailedRuns";
|
|
8
|
+
export { OperationalDashboard, } from "./OperationalDashboard";
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dashboard/index.ts"],"names":[],"mappings":"AAGA,+EAA+E;AAC/E,OAAO,EACL,wBAAwB,EACxB,+BAA+B,GAGhC,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,mBAAmB,GAGpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,sBAAsB,GAEvB,MAAM,0BAA0B,CAAC;AAElC,8EAA8E;AAC9E,OAAO,EACL,iBAAiB,GAElB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,mBAAmB,GAEpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,oBAAoB,GAErB,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { AgentExecutionSummary } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/io_pb";
|
|
2
|
+
import type { GetOrgUsageReportOutput } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/io_pb";
|
|
3
|
+
import type { ExecutionSummary } from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/io_pb";
|
|
4
|
+
/**
|
|
5
|
+
* Unified dashboard summary combining operational metrics from both
|
|
6
|
+
* agent and workflow execution domains.
|
|
7
|
+
*
|
|
8
|
+
* Execution counts (active, completed, failed) are safe to add because
|
|
9
|
+
* agent executions and workflow executions are distinct resources.
|
|
10
|
+
*
|
|
11
|
+
* Cost comes from {@link GetOrgUsageReportOutput} (billing source of truth),
|
|
12
|
+
* NOT from summing agent + workflow costs. This prevents double-counting
|
|
13
|
+
* when workflows delegate to agents. See AD-DASH-005.
|
|
14
|
+
*/
|
|
15
|
+
export interface DashboardSummary {
|
|
16
|
+
/** Combined agent + workflow active execution count. */
|
|
17
|
+
readonly activeCount: number;
|
|
18
|
+
/** Combined agent + workflow completed count. */
|
|
19
|
+
readonly completedCount: number;
|
|
20
|
+
/** Combined agent + workflow failed count. */
|
|
21
|
+
readonly failedCount: number;
|
|
22
|
+
/**
|
|
23
|
+
* Total platform cost in USD from the billing source of truth.
|
|
24
|
+
* Sourced from `getOrgUsageReport.total_billable_cost_micros`.
|
|
25
|
+
*/
|
|
26
|
+
readonly totalCostUsd: number;
|
|
27
|
+
/** Agent-side execution summary for per-source breakdown in tooltips. */
|
|
28
|
+
readonly agent: AgentExecutionSummary | null;
|
|
29
|
+
/** Workflow-side execution summary for per-source breakdown in tooltips. */
|
|
30
|
+
readonly workflow: ExecutionSummary | null;
|
|
31
|
+
/** Org-level usage report for cost details. */
|
|
32
|
+
readonly orgUsage: GetOrgUsageReportOutput | null;
|
|
33
|
+
}
|
|
34
|
+
/** A normalized entry representing a failed execution from either domain. */
|
|
35
|
+
export interface DashboardFailedRun {
|
|
36
|
+
/** Execution ID (`aex_*` or `wex_*`). */
|
|
37
|
+
readonly id: string;
|
|
38
|
+
/** Discriminator for routing navigation. */
|
|
39
|
+
readonly type: "agent_execution" | "workflow_execution";
|
|
40
|
+
/** Execution name or subject. */
|
|
41
|
+
readonly name: string;
|
|
42
|
+
/** Error message from the failed execution. */
|
|
43
|
+
readonly error: string;
|
|
44
|
+
/** When the execution failed. */
|
|
45
|
+
readonly failedAt: Date;
|
|
46
|
+
/** The agent or workflow name associated with this execution. */
|
|
47
|
+
readonly resourceName: string;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/dashboard/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4DAA4D,CAAC;AACxG,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4DAA4D,CAAC;AAC1G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+DAA+D,CAAC;AAEtG;;;;;;;;;;GAUG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wDAAwD;IACxD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,iDAAiD;IACjD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,8CAA8C;IAC9C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;;;OAGG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,yEAAyE;IACzE,QAAQ,CAAC,KAAK,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC7C,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC3C,+CAA+C;IAC/C,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,GAAG,IAAI,CAAC;CACnD;AAED,6EAA6E;AAC7E,MAAM,WAAW,kBAAkB;IACjC,yCAAyC;IACzC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,QAAQ,CAAC,IAAI,EAAE,iBAAiB,GAAG,oBAAoB,CAAC;IACxD,iCAAiC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,+CAA+C;IAC/C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,iCAAiC;IACjC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IACxB,iEAAiE;IACjE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/dashboard/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { AgentExecutionSummary } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/io_pb";
|
|
2
|
+
import { AgentExecutionSummaryTimeWindow } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/io_pb";
|
|
3
|
+
export { AgentExecutionSummaryTimeWindow };
|
|
4
|
+
/** Options for {@link useAgentExecutionSummary}. */
|
|
5
|
+
export interface UseAgentExecutionSummaryOptions {
|
|
6
|
+
/** Organization slug. When empty/null, the hook does not fetch. */
|
|
7
|
+
readonly org: string | null | undefined;
|
|
8
|
+
/** Time window for aggregation. @default LAST_7D */
|
|
9
|
+
readonly timeWindow?: AgentExecutionSummaryTimeWindow;
|
|
10
|
+
/** Refetch interval in milliseconds. `0` or `false` disables. @default 0 */
|
|
11
|
+
readonly refetchInterval?: number | false;
|
|
12
|
+
}
|
|
13
|
+
/** Return value of {@link useAgentExecutionSummary}. */
|
|
14
|
+
export interface UseAgentExecutionSummaryReturn {
|
|
15
|
+
readonly summary: AgentExecutionSummary | null;
|
|
16
|
+
readonly isLoading: boolean;
|
|
17
|
+
readonly isRefetching: boolean;
|
|
18
|
+
readonly error: Error | null;
|
|
19
|
+
readonly refetch: () => void;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Data hook that fetches aggregated agent execution statistics for an
|
|
23
|
+
* organization. Returns phase counts, active count, average duration,
|
|
24
|
+
* and top failing agents.
|
|
25
|
+
*
|
|
26
|
+
* Cost is intentionally excluded from this response — the dashboard
|
|
27
|
+
* sources cost from `useOrgUsageReport` (billing source of truth) to
|
|
28
|
+
* prevent double-counting. See AD-DASH-005.
|
|
29
|
+
*
|
|
30
|
+
* @since Unified Platform Dashboard
|
|
31
|
+
*/
|
|
32
|
+
export declare function useAgentExecutionSummary(options: UseAgentExecutionSummaryOptions): UseAgentExecutionSummaryReturn;
|
|
33
|
+
//# sourceMappingURL=useAgentExecutionSummary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAgentExecutionSummary.d.ts","sourceRoot":"","sources":["../../src/dashboard/useAgentExecutionSummary.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4DAA4D,CAAC;AACxG,OAAO,EACL,+BAA+B,EAEhC,MAAM,4DAA4D,CAAC;AAIpE,OAAO,EAAE,+BAA+B,EAAE,CAAC;AAE3C,oDAAoD;AACpD,MAAM,WAAW,+BAA+B;IAC9C,mEAAmE;IACnE,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACxC,oDAAoD;IACpD,QAAQ,CAAC,UAAU,CAAC,EAAE,+BAA+B,CAAC;IACtD,4EAA4E;IAC5E,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;CAC3C;AAED,wDAAwD;AACxD,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC/C,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,+BAA+B,GACvC,8BAA8B,CAyBhC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { create } from "@bufbuild/protobuf";
|
|
3
|
+
import { AgentExecutionSummaryTimeWindow, GetAgentExecutionSummaryRequestSchema, } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/io_pb";
|
|
4
|
+
import { useStigmer } from "../hooks";
|
|
5
|
+
import { useFetch } from "../internal/useFetch";
|
|
6
|
+
export { AgentExecutionSummaryTimeWindow };
|
|
7
|
+
/**
|
|
8
|
+
* Data hook that fetches aggregated agent execution statistics for an
|
|
9
|
+
* organization. Returns phase counts, active count, average duration,
|
|
10
|
+
* and top failing agents.
|
|
11
|
+
*
|
|
12
|
+
* Cost is intentionally excluded from this response — the dashboard
|
|
13
|
+
* sources cost from `useOrgUsageReport` (billing source of truth) to
|
|
14
|
+
* prevent double-counting. See AD-DASH-005.
|
|
15
|
+
*
|
|
16
|
+
* @since Unified Platform Dashboard
|
|
17
|
+
*/
|
|
18
|
+
export function useAgentExecutionSummary(options) {
|
|
19
|
+
const stigmer = useStigmer();
|
|
20
|
+
const org = options.org ?? "";
|
|
21
|
+
const timeWindow = options.timeWindow ??
|
|
22
|
+
AgentExecutionSummaryTimeWindow.LAST_7D;
|
|
23
|
+
const refetchInterval = options.refetchInterval ?? 0;
|
|
24
|
+
const fetchFn = org
|
|
25
|
+
? async () => {
|
|
26
|
+
return await stigmer.agentExecution.getExecutionSummary(create(GetAgentExecutionSummaryRequestSchema, { org, timeWindow }));
|
|
27
|
+
}
|
|
28
|
+
: null;
|
|
29
|
+
const { data, isLoading, isRefetching, error, refetch } = useFetch(fetchFn, [stigmer, org, timeWindow], null, { refetchInterval: refetchInterval || false });
|
|
30
|
+
return { summary: data, isLoading, isRefetching, error, refetch };
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=useAgentExecutionSummary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAgentExecutionSummary.js","sourceRoot":"","sources":["../../src/dashboard/useAgentExecutionSummary.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EACL,+BAA+B,EAC/B,qCAAqC,GACtC,MAAM,4DAA4D,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,+BAA+B,EAAE,CAAC;AAqB3C;;;;;;;;;;GAUG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAAwC;IAExC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC;IAC9B,MAAM,UAAU,GACd,OAAO,CAAC,UAAU;QAClB,+BAA+B,CAAC,OAAO,CAAC;IAC1C,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,CAAC,CAAC;IAErD,MAAM,OAAO,GAAG,GAAG;QACjB,CAAC,CAAC,KAAK,IAAI,EAAE;YACT,OAAO,MAAM,OAAO,CAAC,cAAc,CAAC,mBAAmB,CACrD,MAAM,CAAC,qCAAqC,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CACnE,CAAC;QACJ,CAAC;QACH,CAAC,CAAC,IAAI,CAAC;IAET,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,GACrD,QAAQ,CACN,OAAO,EACP,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,EAC1B,IAAI,EACJ,EAAE,eAAe,EAAE,eAAe,IAAI,KAAK,EAAE,CAC9C,CAAC;IAEJ,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACpE,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { DashboardFailedRun } from "./types";
|
|
2
|
+
/** Return value of {@link useDashboardFailedRuns}. */
|
|
3
|
+
export interface UseDashboardFailedRunsReturn {
|
|
4
|
+
readonly failedRuns: readonly DashboardFailedRun[];
|
|
5
|
+
readonly isLoading: boolean;
|
|
6
|
+
readonly error: Error | null;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Composition hook that fetches recent failed executions from both
|
|
10
|
+
* agent and workflow domains, normalizes them into {@link DashboardFailedRun}
|
|
11
|
+
* entries, and interleaves them by timestamp (newest first).
|
|
12
|
+
*
|
|
13
|
+
* Returns at most 5 total entries to keep the widget compact.
|
|
14
|
+
*
|
|
15
|
+
* @since Unified Platform Dashboard
|
|
16
|
+
*/
|
|
17
|
+
export declare function useDashboardFailedRuns(org: string | null | undefined): UseDashboardFailedRunsReturn;
|
|
18
|
+
//# sourceMappingURL=useDashboardFailedRuns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDashboardFailedRuns.d.ts","sourceRoot":"","sources":["../../src/dashboard/useDashboardFailedRuns.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAOlD,sDAAsD;AACtD,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,UAAU,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACnD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CAC9B;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC7B,4BAA4B,CAmF9B"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useMemo } from "react";
|
|
3
|
+
import { create } from "@bufbuild/protobuf";
|
|
4
|
+
import { timestampDate } from "@bufbuild/protobuf/wkt";
|
|
5
|
+
import { ExecutionPhase as AgentPhase } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
|
|
6
|
+
import { ExecutionPhase as WorkflowPhase } from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/enum_pb";
|
|
7
|
+
import { ListAgentExecutionsRequestSchema } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/io_pb";
|
|
8
|
+
import { ListWorkflowExecutionsRequestSchema } from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/io_pb";
|
|
9
|
+
import { useStigmer } from "../hooks";
|
|
10
|
+
import { useFetch } from "../internal/useFetch";
|
|
11
|
+
const EPOCH = new Date(0);
|
|
12
|
+
const EMPTY = [];
|
|
13
|
+
const MAX_TOTAL = 5;
|
|
14
|
+
const PAGE_SIZE = 5;
|
|
15
|
+
/**
|
|
16
|
+
* Composition hook that fetches recent failed executions from both
|
|
17
|
+
* agent and workflow domains, normalizes them into {@link DashboardFailedRun}
|
|
18
|
+
* entries, and interleaves them by timestamp (newest first).
|
|
19
|
+
*
|
|
20
|
+
* Returns at most 5 total entries to keep the widget compact.
|
|
21
|
+
*
|
|
22
|
+
* @since Unified Platform Dashboard
|
|
23
|
+
*/
|
|
24
|
+
export function useDashboardFailedRuns(org) {
|
|
25
|
+
const stigmer = useStigmer();
|
|
26
|
+
const orgVal = org ?? "";
|
|
27
|
+
const agentFetchFn = useMemo(() => orgVal
|
|
28
|
+
? async () => {
|
|
29
|
+
const resp = await stigmer.agentExecution.list(create(ListAgentExecutionsRequestSchema, {
|
|
30
|
+
pageSize: PAGE_SIZE,
|
|
31
|
+
phase: AgentPhase.EXECUTION_FAILED,
|
|
32
|
+
}));
|
|
33
|
+
return [...resp.entries];
|
|
34
|
+
}
|
|
35
|
+
: null, [stigmer, orgVal]);
|
|
36
|
+
const workflowFetchFn = useMemo(() => orgVal
|
|
37
|
+
? async () => {
|
|
38
|
+
const resp = await stigmer.workflowExecution.list(create(ListWorkflowExecutionsRequestSchema, {
|
|
39
|
+
pageSize: PAGE_SIZE,
|
|
40
|
+
phase: WorkflowPhase.EXECUTION_FAILED,
|
|
41
|
+
}));
|
|
42
|
+
return [...resp.entries];
|
|
43
|
+
}
|
|
44
|
+
: null, [stigmer, orgVal]);
|
|
45
|
+
const { data: agentFailed, isLoading: agLoading, error: agError } = useFetch(agentFetchFn, [stigmer, orgVal], [], {
|
|
46
|
+
refetchInterval: 60_000,
|
|
47
|
+
});
|
|
48
|
+
const { data: workflowFailed, isLoading: wfLoading, error: wfError } = useFetch(workflowFetchFn, [stigmer, orgVal], [], {
|
|
49
|
+
refetchInterval: 60_000,
|
|
50
|
+
});
|
|
51
|
+
const failedRuns = useMemo(() => {
|
|
52
|
+
if (!agentFailed.length && !workflowFailed.length)
|
|
53
|
+
return EMPTY;
|
|
54
|
+
const agentEntries = agentFailed.map((exec) => {
|
|
55
|
+
const ts = exec.status?.audit?.specAudit?.createdAt;
|
|
56
|
+
return {
|
|
57
|
+
id: exec.metadata?.id ?? "",
|
|
58
|
+
type: "agent_execution",
|
|
59
|
+
name: exec.metadata?.name || "Untitled execution",
|
|
60
|
+
error: exec.status?.error ?? "",
|
|
61
|
+
failedAt: ts ? timestampDate(ts) : EPOCH,
|
|
62
|
+
resourceName: exec.spec?.agentId ?? "",
|
|
63
|
+
};
|
|
64
|
+
});
|
|
65
|
+
const workflowEntries = workflowFailed.map((exec) => {
|
|
66
|
+
const ts = exec.status?.audit?.specAudit?.createdAt;
|
|
67
|
+
return {
|
|
68
|
+
id: exec.metadata?.id ?? "",
|
|
69
|
+
type: "workflow_execution",
|
|
70
|
+
name: exec.metadata?.name || "Untitled execution",
|
|
71
|
+
error: exec.status?.error ?? "",
|
|
72
|
+
failedAt: ts ? timestampDate(ts) : EPOCH,
|
|
73
|
+
resourceName: exec.metadata?.slug ?? "",
|
|
74
|
+
};
|
|
75
|
+
});
|
|
76
|
+
const merged = [...agentEntries, ...workflowEntries];
|
|
77
|
+
merged.sort((a, b) => b.failedAt.getTime() - a.failedAt.getTime());
|
|
78
|
+
return merged.slice(0, MAX_TOTAL);
|
|
79
|
+
}, [agentFailed, workflowFailed]);
|
|
80
|
+
return {
|
|
81
|
+
failedRuns,
|
|
82
|
+
isLoading: agLoading || wfLoading,
|
|
83
|
+
error: agError ?? wfError,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=useDashboardFailedRuns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDashboardFailedRuns.js","sourceRoot":"","sources":["../../src/dashboard/useDashboardFailedRuns.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,cAAc,IAAI,UAAU,EAAE,MAAM,8DAA8D,CAAC;AAC5G,OAAO,EAAE,cAAc,IAAI,aAAa,EAAE,MAAM,iEAAiE,CAAC;AAClH,OAAO,EAAE,gCAAgC,EAAE,MAAM,4DAA4D,CAAC;AAC9G,OAAO,EAAE,mCAAmC,EAAE,MAAM,+DAA+D,CAAC;AAGpH,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1B,MAAM,KAAK,GAAkC,EAAE,CAAC;AAChD,MAAM,SAAS,GAAG,CAAC,CAAC;AACpB,MAAM,SAAS,GAAG,CAAC,CAAC;AASpB;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CACpC,GAA8B;IAE9B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,GAAG,IAAI,EAAE,CAAC;IAEzB,MAAM,YAAY,GAAG,OAAO,CAC1B,GAAG,EAAE,CACH,MAAM;QACJ,CAAC,CAAC,KAAK,IAAI,EAAE;YACT,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,IAAI,CAC5C,MAAM,CAAC,gCAAgC,EAAE;gBACvC,QAAQ,EAAE,SAAS;gBACnB,KAAK,EAAE,UAAU,CAAC,gBAAgB;aACnC,CAAC,CACH,CAAC;YACF,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAA8B,CAAC;QACxD,CAAC;QACH,CAAC,CAAC,IAAI,EACV,CAAC,OAAO,EAAE,MAAM,CAAC,CAClB,CAAC;IAEF,MAAM,eAAe,GAAG,OAAO,CAC7B,GAAG,EAAE,CACH,MAAM;QACJ,CAAC,CAAC,KAAK,IAAI,EAAE;YACT,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAC/C,MAAM,CAAC,mCAAmC,EAAE;gBAC1C,QAAQ,EAAE,SAAS;gBACnB,KAAK,EAAE,aAAa,CAAC,gBAAgB;aACtC,CAAC,CACH,CAAC;YACF,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAiC,CAAC;QAC3D,CAAC;QACH,CAAC,CAAC,IAAI,EACV,CAAC,OAAO,EAAE,MAAM,CAAC,CAClB,CAAC;IAEF,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,GAC/D,QAAQ,CAA4B,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE;QACvE,eAAe,EAAE,MAAM;KACxB,CAAC,CAAC;IAEL,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,GAClE,QAAQ,CAA+B,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE;QAC7E,eAAe,EAAE,MAAM;KACxB,CAAC,CAAC;IAEL,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE;QAC9B,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAEhE,MAAM,YAAY,GAAyB,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAClE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC;YACpD,OAAO;gBACL,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE;gBAC3B,IAAI,EAAE,iBAA0B;gBAChC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,oBAAoB;gBACjD,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;gBAC/B,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK;gBACxC,YAAY,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE;aACvC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,eAAe,GAAyB,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACxE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC;YACpD,OAAO;gBACL,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE;gBAC3B,IAAI,EAAE,oBAA6B;gBACnC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,oBAAoB;gBACjD,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;gBAC/B,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK;gBACxC,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE;aACxC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,CAAC,GAAG,YAAY,EAAE,GAAG,eAAe,CAAC,CAAC;QACrD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QACnE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACpC,CAAC,EAAE,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;IAElC,OAAO;QACL,UAAU;QACV,SAAS,EAAE,SAAS,IAAI,SAAS;QACjC,KAAK,EAAE,OAAO,IAAI,OAAO;KAC1B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { DashboardSummary } from "./types";
|
|
2
|
+
/** Options for {@link useDashboardSummary}. */
|
|
3
|
+
export interface UseDashboardSummaryOptions {
|
|
4
|
+
/** Organization slug for execution summaries. */
|
|
5
|
+
readonly org: string | null | undefined;
|
|
6
|
+
/** Organization ID (metadata.id) for the usage report. */
|
|
7
|
+
readonly orgId: string | null | undefined;
|
|
8
|
+
/** Refetch interval in milliseconds. @default 60_000 */
|
|
9
|
+
readonly refetchInterval?: number;
|
|
10
|
+
}
|
|
11
|
+
/** Return value of {@link useDashboardSummary}. */
|
|
12
|
+
export interface UseDashboardSummaryReturn {
|
|
13
|
+
readonly summary: DashboardSummary | null;
|
|
14
|
+
readonly isLoading: boolean;
|
|
15
|
+
readonly error: Error | null;
|
|
16
|
+
readonly refetch: () => void;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Composition hook that merges agent execution summary, workflow execution
|
|
20
|
+
* summary, and org usage report into a single {@link DashboardSummary}.
|
|
21
|
+
*
|
|
22
|
+
* - Execution counts (active, completed, failed) are added across both
|
|
23
|
+
* domains — safe because agent and workflow executions are distinct resources.
|
|
24
|
+
* - Cost comes from `getOrgUsageReport` (billing source of truth). NOT from
|
|
25
|
+
* summing agent + workflow costs. See AD-DASH-005.
|
|
26
|
+
*
|
|
27
|
+
* Follows the same client-side merge pattern as `useRecentActivity`.
|
|
28
|
+
*
|
|
29
|
+
* @since Unified Platform Dashboard
|
|
30
|
+
*/
|
|
31
|
+
export declare function useDashboardSummary(options: UseDashboardSummaryOptions): UseDashboardSummaryReturn;
|
|
32
|
+
//# sourceMappingURL=useDashboardSummary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDashboardSummary.d.ts","sourceRoot":"","sources":["../../src/dashboard/useDashboardSummary.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,+CAA+C;AAC/C,MAAM,WAAW,0BAA0B;IACzC,iDAAiD;IACjD,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACxC,0DAA0D;IAC1D,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,wDAAwD;IACxD,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,mDAAmD;AACnD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,0BAA0B,GAClC,yBAAyB,CA0D3B"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useMemo } from "react";
|
|
3
|
+
import { ExecutionPhase as WorkflowPhase } from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/enum_pb";
|
|
4
|
+
import { ExecutionPhase as AgentPhase } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
|
|
5
|
+
import { useWorkflowDashboardSummary, } from "../workflow/useWorkflowDashboardSummary";
|
|
6
|
+
import { useOrgUsageReport } from "../usage/useOrgUsageReport";
|
|
7
|
+
import { dateRangeFromPreset } from "../usage/date-range";
|
|
8
|
+
import { useAgentExecutionSummary, AgentExecutionSummaryTimeWindow, } from "./useAgentExecutionSummary";
|
|
9
|
+
/**
|
|
10
|
+
* Composition hook that merges agent execution summary, workflow execution
|
|
11
|
+
* summary, and org usage report into a single {@link DashboardSummary}.
|
|
12
|
+
*
|
|
13
|
+
* - Execution counts (active, completed, failed) are added across both
|
|
14
|
+
* domains — safe because agent and workflow executions are distinct resources.
|
|
15
|
+
* - Cost comes from `getOrgUsageReport` (billing source of truth). NOT from
|
|
16
|
+
* summing agent + workflow costs. See AD-DASH-005.
|
|
17
|
+
*
|
|
18
|
+
* Follows the same client-side merge pattern as `useRecentActivity`.
|
|
19
|
+
*
|
|
20
|
+
* @since Unified Platform Dashboard
|
|
21
|
+
*/
|
|
22
|
+
export function useDashboardSummary(options) {
|
|
23
|
+
const refetchInterval = options.refetchInterval ?? 60_000;
|
|
24
|
+
const { summary: workflowSummary, isLoading: wfLoading, error: wfError, refetch: wfRefetch } = useWorkflowDashboardSummary({
|
|
25
|
+
org: options.org,
|
|
26
|
+
refetchInterval,
|
|
27
|
+
});
|
|
28
|
+
const { summary: agentSummary, isLoading: agLoading, error: agError, refetch: agRefetch } = useAgentExecutionSummary({
|
|
29
|
+
org: options.org,
|
|
30
|
+
timeWindow: AgentExecutionSummaryTimeWindow.LAST_7D,
|
|
31
|
+
refetchInterval,
|
|
32
|
+
});
|
|
33
|
+
const dateRange = useMemo(() => dateRangeFromPreset("7d"), []);
|
|
34
|
+
const { report: orgUsage, isLoading: usageLoading, error: usageError, refetch: usageRefetch } = useOrgUsageReport(options.orgId ?? null, dateRange);
|
|
35
|
+
const isLoading = wfLoading || agLoading || usageLoading;
|
|
36
|
+
const error = wfError ?? agError ?? usageError;
|
|
37
|
+
const summary = useMemo(() => {
|
|
38
|
+
if (isLoading && !workflowSummary && !agentSummary)
|
|
39
|
+
return null;
|
|
40
|
+
const wfActive = workflowSummary?.activeCount ?? 0;
|
|
41
|
+
const agActive = agentSummary?.activeCount ?? 0;
|
|
42
|
+
const wfCompleted = workflowSummary?.phaseCounts[WorkflowPhase.EXECUTION_COMPLETED] ?? 0;
|
|
43
|
+
const agCompleted = agentSummary?.phaseCounts[AgentPhase.EXECUTION_COMPLETED] ?? 0;
|
|
44
|
+
const wfFailed = workflowSummary?.phaseCounts[WorkflowPhase.EXECUTION_FAILED] ?? 0;
|
|
45
|
+
const agFailed = agentSummary?.phaseCounts[AgentPhase.EXECUTION_FAILED] ?? 0;
|
|
46
|
+
const totalCostMicros = Number(orgUsage?.totalBillableCostMicros ?? BigInt(0));
|
|
47
|
+
const totalCostUsd = totalCostMicros / 1_000_000;
|
|
48
|
+
return {
|
|
49
|
+
activeCount: wfActive + agActive,
|
|
50
|
+
completedCount: wfCompleted + agCompleted,
|
|
51
|
+
failedCount: wfFailed + agFailed,
|
|
52
|
+
totalCostUsd,
|
|
53
|
+
agent: agentSummary,
|
|
54
|
+
workflow: workflowSummary,
|
|
55
|
+
orgUsage: orgUsage,
|
|
56
|
+
};
|
|
57
|
+
}, [workflowSummary, agentSummary, orgUsage, isLoading]);
|
|
58
|
+
const refetch = useMemo(() => {
|
|
59
|
+
return () => {
|
|
60
|
+
wfRefetch();
|
|
61
|
+
agRefetch();
|
|
62
|
+
usageRefetch();
|
|
63
|
+
};
|
|
64
|
+
}, [wfRefetch, agRefetch, usageRefetch]);
|
|
65
|
+
return { summary, isLoading, error, refetch };
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=useDashboardSummary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDashboardSummary.js","sourceRoot":"","sources":["../../src/dashboard/useDashboardSummary.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { AgentExecution } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/api_pb";
|
|
2
|
+
/** Props for {@link ContextGauge}. */
|
|
3
|
+
export interface ContextGaugeProps {
|
|
4
|
+
/**
|
|
5
|
+
* The execution snapshot from `useExecutionStream`, or `null`.
|
|
6
|
+
* The gauge extracts `context_info` from the execution status.
|
|
7
|
+
*/
|
|
8
|
+
readonly execution: AgentExecution | null;
|
|
9
|
+
/**
|
|
10
|
+
* When `true`, renders a minimal bar without labels.
|
|
11
|
+
* Use in tight layouts (e.g., inline status indicators).
|
|
12
|
+
* @default false
|
|
13
|
+
*/
|
|
14
|
+
readonly compact?: boolean;
|
|
15
|
+
/** Additional CSS classes for the root element. */
|
|
16
|
+
readonly className?: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Visual gauge showing context window utilization during agent execution.
|
|
20
|
+
*
|
|
21
|
+
* Renders a progress bar with threshold markers, token count labels, and
|
|
22
|
+
* a health indicator derived from utilization percentage. The gauge updates
|
|
23
|
+
* in real-time as the execution streams status updates.
|
|
24
|
+
*
|
|
25
|
+
* Returns `null` when `context_info` is absent (e.g., Cursor harness
|
|
26
|
+
* where context is managed externally).
|
|
27
|
+
*
|
|
28
|
+
* All visual properties flow through `--stgm-*` tokens. Zero Console
|
|
29
|
+
* dependencies. Accessible via `role="meter"` with ARIA value attributes.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```tsx
|
|
33
|
+
* const { execution } = useExecutionStream(executionId);
|
|
34
|
+
* <ContextGauge execution={execution} />
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* @example Compact mode in a status bar:
|
|
38
|
+
* ```tsx
|
|
39
|
+
* <ContextGauge execution={execution} compact />
|
|
40
|
+
* ```
|
|
41
|
+
*
|
|
42
|
+
* @see {@link useContextWindow} - headless hook for custom rendering
|
|
43
|
+
*/
|
|
44
|
+
export declare const ContextGauge: import("react").NamedExoticComponent<ContextGaugeProps>;
|
|
45
|
+
//# sourceMappingURL=ContextGauge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContextGauge.d.ts","sourceRoot":"","sources":["../../src/execution/ContextGauge.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6DAA6D,CAAC;AASlG,sCAAsC;AACtC,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI,CAAC;IAC1C;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,mDAAmD;IACnD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AA0BD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,YAAY,yDAYvB,CAAC"}
|