@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,13 @@
|
|
|
1
|
+
import type { RecentActivityEntry, RecentActivityGroup } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Groups recent-activity entries by their `updatedAt` timestamp into
|
|
4
|
+
* time-based buckets: "Today", "Yesterday", "Previous 7 Days",
|
|
5
|
+
* "Previous 30 Days", "Older".
|
|
6
|
+
*
|
|
7
|
+
* Empty groups are omitted. Input order is preserved within each group.
|
|
8
|
+
*
|
|
9
|
+
* @param entries - Unified activity entries (from {@link useRecentActivity}).
|
|
10
|
+
* @param now - Reference time; defaults to the current time.
|
|
11
|
+
*/
|
|
12
|
+
export declare function groupRecentActivityByTime(entries: readonly RecentActivityEntry[], now?: Date): readonly RecentActivityGroup[];
|
|
13
|
+
//# sourceMappingURL=group-activity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group-activity.d.ts","sourceRoot":"","sources":["../../src/activity/group-activity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAOxE;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,SAAS,mBAAmB,EAAE,EACvC,GAAG,CAAC,EAAE,IAAI,GACT,SAAS,mBAAmB,EAAE,CAgChC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Groups recent-activity entries by their `updatedAt` timestamp into
|
|
3
|
+
* time-based buckets: "Today", "Yesterday", "Previous 7 Days",
|
|
4
|
+
* "Previous 30 Days", "Older".
|
|
5
|
+
*
|
|
6
|
+
* Empty groups are omitted. Input order is preserved within each group.
|
|
7
|
+
*
|
|
8
|
+
* @param entries - Unified activity entries (from {@link useRecentActivity}).
|
|
9
|
+
* @param now - Reference time; defaults to the current time.
|
|
10
|
+
*/
|
|
11
|
+
export function groupRecentActivityByTime(entries, now) {
|
|
12
|
+
const ref = now ?? new Date();
|
|
13
|
+
const todayStart = startOfDay(ref);
|
|
14
|
+
const yesterdayStart = addDays(todayStart, -1);
|
|
15
|
+
const sevenDaysAgo = addDays(todayStart, -6);
|
|
16
|
+
const thirtyDaysAgo = addDays(todayStart, -29);
|
|
17
|
+
const buckets = [
|
|
18
|
+
{ label: "Today", entries: [] },
|
|
19
|
+
{ label: "Yesterday", entries: [] },
|
|
20
|
+
{ label: "Previous 7 Days", entries: [] },
|
|
21
|
+
{ label: "Previous 30 Days", entries: [] },
|
|
22
|
+
{ label: "Older", entries: [] },
|
|
23
|
+
];
|
|
24
|
+
for (const entry of entries) {
|
|
25
|
+
const date = entry.updatedAt;
|
|
26
|
+
if (date >= todayStart) {
|
|
27
|
+
buckets[0].entries.push(entry);
|
|
28
|
+
}
|
|
29
|
+
else if (date >= yesterdayStart) {
|
|
30
|
+
buckets[1].entries.push(entry);
|
|
31
|
+
}
|
|
32
|
+
else if (date >= sevenDaysAgo) {
|
|
33
|
+
buckets[2].entries.push(entry);
|
|
34
|
+
}
|
|
35
|
+
else if (date >= thirtyDaysAgo) {
|
|
36
|
+
buckets[3].entries.push(entry);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
buckets[4].entries.push(entry);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return buckets.filter((b) => b.entries.length > 0);
|
|
43
|
+
}
|
|
44
|
+
function startOfDay(date) {
|
|
45
|
+
const d = new Date(date);
|
|
46
|
+
d.setHours(0, 0, 0, 0);
|
|
47
|
+
return d;
|
|
48
|
+
}
|
|
49
|
+
function addDays(date, days) {
|
|
50
|
+
const d = new Date(date);
|
|
51
|
+
d.setDate(d.getDate() + days);
|
|
52
|
+
return d;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=group-activity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group-activity.js","sourceRoot":"","sources":["../../src/activity/group-activity.ts"],"names":[],"mappings":"AAOA;;;;;;;;;GASG;AACH,MAAM,UAAU,yBAAyB,CACvC,OAAuC,EACvC,GAAU;IAEV,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;IAC9B,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;IAE/C,MAAM,OAAO,GAAa;QACxB,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;QAC/B,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE;QACnC,EAAE,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,EAAE,EAAE;QACzC,EAAE,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,EAAE,EAAE;QAC1C,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;KAChC,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC;QAE7B,IAAI,IAAI,IAAI,UAAU,EAAE,CAAC;YACvB,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;aAAM,IAAI,IAAI,IAAI,cAAc,EAAE,CAAC;YAClC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;aAAM,IAAI,IAAI,IAAI,YAAY,EAAE,CAAC;YAChC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;aAAM,IAAI,IAAI,IAAI,aAAa,EAAE,CAAC;YACjC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,UAAU,CAAC,IAAU;IAC5B,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACvB,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,OAAO,CAAC,IAAU,EAAE,IAAY;IACvC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IAC9B,OAAO,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export type { RecentActivityType, RecentActivityEntry, RecentActivityGroup, } from "./types";
|
|
2
|
+
export { useRecentActivity, type UseRecentActivityOptions, type UseRecentActivityReturn, } from "./useRecentActivity";
|
|
3
|
+
export { groupRecentActivityByTime } from "./group-activity";
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/activity/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,iBAAiB,EACjB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,GAC7B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/activity/index.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,iBAAiB,GAGlB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/** Discriminator for items in the unified recents list. */
|
|
2
|
+
export type RecentActivityType = "session" | "workflow_execution";
|
|
3
|
+
/**
|
|
4
|
+
* A normalized entry representing either an agent session or a workflow
|
|
5
|
+
* execution. Used by {@link useRecentActivity} and rendered in the sidebar
|
|
6
|
+
* recents section.
|
|
7
|
+
*/
|
|
8
|
+
export interface RecentActivityEntry {
|
|
9
|
+
/** Resource ID (session ID or workflow execution ID). */
|
|
10
|
+
readonly id: string;
|
|
11
|
+
/** Discriminator — determines which viewer to open on click. */
|
|
12
|
+
readonly type: RecentActivityType;
|
|
13
|
+
/** Human-readable label: session subject or workflow execution name. */
|
|
14
|
+
readonly subject: string;
|
|
15
|
+
/**
|
|
16
|
+
* Last meaningful update timestamp, used for interleaved sort.
|
|
17
|
+
* For sessions: `status.audit.specAudit.createdAt`.
|
|
18
|
+
* For workflow executions: `status.audit.specAudit.createdAt`.
|
|
19
|
+
*/
|
|
20
|
+
readonly updatedAt: Date;
|
|
21
|
+
/**
|
|
22
|
+
* Execution phase for workflow executions (e.g. "COMPLETED", "FAILED").
|
|
23
|
+
* `undefined` for sessions.
|
|
24
|
+
*/
|
|
25
|
+
readonly status?: string;
|
|
26
|
+
}
|
|
27
|
+
/** A time-based group of recent activity entries. */
|
|
28
|
+
export interface RecentActivityGroup {
|
|
29
|
+
/** Display label (e.g. "Today", "Yesterday"). */
|
|
30
|
+
readonly label: string;
|
|
31
|
+
/** Entries in this group, sorted by `updatedAt` descending. */
|
|
32
|
+
readonly entries: readonly RecentActivityEntry[];
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/activity/types.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,oBAAoB,CAAC;AAElE;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,yDAAyD;IACzD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,wEAAwE;IACxE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,qDAAqD;AACrD,MAAM,WAAW,mBAAmB;IAClC,iDAAiD;IACjD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,+DAA+D;IAC/D,QAAQ,CAAC,OAAO,EAAE,SAAS,mBAAmB,EAAE,CAAC;CAClD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/activity/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { RecentActivityEntry } from "./types";
|
|
2
|
+
/** Options for {@link useRecentActivity}. */
|
|
3
|
+
export interface UseRecentActivityOptions {
|
|
4
|
+
/**
|
|
5
|
+
* Maximum entries per source. The hook fetches up to `pageSize`
|
|
6
|
+
* sessions and `pageSize` workflow executions, then merges and
|
|
7
|
+
* trims to `pageSize` total entries.
|
|
8
|
+
*
|
|
9
|
+
* @default 30
|
|
10
|
+
*/
|
|
11
|
+
readonly pageSize?: number;
|
|
12
|
+
}
|
|
13
|
+
/** Return value of {@link useRecentActivity}. */
|
|
14
|
+
export interface UseRecentActivityReturn {
|
|
15
|
+
/** Merged entries sorted by `updatedAt` descending. */
|
|
16
|
+
readonly entries: readonly RecentActivityEntry[];
|
|
17
|
+
/** `true` while either source is loading for the first time. */
|
|
18
|
+
readonly isLoading: boolean;
|
|
19
|
+
/** First non-null error from either source. */
|
|
20
|
+
readonly error: Error | null;
|
|
21
|
+
/** Re-fetch both sources. */
|
|
22
|
+
readonly refetch: () => void;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Fetches recent agent sessions and workflow executions, merges them
|
|
26
|
+
* into a single list sorted by most-recent-first, and exposes a
|
|
27
|
+
* unified {@link RecentActivityEntry} array.
|
|
28
|
+
*
|
|
29
|
+
* Implementation uses client-side merge of two existing data hooks
|
|
30
|
+
* (`useSessionList` and `useWorkflowExecutionList`), keeping the
|
|
31
|
+
* backend contract unchanged. A dedicated `listRecentActivity` RPC
|
|
32
|
+
* can replace this approach later without changing consumers.
|
|
33
|
+
*/
|
|
34
|
+
export declare function useRecentActivity(options?: UseRecentActivityOptions): UseRecentActivityReturn;
|
|
35
|
+
//# sourceMappingURL=useRecentActivity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRecentActivity.d.ts","sourceRoot":"","sources":["../../src/activity/useRecentActivity.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD,6CAA6C;AAC7C,MAAM,WAAW,wBAAwB;IACvC;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,iDAAiD;AACjD,MAAM,WAAW,uBAAuB;IACtC,uDAAuD;IACvD,QAAQ,CAAC,OAAO,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACjD,gEAAgE;IAChE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,+CAA+C;IAC/C,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,6BAA6B;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAKD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,CAAC,EAAE,wBAAwB,GACjC,uBAAuB,CA6BzB"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useMemo } from "react";
|
|
3
|
+
import { timestampDate } from "@bufbuild/protobuf/wkt";
|
|
4
|
+
import { resolvedSubject } from "@stigmer/sdk";
|
|
5
|
+
import { useSessionList } from "../session/useSessionList";
|
|
6
|
+
import { useWorkflowExecutionList } from "../workflow/useWorkflowExecutionList";
|
|
7
|
+
const DEFAULT_PAGE_SIZE = 30;
|
|
8
|
+
const EPOCH = new Date(0);
|
|
9
|
+
/**
|
|
10
|
+
* Fetches recent agent sessions and workflow executions, merges them
|
|
11
|
+
* into a single list sorted by most-recent-first, and exposes a
|
|
12
|
+
* unified {@link RecentActivityEntry} array.
|
|
13
|
+
*
|
|
14
|
+
* Implementation uses client-side merge of two existing data hooks
|
|
15
|
+
* (`useSessionList` and `useWorkflowExecutionList`), keeping the
|
|
16
|
+
* backend contract unchanged. A dedicated `listRecentActivity` RPC
|
|
17
|
+
* can replace this approach later without changing consumers.
|
|
18
|
+
*/
|
|
19
|
+
export function useRecentActivity(options) {
|
|
20
|
+
const pageSize = options?.pageSize ?? DEFAULT_PAGE_SIZE;
|
|
21
|
+
const sessionResult = useSessionList({ pageSize });
|
|
22
|
+
const executionResult = useWorkflowExecutionList({ pageSize });
|
|
23
|
+
const entries = useMemo(() => mergeAndSort(sessionResult.sessions, executionResult.executions, pageSize), [sessionResult.sessions, executionResult.executions, pageSize]);
|
|
24
|
+
const isLoading = sessionResult.isLoading || executionResult.isLoading;
|
|
25
|
+
const error = sessionResult.error ?? executionResult.error;
|
|
26
|
+
const refetch = useMemo(() => {
|
|
27
|
+
const sessionRefetch = sessionResult.refetch;
|
|
28
|
+
const executionRefetch = executionResult.refetch;
|
|
29
|
+
return () => {
|
|
30
|
+
sessionRefetch();
|
|
31
|
+
executionRefetch();
|
|
32
|
+
};
|
|
33
|
+
}, [sessionResult.refetch, executionResult.refetch]);
|
|
34
|
+
return { entries, isLoading, error, refetch };
|
|
35
|
+
}
|
|
36
|
+
function mergeAndSort(sessions, executions, limit) {
|
|
37
|
+
const sessionEntries = sessions.map(normalizeSession);
|
|
38
|
+
const executionEntries = executions.map(normalizeExecution);
|
|
39
|
+
const merged = [...sessionEntries, ...executionEntries];
|
|
40
|
+
merged.sort((a, b) => b.updatedAt.getTime() - a.updatedAt.getTime());
|
|
41
|
+
return merged.slice(0, limit);
|
|
42
|
+
}
|
|
43
|
+
function normalizeSession(session) {
|
|
44
|
+
const id = session.metadata?.id ?? "";
|
|
45
|
+
const rawSubject = session.spec?.subject;
|
|
46
|
+
const subject = resolvedSubject(rawSubject) ?? "Untitled session";
|
|
47
|
+
const ts = session.status?.audit?.specAudit?.createdAt;
|
|
48
|
+
const updatedAt = ts ? timestampDate(ts) : EPOCH;
|
|
49
|
+
return { id, type: "session", subject, updatedAt };
|
|
50
|
+
}
|
|
51
|
+
function normalizeExecution(execution) {
|
|
52
|
+
const id = execution.metadata?.id ?? "";
|
|
53
|
+
const subject = execution.metadata?.name || "Untitled execution";
|
|
54
|
+
const ts = execution.status?.audit?.specAudit?.createdAt;
|
|
55
|
+
const updatedAt = ts ? timestampDate(ts) : EPOCH;
|
|
56
|
+
const status = execution.status?.phase !== undefined
|
|
57
|
+
? phaseLabel(execution.status.phase)
|
|
58
|
+
: undefined;
|
|
59
|
+
return { id, type: "workflow_execution", subject, updatedAt, status };
|
|
60
|
+
}
|
|
61
|
+
function phaseLabel(phase) {
|
|
62
|
+
switch (phase) {
|
|
63
|
+
case 1: return "pending";
|
|
64
|
+
case 2: return "running";
|
|
65
|
+
case 3: return "completed";
|
|
66
|
+
case 4: return "failed";
|
|
67
|
+
case 5: return "cancelled";
|
|
68
|
+
case 6: return "terminated";
|
|
69
|
+
case 7: return "paused";
|
|
70
|
+
default: return "unknown";
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=useRecentActivity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRecentActivity.js","sourceRoot":"","sources":["../../src/activity/useRecentActivity.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentPicker.d.ts","sourceRoot":"","sources":["../../src/agent/AgentPicker.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"AgentPicker.d.ts","sourceRoot":"","sources":["../../src/agent/AgentPicker.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAUhD,qCAAqC;AACrC,MAAM,WAAW,gBAAgB;IAC/B,0DAA0D;IAC1D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,oEAAoE;IACpE,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;IACnC,gEAAgE;IAChE,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IACrD,mFAAmF;IACnF,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrE;;;;;;;;OAQG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAC/B,wDAAwD;IACxD,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,yDAAyD;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAQD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,WAAW,CAAC,EAC1B,GAAG,EACH,KAAK,EACL,QAAQ,EACR,qBAAqB,EACrB,KAAK,EACL,QAAQ,EACR,SAAS,GACV,EAAE,gBAAgB,2CAgMlB"}
|
package/agent/AgentPicker.js
CHANGED
|
@@ -6,6 +6,7 @@ import { cn } from "@stigmer/theme";
|
|
|
6
6
|
import { useAgentSearch } from "./useAgentSearch";
|
|
7
7
|
import { useScrollShadows } from "../internal/useScrollShadows";
|
|
8
8
|
import { ScrollFade } from "../internal/ScrollFade";
|
|
9
|
+
import { ScopeToggle } from "../library/ScopeToggle";
|
|
9
10
|
function refKey(ref) {
|
|
10
11
|
return `${ref.org}/${ref.slug}`;
|
|
11
12
|
}
|
|
@@ -40,7 +41,8 @@ const LIST_ID = "stgm-agent-list";
|
|
|
40
41
|
* ```
|
|
41
42
|
*/
|
|
42
43
|
export function AgentPicker({ org, value, onChange, onDisplayNameResolved, scope, disabled, className, }) {
|
|
43
|
-
const
|
|
44
|
+
const [activeScope, setActiveScope] = useState(scope ?? "org");
|
|
45
|
+
const { results, isLoading, error, query, setQuery } = useAgentSearch(org, { scope: activeScope });
|
|
44
46
|
const [focusIndex, setFocusIndex] = useState(-1);
|
|
45
47
|
const searchRef = useRef(null);
|
|
46
48
|
const { scrollRef: listRef, canScrollUp, canScrollDown } = useScrollShadows();
|
|
@@ -89,7 +91,7 @@ export function AgentPicker({ org, value, onChange, onDisplayNameResolved, scope
|
|
|
89
91
|
e.preventDefault();
|
|
90
92
|
}
|
|
91
93
|
}, [availableResults, focusIndex, handleSelect]);
|
|
92
|
-
return (_jsxs("div", { className: ["space-y-2 w-72", className].filter(Boolean).join(" "), children: [value && (_jsxs("div", { className: "space-y-1", children: [_jsx("div", { className: "text-[0.65rem] font-medium text-muted-foreground", children: "Selected" }), _jsxs("div", { className: "flex items-center gap-2 rounded-md bg-muted-faint px-2 py-1 text-xs", children: [_jsx(AgentIcon, {}), _jsx("span", { className: "min-w-0 flex-1 truncate text-foreground", children: value.slug }), _jsx("button", { type: "button", onClick: handleDeselect, disabled: disabled, className: "shrink-0 text-muted-foreground hover:text-destructive disabled:pointer-events-none", "aria-label": `Remove ${value.slug}`, children: _jsx(XIcon, {}) })] })] })), _jsx("input", { ref: searchRef, type: "text", role: "combobox", "aria-expanded": true, "aria-controls": LIST_ID, "aria-activedescendant": focusIndex >= 0 ? `stgm-agent-${focusIndex}` : undefined, placeholder: "Search agents...", value: query, onChange: (e) => setQuery(e.target.value), onKeyDown: handleSearchKeyDown, disabled: disabled, className: "w-full rounded-md border border-input bg-background px-2.5 py-1.5 text-xs text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50", autoFocus: true }), error && _jsx("p", { className: "text-xs text-destructive", children: error.message }), _jsxs("div", { className: "relative", children: [canScrollUp && _jsx(ScrollFade, { position: "top" }), _jsx("div", { ref: listRef, id: LIST_ID, role: "listbox", "aria-label": "Agents", className: "max-h-52 overflow-y-auto", children: isLoading ? (_jsx(LoadingSkeleton, {})) : availableResults.length === 0 ? (_jsx("div", { className: "py-4 text-center text-xs text-muted-foreground", children: query
|
|
94
|
+
return (_jsxs("div", { className: ["space-y-2 w-72", className].filter(Boolean).join(" "), children: [value && (_jsxs("div", { className: "space-y-1", children: [_jsx("div", { className: "text-[0.65rem] font-medium text-muted-foreground", children: "Selected" }), _jsxs("div", { className: "flex items-center gap-2 rounded-md bg-muted-faint px-2 py-1 text-xs", children: [_jsx(AgentIcon, {}), _jsx("span", { className: "min-w-0 flex-1 truncate text-foreground", children: value.slug }), _jsx("button", { type: "button", onClick: handleDeselect, disabled: disabled, className: "shrink-0 text-muted-foreground hover:text-destructive disabled:pointer-events-none", "aria-label": `Remove ${value.slug}`, children: _jsx(XIcon, {}) })] })] })), _jsx("input", { ref: searchRef, type: "text", role: "combobox", "aria-expanded": true, "aria-controls": LIST_ID, "aria-activedescendant": focusIndex >= 0 ? `stgm-agent-${focusIndex}` : undefined, placeholder: "Search agents...", value: query, onChange: (e) => setQuery(e.target.value), onKeyDown: handleSearchKeyDown, disabled: disabled, className: "w-full rounded-md border border-input bg-background px-2.5 py-1.5 text-xs text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50", autoFocus: true }), _jsx(ScopeToggle, { value: activeScope, onChange: setActiveScope, disabled: disabled }), error && _jsx("p", { className: "text-xs text-destructive", children: error.message }), _jsxs("div", { className: "relative", children: [canScrollUp && _jsx(ScrollFade, { position: "top" }), _jsx("div", { ref: listRef, id: LIST_ID, role: "listbox", "aria-label": "Agents", className: "max-h-52 overflow-y-auto", children: isLoading ? (_jsx(LoadingSkeleton, {})) : availableResults.length === 0 ? (_jsx("div", { className: "py-4 text-center text-xs text-muted-foreground", children: query
|
|
93
95
|
? "No agents match your search"
|
|
94
96
|
: value
|
|
95
97
|
? "No other agents available"
|
package/agent/AgentPicker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentPicker.js","sourceRoot":"","sources":["../../src/agent/AgentPicker.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EACL,QAAQ,EACR,WAAW,EACX,SAAS,EACT,MAAM,EACN,OAAO,GAER,MAAM,OAAO,CAAC;AAGf,OAAO,EAAE,eAAe,EAAE,MAAM,qFAAqF,CAAC;AACtH,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"AgentPicker.js","sourceRoot":"","sources":["../../src/agent/AgentPicker.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BillingSection.d.ts","sourceRoot":"","sources":["../../src/billing/BillingSection.tsx"],"names":[],"mappings":"AAmBA,wCAAwC;AACxC,MAAM,WAAW,mBAAmB;IAClC;;;;;;OAMG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,uDAAuD;IACvD,QAAQ,CAAC,wBAAwB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/C,kCAAkC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,EAC7B,eAAe,EACf,wBAAwB,EACxB,SAAS,GACV,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"BillingSection.d.ts","sourceRoot":"","sources":["../../src/billing/BillingSection.tsx"],"names":[],"mappings":"AAmBA,wCAAwC;AACxC,MAAM,WAAW,mBAAmB;IAClC;;;;;;OAMG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,uDAAuD;IACvD,QAAQ,CAAC,wBAAwB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/C,kCAAkC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,EAC7B,eAAe,EACf,wBAAwB,EACxB,SAAS,GACV,EAAE,mBAAmB,2CAoCrB"}
|
|
@@ -33,7 +33,7 @@ export function BillingSection({ checkoutSuccess, onDismissCheckoutSuccess, clas
|
|
|
33
33
|
const { activeOrg } = useOrg();
|
|
34
34
|
const mode = useDeploymentMode();
|
|
35
35
|
const orgId = activeOrg?.metadata?.id ?? "";
|
|
36
|
-
return (_jsxs("section", { "aria-labelledby": "billing-heading", className: className, children: [_jsx("h2", { id: "billing-heading", className: "text-foreground mb-1 text-sm font-semibold", children: "Billing" }), _jsx("p", { className: "text-muted-foreground mb-4 text-xs", children: "Manage credits, purchase credit packs, and view transaction history." }), mode === "local" ? (_jsx(CloudFeatureNotice, { children: "
|
|
36
|
+
return (_jsxs("section", { "aria-labelledby": "billing-heading", className: className, children: [_jsx("h2", { id: "billing-heading", className: "text-foreground mb-1 text-sm font-semibold", children: "Billing" }), _jsx("p", { className: "text-muted-foreground mb-4 text-xs", children: "Manage credits, purchase credit packs, and view transaction history." }), mode === "local" ? (_jsx(CloudFeatureNotice, { children: "Credit billing and purchases are available on Stigmer Cloud. Local mode uses your own LLM API keys directly \u2014 no Stigmer credits needed." })) : !orgId ? (_jsx("p", { className: "text-muted-foreground py-4 text-center text-xs", children: "Select an organization to view billing." })) : (_jsx(BillingContent, { orgId: orgId, checkoutSuccess: checkoutSuccess, onDismissCheckoutSuccess: onDismissCheckoutSuccess }))] }));
|
|
37
37
|
}
|
|
38
38
|
// ---------------------------------------------------------------------------
|
|
39
39
|
// BillingContent (internal)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BillingSection.js","sourceRoot":"","sources":["../../src/billing/BillingSection.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAkBtD;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,eAAe,EACf,wBAAwB,EACxB,SAAS,GACW;IACpB,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,iBAAiB,EAAE,CAAC;IACjC,MAAM,KAAK,GAAG,SAAS,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC;IAE5C,OAAO,CACL,sCAAyB,iBAAiB,EAAC,SAAS,EAAE,SAAS,aAC7D,aACE,EAAE,EAAC,iBAAiB,EACpB,SAAS,EAAC,4CAA4C,wBAGnD,EACL,YAAG,SAAS,EAAC,oCAAoC,qFAE7C,EAEH,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAClB,KAAC,kBAAkB,
|
|
1
|
+
{"version":3,"file":"BillingSection.js","sourceRoot":"","sources":["../../src/billing/BillingSection.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type ConfigureMenuItem } from "./ConfigureMenu";
|
|
2
2
|
import type { HarnessOption } from "../models/harness";
|
|
3
|
+
import { type InteractionModeOption } from "./InteractionModePicker";
|
|
3
4
|
export interface ComposerToolbarProps {
|
|
4
5
|
readonly disabled: boolean;
|
|
5
6
|
readonly isSubmitting: boolean;
|
|
@@ -22,6 +23,9 @@ export interface ComposerToolbarProps {
|
|
|
22
23
|
readonly showHarnessSelector: boolean;
|
|
23
24
|
readonly harness?: HarnessOption;
|
|
24
25
|
readonly onHarnessChange: (harness: HarnessOption) => void;
|
|
26
|
+
readonly showInteractionModePicker: boolean;
|
|
27
|
+
readonly interactionMode?: InteractionModeOption;
|
|
28
|
+
readonly onInteractionModeChange: (mode: InteractionModeOption) => void;
|
|
25
29
|
readonly showModelSelector: boolean;
|
|
26
30
|
readonly modelId?: string;
|
|
27
31
|
readonly onModelChange: (id: string) => void;
|
|
@@ -40,5 +44,5 @@ export interface ComposerToolbarProps {
|
|
|
40
44
|
*
|
|
41
45
|
* Separators are placed between conceptual groups using Gestalt proximity.
|
|
42
46
|
*/
|
|
43
|
-
export declare function ComposerToolbar({ disabled, isSubmitting, canSend, onSend, showAttach, attachmentCount, onAttachClick, showWorkspace, workspaceCount, workspaceContent, configureItems, configOpen, onConfigOpenChange, configActivePanel, onConfigActivePanelChange, renderConfigPanel, showHarnessSelector, harness, onHarnessChange, showModelSelector, modelId, onModelChange, }: ComposerToolbarProps): import("react/jsx-runtime").JSX.Element;
|
|
47
|
+
export declare function ComposerToolbar({ disabled, isSubmitting, canSend, onSend, showAttach, attachmentCount, onAttachClick, showWorkspace, workspaceCount, workspaceContent, configureItems, configOpen, onConfigOpenChange, configActivePanel, onConfigActivePanelChange, renderConfigPanel, showHarnessSelector, harness, onHarnessChange, showInteractionModePicker, interactionMode, onInteractionModeChange, showModelSelector, modelId, onModelChange, }: ComposerToolbarProps): import("react/jsx-runtime").JSX.Element;
|
|
44
48
|
//# sourceMappingURL=ComposerToolbar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComposerToolbar.d.ts","sourceRoot":"","sources":["../../src/composer/ComposerToolbar.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"ComposerToolbar.d.ts","sourceRoot":"","sources":["../../src/composer/ComposerToolbar.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAyB,KAAK,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAQ5F,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;IAI5B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,0DAA0D;IAC1D,QAAQ,CAAC,gBAAgB,EAAE,KAAK,CAAC,SAAS,CAAC;IAI3C,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC;IAInC,QAAQ,CAAC,cAAc,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACtD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,kBAAkB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACrD,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,yBAAyB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACnE,gEAAgE;IAChE,QAAQ,CAAC,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;IAIhE,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;IAI3D,QAAQ,CAAC,yBAAyB,EAAE,OAAO,CAAC;IAC5C,QAAQ,CAAC,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACjD,QAAQ,CAAC,uBAAuB,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAIxE,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,YAAY,EACZ,OAAO,EACP,MAAM,EACN,UAAU,EACV,eAAe,EACf,aAAa,EACb,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,yBAAyB,EACzB,iBAAiB,EACjB,mBAAmB,EACnB,OAAO,EACP,eAAe,EACf,yBAAyB,EACzB,eAAe,EACf,uBAAuB,EACvB,iBAAiB,EACjB,OAAO,EACP,aAAa,GACd,EAAE,oBAAoB,2CA8GtB"}
|
|
@@ -5,6 +5,7 @@ import { ContextPopover } from "./ContextPopover";
|
|
|
5
5
|
import { ConfigureMenu } from "./ConfigureMenu";
|
|
6
6
|
import { ModelSelector } from "../models/ModelSelector";
|
|
7
7
|
import { HarnessSelector } from "../models/HarnessSelector";
|
|
8
|
+
import { InteractionModePicker } from "./InteractionModePicker";
|
|
8
9
|
import { PaperclipIcon, WorkspaceIcon, ArrowUpIcon, SpinnerIcon, } from "./icons";
|
|
9
10
|
/**
|
|
10
11
|
* Composer toolbar — Zone 3 of the SessionComposer.
|
|
@@ -20,11 +21,11 @@ import { PaperclipIcon, WorkspaceIcon, ArrowUpIcon, SpinnerIcon, } from "./icons
|
|
|
20
21
|
*
|
|
21
22
|
* Separators are placed between conceptual groups using Gestalt proximity.
|
|
22
23
|
*/
|
|
23
|
-
export function ComposerToolbar({ disabled, isSubmitting, canSend, onSend, showAttach, attachmentCount, onAttachClick, showWorkspace, workspaceCount, workspaceContent, configureItems, configOpen, onConfigOpenChange, configActivePanel, onConfigActivePanelChange, renderConfigPanel, showHarnessSelector, harness, onHarnessChange, showModelSelector, modelId, onModelChange, }) {
|
|
24
|
+
export function ComposerToolbar({ disabled, isSubmitting, canSend, onSend, showAttach, attachmentCount, onAttachClick, showWorkspace, workspaceCount, workspaceContent, configureItems, configOpen, onConfigOpenChange, configActivePanel, onConfigActivePanelChange, renderConfigPanel, showHarnessSelector, harness, onHarnessChange, showInteractionModePicker, interactionMode, onInteractionModeChange, showModelSelector, modelId, onModelChange, }) {
|
|
24
25
|
const hasTier1 = showAttach || showWorkspace;
|
|
25
26
|
const hasTier2 = configureItems.length > 0;
|
|
26
27
|
const showHarnessSeparate = showHarnessSelector && !showModelSelector;
|
|
27
|
-
const hasExecParams = showHarnessSeparate || showModelSelector;
|
|
28
|
-
return (_jsxs("div", { className: "flex items-center justify-between gap-2 border-t border-border-muted px-3 py-2", children: [_jsxs("div", { className: "flex items-center gap-1.5", children: [showWorkspace && (_jsx(ContextPopover, { icon: _jsx(WorkspaceIcon, {}), label: "Workspace", count: workspaceCount, disabled: disabled, hideLabel: true, children: workspaceContent })), showAttach && (_jsxs("button", { type: "button", disabled: disabled, onClick: onAttachClick, className: cn("inline-flex items-center gap-1 rounded-md px-2 py-1.5 text-xs transition-colors", "text-muted-foreground hover:text-foreground hover:bg-accent-hover", "disabled:pointer-events-none disabled:opacity-50"), "aria-label": "Attach files", children: [_jsx(PaperclipIcon, {}), _jsx("span", { className: "max-sm:hidden", children: "Attach" }), attachmentCount > 0 && (_jsx("span", { className: "rounded-full bg-primary-subtle px-1.5 text-[0.6rem] font-medium text-primary", children: attachmentCount }))] })), hasTier1 && hasTier2 && (_jsx("div", { className: "mx-0.5 h-4 w-px bg-border/50", "aria-hidden": "true" })), _jsx(ConfigureMenu, { open: configOpen, onOpenChange: onConfigOpenChange, activePanel: configActivePanel, onActivePanelChange: onConfigActivePanelChange, items: configureItems, renderPanel: renderConfigPanel, disabled: disabled }), (hasTier1 || hasTier2) && hasExecParams && (_jsx("div", { className: "mx-0.5 h-4 w-px bg-border/50", "aria-hidden": "true" })), showHarnessSeparate && (_jsx(HarnessSelector, { value: harness ?? "native", onValueChange: onHarnessChange, disabled: disabled })), showModelSelector && (_jsx(ModelSelector, { value: modelId, onValueChange: onModelChange, harness: showHarnessSelector ? undefined : harness, initialHarness: showHarnessSelector ? harness : undefined, onHarnessChange: showHarnessSelector ? onHarnessChange : undefined, disabled: disabled }))] }), _jsx("button", { type: "button", disabled: !canSend, onClick: onSend, className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-primary text-primary-foreground transition-colors hover:bg-primary-hover disabled:pointer-events-none disabled:opacity-40", "aria-label": "Send message", children: isSubmitting ? _jsx(SpinnerIcon, {}) : _jsx(ArrowUpIcon, {}) })] }));
|
|
28
|
+
const hasExecParams = showHarnessSeparate || showInteractionModePicker || showModelSelector;
|
|
29
|
+
return (_jsxs("div", { className: "flex items-center justify-between gap-2 border-t border-border-muted px-3 py-2", children: [_jsxs("div", { className: "flex items-center gap-1.5", children: [showWorkspace && (_jsx(ContextPopover, { icon: _jsx(WorkspaceIcon, {}), label: "Workspace", count: workspaceCount, disabled: disabled, hideLabel: true, children: workspaceContent })), showAttach && (_jsxs("button", { type: "button", disabled: disabled, onClick: onAttachClick, className: cn("inline-flex items-center gap-1 rounded-md px-2 py-1.5 text-xs transition-colors", "text-muted-foreground hover:text-foreground hover:bg-accent-hover", "disabled:pointer-events-none disabled:opacity-50"), "aria-label": "Attach files", children: [_jsx(PaperclipIcon, {}), _jsx("span", { className: "max-sm:hidden", children: "Attach" }), attachmentCount > 0 && (_jsx("span", { className: "rounded-full bg-primary-subtle px-1.5 text-[0.6rem] font-medium text-primary", children: attachmentCount }))] })), hasTier1 && hasTier2 && (_jsx("div", { className: "mx-0.5 h-4 w-px bg-border/50", "aria-hidden": "true" })), _jsx(ConfigureMenu, { open: configOpen, onOpenChange: onConfigOpenChange, activePanel: configActivePanel, onActivePanelChange: onConfigActivePanelChange, items: configureItems, renderPanel: renderConfigPanel, disabled: disabled }), (hasTier1 || hasTier2) && hasExecParams && (_jsx("div", { className: "mx-0.5 h-4 w-px bg-border/50", "aria-hidden": "true" })), showHarnessSeparate && (_jsx(HarnessSelector, { value: harness ?? "native", onValueChange: onHarnessChange, disabled: disabled })), showInteractionModePicker && (_jsx(InteractionModePicker, { value: interactionMode ?? "agent", onValueChange: onInteractionModeChange, disabled: disabled })), showModelSelector && (_jsx(ModelSelector, { value: modelId, onValueChange: onModelChange, harness: showHarnessSelector ? undefined : harness, initialHarness: showHarnessSelector ? harness : undefined, onHarnessChange: showHarnessSelector ? onHarnessChange : undefined, disabled: disabled }))] }), _jsx("button", { type: "button", disabled: !canSend, onClick: onSend, className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-primary text-primary-foreground transition-colors hover:bg-primary-hover disabled:pointer-events-none disabled:opacity-40", "aria-label": "Send message", children: isSubmitting ? _jsx(SpinnerIcon, {}) : _jsx(ArrowUpIcon, {}) })] }));
|
|
29
30
|
}
|
|
30
31
|
//# sourceMappingURL=ComposerToolbar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComposerToolbar.js","sourceRoot":"","sources":["../../src/composer/ComposerToolbar.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAA0B,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EACL,aAAa,EACb,aAAa,EACb,WAAW,EACX,WAAW,GACZ,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"ComposerToolbar.js","sourceRoot":"","sources":["../../src/composer/ComposerToolbar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interaction mode options for agent executions.
|
|
3
|
+
*
|
|
4
|
+
* Maps to `InteractionMode` proto enum values (excluding UNSPECIFIED):
|
|
5
|
+
* - `"agent"` → `INTERACTION_MODE_AGENT` (full tool access)
|
|
6
|
+
* - `"plan"` → `INTERACTION_MODE_PLAN` (read-only analysis)
|
|
7
|
+
*/
|
|
8
|
+
export type InteractionModeOption = "agent" | "plan";
|
|
9
|
+
/** Props for {@link InteractionModePicker}. */
|
|
10
|
+
export interface InteractionModePickerProps {
|
|
11
|
+
/** Currently selected interaction mode. */
|
|
12
|
+
readonly value: InteractionModeOption;
|
|
13
|
+
/** Called when the user picks a different mode. */
|
|
14
|
+
readonly onValueChange: (mode: InteractionModeOption) => void;
|
|
15
|
+
/** Additional CSS class names for the trigger button. */
|
|
16
|
+
readonly className?: string;
|
|
17
|
+
/** When true, disables the picker. */
|
|
18
|
+
readonly disabled?: boolean;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Compact dropdown for choosing the execution interaction mode.
|
|
22
|
+
*
|
|
23
|
+
* Renders a trigger button showing the current mode label with a
|
|
24
|
+
* chevron, and a popover with the available options. Each option
|
|
25
|
+
* shows a label and a short description.
|
|
26
|
+
*
|
|
27
|
+
* Designed to scale to additional modes (e.g. Ask) without layout
|
|
28
|
+
* changes. Uses `@base-ui/react` Popover for positioning and portal
|
|
29
|
+
* rendering, matching the pattern used by {@link ModelSelector}.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```tsx
|
|
33
|
+
* function ComposerToolbar() {
|
|
34
|
+
* const [mode, setMode] = useState<InteractionModeOption>("agent");
|
|
35
|
+
* return <InteractionModePicker value={mode} onValueChange={setMode} />;
|
|
36
|
+
* }
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export declare function InteractionModePicker({ value, onValueChange, className, disabled, }: InteractionModePickerProps): import("react/jsx-runtime").JSX.Element;
|
|
40
|
+
//# sourceMappingURL=InteractionModePicker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InteractionModePicker.d.ts","sourceRoot":"","sources":["../../src/composer/InteractionModePicker.tsx"],"names":[],"mappings":"AAOA;;;;;;GAMG;AACH,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,MAAM,CAAC;AAkBrD,+CAA+C;AAC/C,MAAM,WAAW,0BAA0B;IACzC,2CAA2C;IAC3C,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAC;IACtC,mDAAmD;IACnD,QAAQ,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAC9D,yDAAyD;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,sCAAsC;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,KAAK,EACL,aAAa,EACb,SAAS,EACT,QAAQ,GACT,EAAE,0BAA0B,2CAmG5B"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useCallback, useState } from "react";
|
|
4
|
+
import { Popover } from "@base-ui/react/popover";
|
|
5
|
+
import { cn } from "@stigmer/theme";
|
|
6
|
+
import { useStigmerPortalContainer } from "../portal-container";
|
|
7
|
+
const OPTIONS = ["agent", "plan"];
|
|
8
|
+
const MODE_META = {
|
|
9
|
+
agent: {
|
|
10
|
+
label: "Agent",
|
|
11
|
+
description: "Full tool access — read, write, and execute",
|
|
12
|
+
},
|
|
13
|
+
plan: {
|
|
14
|
+
label: "Plan",
|
|
15
|
+
description: "Read-only analysis — search and reason only",
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Compact dropdown for choosing the execution interaction mode.
|
|
20
|
+
*
|
|
21
|
+
* Renders a trigger button showing the current mode label with a
|
|
22
|
+
* chevron, and a popover with the available options. Each option
|
|
23
|
+
* shows a label and a short description.
|
|
24
|
+
*
|
|
25
|
+
* Designed to scale to additional modes (e.g. Ask) without layout
|
|
26
|
+
* changes. Uses `@base-ui/react` Popover for positioning and portal
|
|
27
|
+
* rendering, matching the pattern used by {@link ModelSelector}.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```tsx
|
|
31
|
+
* function ComposerToolbar() {
|
|
32
|
+
* const [mode, setMode] = useState<InteractionModeOption>("agent");
|
|
33
|
+
* return <InteractionModePicker value={mode} onValueChange={setMode} />;
|
|
34
|
+
* }
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export function InteractionModePicker({ value, onValueChange, className, disabled, }) {
|
|
38
|
+
const portalContainer = useStigmerPortalContainer();
|
|
39
|
+
const [open, setOpen] = useState(false);
|
|
40
|
+
const select = useCallback((mode) => {
|
|
41
|
+
onValueChange(mode);
|
|
42
|
+
setOpen(false);
|
|
43
|
+
}, [onValueChange]);
|
|
44
|
+
const handleKeyDown = useCallback((e) => {
|
|
45
|
+
const idx = OPTIONS.indexOf(value);
|
|
46
|
+
let next;
|
|
47
|
+
switch (e.key) {
|
|
48
|
+
case "ArrowDown":
|
|
49
|
+
e.preventDefault();
|
|
50
|
+
next = idx < OPTIONS.length - 1 ? idx + 1 : 0;
|
|
51
|
+
break;
|
|
52
|
+
case "ArrowUp":
|
|
53
|
+
e.preventDefault();
|
|
54
|
+
next = idx > 0 ? idx - 1 : OPTIONS.length - 1;
|
|
55
|
+
break;
|
|
56
|
+
case "Escape":
|
|
57
|
+
e.preventDefault();
|
|
58
|
+
setOpen(false);
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
if (next !== undefined) {
|
|
62
|
+
select(OPTIONS[next]);
|
|
63
|
+
}
|
|
64
|
+
}, [value, select]);
|
|
65
|
+
return (_jsxs(Popover.Root, { open: open, onOpenChange: setOpen, children: [_jsxs(Popover.Trigger, { disabled: disabled, className: cn("inline-flex items-center gap-1 rounded-md px-2 py-1.5 text-xs transition-colors", "text-muted-foreground hover:text-foreground hover:bg-accent-hover", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", "disabled:pointer-events-none disabled:opacity-50", className), children: [_jsx("span", { className: "font-medium text-foreground", children: MODE_META[value].label }), _jsx(ChevronIcon, {})] }), _jsx(Popover.Portal, { container: portalContainer, children: _jsx(Popover.Positioner, { sideOffset: 4, children: _jsx(Popover.Popup, { role: "listbox", "aria-label": "Interaction mode", onKeyDown: handleKeyDown, className: cn("z-50 w-56 rounded-lg border border-border bg-popover p-1 shadow-md", "animate-in fade-in-0 zoom-in-95"), children: OPTIONS.map((option) => {
|
|
66
|
+
const meta = MODE_META[option];
|
|
67
|
+
const isActive = value === option;
|
|
68
|
+
return (_jsxs("button", { type: "button", role: "option", "aria-selected": isActive, onClick: () => select(option), className: cn("flex w-full flex-col gap-0.5 rounded-md px-2.5 py-2 text-left transition-colors", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", isActive
|
|
69
|
+
? "bg-accent text-foreground"
|
|
70
|
+
: "text-foreground hover:bg-accent-hover"), children: [_jsx("span", { className: "text-xs font-medium", children: meta.label }), _jsx("span", { className: "text-[0.65rem] leading-snug text-muted-foreground", children: meta.description })] }, option));
|
|
71
|
+
}) }) }) })] }));
|
|
72
|
+
}
|
|
73
|
+
function ChevronIcon() {
|
|
74
|
+
return (_jsx("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", className: "shrink-0 text-muted-foreground", "aria-hidden": "true", children: _jsx("path", { d: "M3 4.5L6 7.5L9 4.5", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) }));
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=InteractionModePicker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InteractionModePicker.js","sourceRoot":"","sources":["../../src/composer/InteractionModePicker.tsx"],"names":[],"mappings":"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"}
|