@stigmer/react 0.4.8 → 0.5.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/action-menu/ActionMenu.d.ts +64 -0
- package/action-menu/ActionMenu.d.ts.map +1 -0
- package/action-menu/ActionMenu.js +78 -0
- package/action-menu/ActionMenu.js.map +1 -0
- package/action-menu/index.d.ts +3 -0
- package/action-menu/index.d.ts.map +1 -0
- package/action-menu/index.js +2 -0
- package/action-menu/index.js.map +1 -0
- package/action-menu/types.d.ts +65 -0
- package/action-menu/types.d.ts.map +1 -0
- package/action-menu/types.js +2 -0
- package/action-menu/types.js.map +1 -0
- package/agent/AgentCreationWizard.d.ts +55 -0
- package/agent/AgentCreationWizard.d.ts.map +1 -0
- package/agent/AgentCreationWizard.js +115 -0
- package/agent/AgentCreationWizard.js.map +1 -0
- package/agent/AgentDetailView.d.ts +77 -9
- package/agent/AgentDetailView.d.ts.map +1 -1
- package/agent/AgentDetailView.js +265 -87
- package/agent/AgentDetailView.js.map +1 -1
- package/agent/index.d.ts +8 -0
- package/agent/index.d.ts.map +1 -1
- package/agent/index.js +4 -0
- package/agent/index.js.map +1 -1
- package/agent/internal/agentToInput.d.ts +12 -0
- package/agent/internal/agentToInput.d.ts.map +1 -0
- package/agent/internal/agentToInput.js +72 -0
- package/agent/internal/agentToInput.js.map +1 -0
- package/agent/steps/CapabilitiesStep.d.ts +16 -0
- package/agent/steps/CapabilitiesStep.d.ts.map +1 -0
- package/agent/steps/CapabilitiesStep.js +80 -0
- package/agent/steps/CapabilitiesStep.js.map +1 -0
- package/agent/steps/IdentityStep.d.ts +18 -0
- package/agent/steps/IdentityStep.d.ts.map +1 -0
- package/agent/steps/IdentityStep.js +43 -0
- package/agent/steps/IdentityStep.js.map +1 -0
- package/agent/steps/ReviewStep.d.ts +23 -0
- package/agent/steps/ReviewStep.d.ts.map +1 -0
- package/agent/steps/ReviewStep.js +73 -0
- package/agent/steps/ReviewStep.js.map +1 -0
- package/agent/steps/types.d.ts +35 -0
- package/agent/steps/types.d.ts.map +1 -0
- package/agent/steps/types.js +16 -0
- package/agent/steps/types.js.map +1 -0
- package/agent/useCreateAgent.d.ts +45 -0
- package/agent/useCreateAgent.d.ts.map +1 -0
- package/agent/useCreateAgent.js +50 -0
- package/agent/useCreateAgent.js.map +1 -0
- package/agent/useUpdateAgent.d.ts +24 -0
- package/agent/useUpdateAgent.d.ts.map +1 -0
- package/agent/useUpdateAgent.js +35 -0
- package/agent/useUpdateAgent.js.map +1 -0
- package/dependency-graph/DependencyGraph.d.ts +37 -0
- package/dependency-graph/DependencyGraph.d.ts.map +1 -0
- package/dependency-graph/DependencyGraph.js +88 -0
- package/dependency-graph/DependencyGraph.js.map +1 -0
- package/dependency-graph/DependencyTreeNode.d.ts +23 -0
- package/dependency-graph/DependencyTreeNode.d.ts.map +1 -0
- package/dependency-graph/DependencyTreeNode.js +99 -0
- package/dependency-graph/DependencyTreeNode.js.map +1 -0
- package/dependency-graph/index.d.ts +4 -0
- package/dependency-graph/index.d.ts.map +1 -0
- package/dependency-graph/index.js +5 -0
- package/dependency-graph/index.js.map +1 -0
- package/dependency-graph/types.d.ts +130 -0
- package/dependency-graph/types.d.ts.map +1 -0
- package/dependency-graph/types.js +2 -0
- package/dependency-graph/types.js.map +1 -0
- package/dependency-graph/useDependencyGraph.d.ts +27 -0
- package/dependency-graph/useDependencyGraph.d.ts.map +1 -0
- package/dependency-graph/useDependencyGraph.js +129 -0
- package/dependency-graph/useDependencyGraph.js.map +1 -0
- package/empty-state/EmptyState.d.ts +29 -0
- package/empty-state/EmptyState.d.ts.map +1 -0
- package/empty-state/EmptyState.js +45 -0
- package/empty-state/EmptyState.js.map +1 -0
- package/empty-state/index.d.ts +4 -0
- package/empty-state/index.d.ts.map +1 -0
- package/empty-state/index.js +3 -0
- package/empty-state/index.js.map +1 -0
- package/empty-state/types.d.ts +73 -0
- package/empty-state/types.d.ts.map +1 -0
- package/empty-state/types.js +2 -0
- package/empty-state/types.js.map +1 -0
- package/empty-state/useEmptyState.d.ts +18 -0
- package/empty-state/useEmptyState.d.ts.map +1 -0
- package/empty-state/useEmptyState.js +72 -0
- package/empty-state/useEmptyState.js.map +1 -0
- package/feedback/StigmerToaster.d.ts +18 -0
- package/feedback/StigmerToaster.d.ts.map +1 -0
- package/feedback/StigmerToaster.js +31 -0
- package/feedback/StigmerToaster.js.map +1 -0
- package/feedback/index.d.ts +4 -0
- package/feedback/index.d.ts.map +1 -0
- package/feedback/index.js +3 -0
- package/feedback/index.js.map +1 -0
- package/feedback/toast.d.ts +14 -0
- package/feedback/toast.d.ts.map +1 -0
- package/feedback/toast.js +14 -0
- package/feedback/toast.js.map +1 -0
- package/feedback/types.d.ts +4 -0
- package/feedback/types.d.ts.map +1 -0
- package/feedback/types.js +2 -0
- package/feedback/types.js.map +1 -0
- package/index.d.ts +30 -10
- package/index.d.ts.map +1 -1
- package/index.js +29 -9
- package/index.js.map +1 -1
- package/inline-edit/InlineEditImage.d.ts +20 -0
- package/inline-edit/InlineEditImage.d.ts.map +1 -0
- package/inline-edit/InlineEditImage.js +85 -0
- package/inline-edit/InlineEditImage.js.map +1 -0
- package/inline-edit/InlineEditKeyValue.d.ts +29 -0
- package/inline-edit/InlineEditKeyValue.d.ts.map +1 -0
- package/inline-edit/InlineEditKeyValue.js +67 -0
- package/inline-edit/InlineEditKeyValue.js.map +1 -0
- package/inline-edit/InlineEditResourceList.d.ts +34 -0
- package/inline-edit/InlineEditResourceList.d.ts.map +1 -0
- package/inline-edit/InlineEditResourceList.js +99 -0
- package/inline-edit/InlineEditResourceList.js.map +1 -0
- package/inline-edit/InlineEditSelect.d.ts +18 -0
- package/inline-edit/InlineEditSelect.d.ts.map +1 -0
- package/inline-edit/InlineEditSelect.js +54 -0
- package/inline-edit/InlineEditSelect.js.map +1 -0
- package/inline-edit/InlineEditText.d.ts +23 -0
- package/inline-edit/InlineEditText.d.ts.map +1 -0
- package/inline-edit/InlineEditText.js +79 -0
- package/inline-edit/InlineEditText.js.map +1 -0
- package/inline-edit/InlineEditTextarea.d.ts +22 -0
- package/inline-edit/InlineEditTextarea.d.ts.map +1 -0
- package/inline-edit/InlineEditTextarea.js +83 -0
- package/inline-edit/InlineEditTextarea.js.map +1 -0
- package/inline-edit/index.d.ts +16 -0
- package/inline-edit/index.d.ts.map +1 -0
- package/inline-edit/index.js +8 -0
- package/inline-edit/index.js.map +1 -0
- package/inline-edit/types.d.ts +42 -0
- package/inline-edit/types.d.ts.map +1 -0
- package/inline-edit/types.js +2 -0
- package/inline-edit/types.js.map +1 -0
- package/inline-edit/useInlineFieldSave.d.ts +23 -0
- package/inline-edit/useInlineFieldSave.d.ts.map +1 -0
- package/inline-edit/useInlineFieldSave.js +44 -0
- package/inline-edit/useInlineFieldSave.js.map +1 -0
- package/internal/Tabs.d.ts +4 -38
- package/internal/Tabs.d.ts.map +1 -1
- package/internal/Tabs.js +3 -62
- package/internal/Tabs.js.map +1 -1
- package/library/ImportResourceDialog.d.ts +43 -0
- package/library/ImportResourceDialog.d.ts.map +1 -0
- package/library/ImportResourceDialog.js +90 -0
- package/library/ImportResourceDialog.js.map +1 -0
- package/library/index.d.ts +7 -4
- package/library/index.d.ts.map +1 -1
- package/library/index.js +4 -2
- package/library/index.js.map +1 -1
- package/library/serialize-resource-yaml.d.ts +53 -0
- package/library/serialize-resource-yaml.d.ts.map +1 -1
- package/library/serialize-resource-yaml.js +275 -0
- package/library/serialize-resource-yaml.js.map +1 -1
- package/library/useExportResource.d.ts +56 -0
- package/library/useExportResource.d.ts.map +1 -0
- package/library/useExportResource.js +137 -0
- package/library/useExportResource.js.map +1 -0
- package/library/useImportResource.d.ts +84 -0
- package/library/useImportResource.d.ts.map +1 -0
- package/library/useImportResource.js +188 -0
- package/library/useImportResource.js.map +1 -0
- package/mcp-server/McpServerCreationWizard.d.ts +55 -0
- package/mcp-server/McpServerCreationWizard.d.ts.map +1 -0
- package/mcp-server/McpServerCreationWizard.js +121 -0
- package/mcp-server/McpServerCreationWizard.js.map +1 -0
- package/mcp-server/McpServerDetailView.d.ts +21 -1
- package/mcp-server/McpServerDetailView.d.ts.map +1 -1
- package/mcp-server/McpServerDetailView.js +113 -20
- package/mcp-server/McpServerDetailView.js.map +1 -1
- package/mcp-server/index.d.ts +8 -0
- package/mcp-server/index.d.ts.map +1 -1
- package/mcp-server/index.js +4 -0
- package/mcp-server/index.js.map +1 -1
- package/mcp-server/internal/mcpServerToInput.d.ts +12 -0
- package/mcp-server/internal/mcpServerToInput.d.ts.map +1 -0
- package/mcp-server/internal/mcpServerToInput.js +81 -0
- package/mcp-server/internal/mcpServerToInput.js.map +1 -0
- package/mcp-server/steps/EnvironmentAuthStep.d.ts +15 -0
- package/mcp-server/steps/EnvironmentAuthStep.d.ts.map +1 -0
- package/mcp-server/steps/EnvironmentAuthStep.js +55 -0
- package/mcp-server/steps/EnvironmentAuthStep.js.map +1 -0
- package/mcp-server/steps/IdentityTransportStep.d.ts +19 -0
- package/mcp-server/steps/IdentityTransportStep.d.ts.map +1 -0
- package/mcp-server/steps/IdentityTransportStep.js +73 -0
- package/mcp-server/steps/IdentityTransportStep.js.map +1 -0
- package/mcp-server/steps/ReviewStep.d.ts +23 -0
- package/mcp-server/steps/ReviewStep.d.ts.map +1 -0
- package/mcp-server/steps/ReviewStep.js +137 -0
- package/mcp-server/steps/ReviewStep.js.map +1 -0
- package/mcp-server/steps/types.d.ts +56 -0
- package/mcp-server/steps/types.d.ts.map +1 -0
- package/mcp-server/steps/types.js +27 -0
- package/mcp-server/steps/types.js.map +1 -0
- package/mcp-server/useCreateMcpServer.d.ts +45 -0
- package/mcp-server/useCreateMcpServer.d.ts.map +1 -0
- package/mcp-server/useCreateMcpServer.js +50 -0
- package/mcp-server/useCreateMcpServer.js.map +1 -0
- package/mcp-server/useUpdateMcpServer.d.ts +24 -0
- package/mcp-server/useUpdateMcpServer.d.ts.map +1 -0
- package/mcp-server/useUpdateMcpServer.js +35 -0
- package/mcp-server/useUpdateMcpServer.js.map +1 -0
- package/package.json +8 -4
- package/resource-creation/CreationPicker.d.ts +60 -0
- package/resource-creation/CreationPicker.d.ts.map +1 -0
- package/resource-creation/CreationPicker.js +74 -0
- package/resource-creation/CreationPicker.js.map +1 -0
- package/resource-creation/StepIndicator.d.ts +28 -0
- package/resource-creation/StepIndicator.d.ts.map +1 -0
- package/resource-creation/StepIndicator.js +40 -0
- package/resource-creation/StepIndicator.js.map +1 -0
- package/resource-creation/TemplateCard.d.ts +24 -0
- package/resource-creation/TemplateCard.d.ts.map +1 -0
- package/resource-creation/TemplateCard.js +68 -0
- package/resource-creation/TemplateCard.js.map +1 -0
- package/resource-creation/TemplateGallery.d.ts +43 -0
- package/resource-creation/TemplateGallery.d.ts.map +1 -0
- package/resource-creation/TemplateGallery.js +78 -0
- package/resource-creation/TemplateGallery.js.map +1 -0
- package/resource-creation/WizardNav.d.ts +31 -0
- package/resource-creation/WizardNav.d.ts.map +1 -0
- package/resource-creation/WizardNav.js +29 -0
- package/resource-creation/WizardNav.js.map +1 -0
- package/resource-creation/WizardShell.d.ts +41 -0
- package/resource-creation/WizardShell.d.ts.map +1 -0
- package/resource-creation/WizardShell.js +55 -0
- package/resource-creation/WizardShell.js.map +1 -0
- package/resource-creation/index.d.ts +21 -0
- package/resource-creation/index.d.ts.map +1 -0
- package/resource-creation/index.js +14 -0
- package/resource-creation/index.js.map +1 -0
- package/resource-creation/templates/agent-templates.d.ts +15 -0
- package/resource-creation/templates/agent-templates.d.ts.map +1 -0
- package/resource-creation/templates/agent-templates.js +148 -0
- package/resource-creation/templates/agent-templates.js.map +1 -0
- package/resource-creation/templates/index.d.ts +5 -0
- package/resource-creation/templates/index.d.ts.map +1 -0
- package/resource-creation/templates/index.js +5 -0
- package/resource-creation/templates/index.js.map +1 -0
- package/resource-creation/templates/mcp-server-templates.d.ts +15 -0
- package/resource-creation/templates/mcp-server-templates.d.ts.map +1 -0
- package/resource-creation/templates/mcp-server-templates.js +92 -0
- package/resource-creation/templates/mcp-server-templates.js.map +1 -0
- package/resource-creation/templates/types.d.ts +48 -0
- package/resource-creation/templates/types.d.ts.map +1 -0
- package/resource-creation/templates/types.js +16 -0
- package/resource-creation/templates/types.js.map +1 -0
- package/resource-creation/types.d.ts +88 -0
- package/resource-creation/types.d.ts.map +1 -0
- package/resource-creation/types.js +2 -0
- package/resource-creation/types.js.map +1 -0
- package/resource-creation/useTemplateFilter.d.ts +43 -0
- package/resource-creation/useTemplateFilter.d.ts.map +1 -0
- package/resource-creation/useTemplateFilter.js +73 -0
- package/resource-creation/useTemplateFilter.js.map +1 -0
- package/resource-creation/useWizardState.d.ts +67 -0
- package/resource-creation/useWizardState.d.ts.map +1 -0
- package/resource-creation/useWizardState.js +143 -0
- package/resource-creation/useWizardState.js.map +1 -0
- package/resource-detail/ConfirmDialog.d.ts +44 -0
- package/resource-detail/ConfirmDialog.d.ts.map +1 -0
- package/resource-detail/ConfirmDialog.js +62 -0
- package/resource-detail/ConfirmDialog.js.map +1 -0
- package/resource-detail/ResourceActionBar.d.ts +42 -0
- package/resource-detail/ResourceActionBar.d.ts.map +1 -0
- package/resource-detail/ResourceActionBar.js +64 -0
- package/resource-detail/ResourceActionBar.js.map +1 -0
- package/resource-detail/ResourceDetailShell.d.ts +36 -0
- package/resource-detail/ResourceDetailShell.d.ts.map +1 -0
- package/resource-detail/ResourceDetailShell.js +65 -0
- package/resource-detail/ResourceDetailShell.js.map +1 -0
- package/resource-detail/Section.d.ts +18 -0
- package/resource-detail/Section.d.ts.map +1 -0
- package/resource-detail/Section.js +18 -0
- package/resource-detail/Section.js.map +1 -0
- package/resource-detail/index.d.ts +15 -0
- package/resource-detail/index.d.ts.map +1 -0
- package/resource-detail/index.js +10 -0
- package/resource-detail/index.js.map +1 -0
- package/resource-detail/types.d.ts +146 -0
- package/resource-detail/types.d.ts.map +1 -0
- package/resource-detail/types.js +2 -0
- package/resource-detail/types.js.map +1 -0
- package/resource-detail/useConfirmAction.d.ts +41 -0
- package/resource-detail/useConfirmAction.d.ts.map +1 -0
- package/resource-detail/useConfirmAction.js +30 -0
- package/resource-detail/useConfirmAction.js.map +1 -0
- package/resource-detail/useCopyResource.d.ts +28 -0
- package/resource-detail/useCopyResource.d.ts.map +1 -0
- package/resource-detail/useCopyResource.js +46 -0
- package/resource-detail/useCopyResource.js.map +1 -0
- package/resource-detail/useDeleteResource.d.ts +40 -0
- package/resource-detail/useDeleteResource.d.ts.map +1 -0
- package/resource-detail/useDeleteResource.js +83 -0
- package/resource-detail/useDeleteResource.js.map +1 -0
- package/resource-detail/useDetailTabs.d.ts +46 -0
- package/resource-detail/useDetailTabs.d.ts.map +1 -0
- package/resource-detail/useDetailTabs.js +47 -0
- package/resource-detail/useDetailTabs.js.map +1 -0
- package/resource-workbench/components/BulkActionBar.d.ts +36 -0
- package/resource-workbench/components/BulkActionBar.d.ts.map +1 -0
- package/resource-workbench/components/BulkActionBar.js +35 -0
- package/resource-workbench/components/BulkActionBar.js.map +1 -0
- package/resource-workbench/components/ColumnHeader.d.ts +23 -0
- package/resource-workbench/components/ColumnHeader.d.ts.map +1 -0
- package/resource-workbench/components/ColumnHeader.js +25 -0
- package/resource-workbench/components/ColumnHeader.js.map +1 -0
- package/resource-workbench/components/FilterBar.d.ts +33 -0
- package/resource-workbench/components/FilterBar.d.ts.map +1 -0
- package/resource-workbench/components/FilterBar.js +72 -0
- package/resource-workbench/components/FilterBar.js.map +1 -0
- package/resource-workbench/components/ResourceAvatar.d.ts +29 -0
- package/resource-workbench/components/ResourceAvatar.d.ts.map +1 -0
- package/resource-workbench/components/ResourceAvatar.js +51 -0
- package/resource-workbench/components/ResourceAvatar.js.map +1 -0
- package/resource-workbench/components/ResourceCards.d.ts +39 -0
- package/resource-workbench/components/ResourceCards.d.ts.map +1 -0
- package/resource-workbench/components/ResourceCards.js +41 -0
- package/resource-workbench/components/ResourceCards.js.map +1 -0
- package/resource-workbench/components/ResourceInspector.d.ts +26 -0
- package/resource-workbench/components/ResourceInspector.d.ts.map +1 -0
- package/resource-workbench/components/ResourceInspector.js +22 -0
- package/resource-workbench/components/ResourceInspector.js.map +1 -0
- package/resource-workbench/components/ResourceList.d.ts +39 -0
- package/resource-workbench/components/ResourceList.d.ts.map +1 -0
- package/resource-workbench/components/ResourceList.js +41 -0
- package/resource-workbench/components/ResourceList.js.map +1 -0
- package/resource-workbench/components/ResourceTable.d.ts +47 -0
- package/resource-workbench/components/ResourceTable.d.ts.map +1 -0
- package/resource-workbench/components/ResourceTable.js +78 -0
- package/resource-workbench/components/ResourceTable.js.map +1 -0
- package/resource-workbench/components/ResourceWorkbench.d.ts +131 -0
- package/resource-workbench/components/ResourceWorkbench.d.ts.map +1 -0
- package/resource-workbench/components/ResourceWorkbench.js +170 -0
- package/resource-workbench/components/ResourceWorkbench.js.map +1 -0
- package/resource-workbench/components/SelectionCheckbox.d.ts +24 -0
- package/resource-workbench/components/SelectionCheckbox.d.ts.map +1 -0
- package/resource-workbench/components/SelectionCheckbox.js +16 -0
- package/resource-workbench/components/SelectionCheckbox.js.map +1 -0
- package/resource-workbench/components/StatusBadge.d.ts +31 -0
- package/resource-workbench/components/StatusBadge.d.ts.map +1 -0
- package/resource-workbench/components/StatusBadge.js +75 -0
- package/resource-workbench/components/StatusBadge.js.map +1 -0
- package/resource-workbench/components/ViewSwitcher.d.ts +21 -0
- package/resource-workbench/components/ViewSwitcher.d.ts.map +1 -0
- package/resource-workbench/components/ViewSwitcher.js +37 -0
- package/resource-workbench/components/ViewSwitcher.js.map +1 -0
- package/resource-workbench/hooks/useResourceCollection.d.ts +93 -0
- package/resource-workbench/hooks/useResourceCollection.d.ts.map +1 -0
- package/resource-workbench/hooks/useResourceCollection.js +133 -0
- package/resource-workbench/hooks/useResourceCollection.js.map +1 -0
- package/resource-workbench/hooks/useResourceFilters.d.ts +73 -0
- package/resource-workbench/hooks/useResourceFilters.d.ts.map +1 -0
- package/resource-workbench/hooks/useResourceFilters.js +105 -0
- package/resource-workbench/hooks/useResourceFilters.js.map +1 -0
- package/resource-workbench/hooks/useResourceSelection.d.ts +44 -0
- package/resource-workbench/hooks/useResourceSelection.d.ts.map +1 -0
- package/resource-workbench/hooks/useResourceSelection.js +123 -0
- package/resource-workbench/hooks/useResourceSelection.js.map +1 -0
- package/resource-workbench/hooks/useViewPreference.d.ts +32 -0
- package/resource-workbench/hooks/useViewPreference.d.ts.map +1 -0
- package/resource-workbench/hooks/useViewPreference.js +60 -0
- package/resource-workbench/hooks/useViewPreference.js.map +1 -0
- package/resource-workbench/index.d.ts +34 -0
- package/resource-workbench/index.d.ts.map +1 -0
- package/resource-workbench/index.js +19 -0
- package/resource-workbench/index.js.map +1 -0
- package/resource-workbench/types.d.ts +165 -0
- package/resource-workbench/types.d.ts.map +1 -0
- package/resource-workbench/types.js +2 -0
- package/resource-workbench/types.js.map +1 -0
- package/runner/RunnerDetailView.d.ts +44 -0
- package/runner/RunnerDetailView.d.ts.map +1 -0
- package/runner/RunnerDetailView.js +154 -0
- package/runner/RunnerDetailView.js.map +1 -0
- package/runner/RunnerListPanel.d.ts +26 -1
- package/runner/RunnerListPanel.d.ts.map +1 -1
- package/runner/RunnerListPanel.js +68 -46
- package/runner/RunnerListPanel.js.map +1 -1
- package/runner/index.d.ts +7 -1
- package/runner/index.d.ts.map +1 -1
- package/runner/index.js +3 -0
- package/runner/index.js.map +1 -1
- package/runner/shared.d.ts +31 -0
- package/runner/shared.d.ts.map +1 -0
- package/runner/shared.js +55 -0
- package/runner/shared.js.map +1 -0
- package/runner/useRunner.d.ts +37 -0
- package/runner/useRunner.d.ts.map +1 -0
- package/runner/useRunner.js +24 -0
- package/runner/useRunner.js.map +1 -0
- package/session/__tests__/group-sessions.test.js +3 -3
- package/session/__tests__/group-sessions.test.js.map +1 -1
- package/skill/SkillDetailView.d.ts +70 -7
- package/skill/SkillDetailView.d.ts.map +1 -1
- package/skill/SkillDetailView.js +107 -39
- package/skill/SkillDetailView.js.map +1 -1
- package/skill/SkillDiffDialog.d.ts +42 -0
- package/skill/SkillDiffDialog.d.ts.map +1 -0
- package/skill/SkillDiffDialog.js +72 -0
- package/skill/SkillDiffDialog.js.map +1 -0
- package/skill/SkillFileBrowser.d.ts +31 -0
- package/skill/SkillFileBrowser.d.ts.map +1 -0
- package/skill/SkillFileBrowser.js +105 -0
- package/skill/SkillFileBrowser.js.map +1 -0
- package/skill/SkillUploader.d.ts +39 -0
- package/skill/SkillUploader.d.ts.map +1 -0
- package/skill/SkillUploader.js +141 -0
- package/skill/SkillUploader.js.map +1 -0
- package/skill/index.d.ts +18 -0
- package/skill/index.d.ts.map +1 -1
- package/skill/index.js +9 -0
- package/skill/index.js.map +1 -1
- package/skill/internal/computeArtifactHash.d.ts +9 -0
- package/skill/internal/computeArtifactHash.d.ts.map +1 -0
- package/skill/internal/computeArtifactHash.js +14 -0
- package/skill/internal/computeArtifactHash.js.map +1 -0
- package/skill/internal/fetchAndUnpackArtifact.d.ts +16 -0
- package/skill/internal/fetchAndUnpackArtifact.d.ts.map +1 -0
- package/skill/internal/fetchAndUnpackArtifact.js +34 -0
- package/skill/internal/fetchAndUnpackArtifact.js.map +1 -0
- package/skill/usePushSkill.d.ts +53 -0
- package/skill/usePushSkill.d.ts.map +1 -0
- package/skill/usePushSkill.js +57 -0
- package/skill/usePushSkill.js.map +1 -0
- package/skill/useSkillArtifact.d.ts +37 -0
- package/skill/useSkillArtifact.d.ts.map +1 -0
- package/skill/useSkillArtifact.js +76 -0
- package/skill/useSkillArtifact.js.map +1 -0
- package/skill/useSkillDiff.d.ts +31 -0
- package/skill/useSkillDiff.d.ts.map +1 -0
- package/skill/useSkillDiff.js +97 -0
- package/skill/useSkillDiff.js.map +1 -0
- package/skill/useSkillDuplicateCheck.d.ts +34 -0
- package/skill/useSkillDuplicateCheck.d.ts.map +1 -0
- package/skill/useSkillDuplicateCheck.js +58 -0
- package/skill/useSkillDuplicateCheck.js.map +1 -0
- package/skill/useSkillUpload.d.ts +69 -0
- package/skill/useSkillUpload.d.ts.map +1 -0
- package/skill/useSkillUpload.js +157 -0
- package/skill/useSkillUpload.js.map +1 -0
- package/skill/useSkillVersions.d.ts +46 -0
- package/skill/useSkillVersions.d.ts.map +1 -0
- package/skill/useSkillVersions.js +104 -0
- package/skill/useSkillVersions.js.map +1 -0
- package/src/action-menu/ActionMenu.tsx +151 -0
- package/src/action-menu/index.ts +9 -0
- package/src/action-menu/types.ts +70 -0
- package/src/agent/AgentCreationWizard.tsx +201 -0
- package/src/agent/AgentDetailView.tsx +817 -321
- package/src/agent/index.ts +16 -0
- package/src/agent/internal/agentToInput.ts +95 -0
- package/src/agent/steps/CapabilitiesStep.tsx +363 -0
- package/src/agent/steps/IdentityStep.tsx +259 -0
- package/src/agent/steps/ReviewStep.tsx +211 -0
- package/src/agent/steps/types.ts +53 -0
- package/src/agent/useCreateAgent.ts +76 -0
- package/src/agent/useUpdateAgent.ts +55 -0
- package/src/dependency-graph/DependencyGraph.tsx +153 -0
- package/src/dependency-graph/DependencyTreeNode.tsx +282 -0
- package/src/dependency-graph/index.ts +15 -0
- package/src/dependency-graph/types.ts +131 -0
- package/src/dependency-graph/useDependencyGraph.ts +158 -0
- package/src/empty-state/EmptyState.tsx +90 -0
- package/src/empty-state/index.ts +9 -0
- package/src/empty-state/types.ts +81 -0
- package/src/empty-state/useEmptyState.ts +85 -0
- package/src/feedback/StigmerToaster.tsx +45 -0
- package/src/feedback/index.ts +3 -0
- package/src/feedback/toast.ts +13 -0
- package/src/feedback/types.ts +7 -0
- package/src/index.ts +270 -8
- package/src/inline-edit/InlineEditImage.tsx +208 -0
- package/src/inline-edit/InlineEditKeyValue.tsx +278 -0
- package/src/inline-edit/InlineEditResourceList.tsx +325 -0
- package/src/inline-edit/InlineEditSelect.tsx +150 -0
- package/src/inline-edit/InlineEditText.tsx +211 -0
- package/src/inline-edit/InlineEditTextarea.tsx +209 -0
- package/src/inline-edit/index.ts +28 -0
- package/src/inline-edit/types.ts +47 -0
- package/src/inline-edit/useInlineFieldSave.ts +62 -0
- package/src/internal/Tabs.tsx +4 -164
- package/src/library/ImportResourceDialog.tsx +227 -0
- package/src/library/index.ts +18 -8
- package/src/library/serialize-resource-yaml.ts +356 -0
- package/src/library/useExportResource.ts +183 -0
- package/src/library/useImportResource.ts +253 -0
- package/src/mcp-server/McpServerCreationWizard.tsx +206 -0
- package/src/mcp-server/McpServerDetailView.tsx +392 -105
- package/src/mcp-server/index.ts +16 -0
- package/src/mcp-server/internal/mcpServerToInput.ts +95 -0
- package/src/mcp-server/steps/EnvironmentAuthStep.tsx +462 -0
- package/src/mcp-server/steps/IdentityTransportStep.tsx +531 -0
- package/src/mcp-server/steps/ReviewStep.tsx +297 -0
- package/src/mcp-server/steps/types.ts +85 -0
- package/src/mcp-server/useCreateMcpServer.ts +76 -0
- package/src/mcp-server/useUpdateMcpServer.ts +55 -0
- package/src/resource-creation/CreationPicker.tsx +292 -0
- package/src/resource-creation/StepIndicator.tsx +156 -0
- package/src/resource-creation/TemplateCard.tsx +143 -0
- package/src/resource-creation/TemplateGallery.tsx +222 -0
- package/src/resource-creation/WizardNav.tsx +163 -0
- package/src/resource-creation/WizardShell.tsx +124 -0
- package/src/resource-creation/index.ts +45 -0
- package/src/resource-creation/templates/agent-templates.ts +160 -0
- package/src/resource-creation/templates/index.ts +7 -0
- package/src/resource-creation/templates/mcp-server-templates.ts +106 -0
- package/src/resource-creation/templates/types.ts +64 -0
- package/src/resource-creation/types.ts +105 -0
- package/src/resource-creation/useTemplateFilter.ts +117 -0
- package/src/resource-creation/useWizardState.ts +223 -0
- package/src/resource-detail/ConfirmDialog.tsx +127 -0
- package/src/resource-detail/ResourceActionBar.tsx +157 -0
- package/src/resource-detail/ResourceDetailShell.tsx +184 -0
- package/src/resource-detail/Section.tsx +78 -0
- package/src/resource-detail/index.ts +34 -0
- package/src/resource-detail/types.ts +177 -0
- package/src/resource-detail/useConfirmAction.ts +70 -0
- package/src/resource-detail/useCopyResource.ts +74 -0
- package/src/resource-detail/useDeleteResource.ts +110 -0
- package/src/resource-detail/useDetailTabs.ts +93 -0
- package/src/resource-workbench/components/BulkActionBar.tsx +122 -0
- package/src/resource-workbench/components/ColumnHeader.tsx +105 -0
- package/src/resource-workbench/components/FilterBar.tsx +173 -0
- package/src/resource-workbench/components/ResourceAvatar.tsx +109 -0
- package/src/resource-workbench/components/ResourceCards.tsx +126 -0
- package/src/resource-workbench/components/ResourceInspector.tsx +88 -0
- package/src/resource-workbench/components/ResourceList.tsx +121 -0
- package/src/resource-workbench/components/ResourceTable.tsx +222 -0
- package/src/resource-workbench/components/ResourceWorkbench.tsx +695 -0
- package/src/resource-workbench/components/SelectionCheckbox.tsx +52 -0
- package/src/resource-workbench/components/StatusBadge.tsx +119 -0
- package/src/resource-workbench/components/ViewSwitcher.tsx +135 -0
- package/src/resource-workbench/hooks/useResourceCollection.ts +261 -0
- package/src/resource-workbench/hooks/useResourceFilters.ts +216 -0
- package/src/resource-workbench/hooks/useResourceSelection.ts +178 -0
- package/src/resource-workbench/hooks/useViewPreference.ts +75 -0
- package/src/resource-workbench/index.ts +73 -0
- package/src/resource-workbench/types.ts +220 -0
- package/src/runner/RunnerDetailView.tsx +410 -0
- package/src/runner/RunnerListPanel.tsx +126 -111
- package/src/runner/index.ts +13 -1
- package/src/runner/shared.tsx +124 -0
- package/src/runner/useRunner.ts +59 -0
- package/src/session/__tests__/group-sessions.test.ts +5 -3
- package/src/skill/SkillDetailView.tsx +371 -165
- package/src/skill/SkillDiffDialog.tsx +213 -0
- package/src/skill/SkillFileBrowser.tsx +289 -0
- package/src/skill/SkillUploader.tsx +481 -0
- package/src/skill/index.ts +34 -0
- package/src/skill/internal/computeArtifactHash.ts +13 -0
- package/src/skill/internal/fetchAndUnpackArtifact.ts +48 -0
- package/src/skill/usePushSkill.ts +101 -0
- package/src/skill/useSkillArtifact.ts +107 -0
- package/src/skill/useSkillDiff.ts +128 -0
- package/src/skill/useSkillDuplicateCheck.ts +92 -0
- package/src/skill/useSkillUpload.ts +231 -0
- package/src/skill/useSkillVersions.ts +165 -0
- package/src/styles.css +28 -0
- package/src/tabs/Tabs.tsx +184 -0
- package/src/tabs/index.ts +2 -0
- package/src/version-history/DiffFileList.tsx +111 -0
- package/src/version-history/DiffSummary.tsx +61 -0
- package/src/version-history/DiffViewer.tsx +163 -0
- package/src/version-history/MultiFileDiffView.tsx +114 -0
- package/src/version-history/VersionTimeline.tsx +232 -0
- package/src/version-history/VersionTimelineEntry.tsx +254 -0
- package/src/version-history/computeDiff.ts +61 -0
- package/src/version-history/computeMultiFileDiff.ts +97 -0
- package/src/version-history/index.ts +22 -0
- package/src/version-history/types.ts +129 -0
- package/styles.css +1 -1
- package/tabs/Tabs.d.ts +58 -0
- package/tabs/Tabs.d.ts.map +1 -0
- package/tabs/Tabs.js +80 -0
- package/tabs/Tabs.js.map +1 -0
- package/tabs/index.d.ts +3 -0
- package/tabs/index.d.ts.map +1 -0
- package/tabs/index.js +2 -0
- package/tabs/index.js.map +1 -0
- package/version-history/DiffFileList.d.ts +22 -0
- package/version-history/DiffFileList.d.ts.map +1 -0
- package/version-history/DiffFileList.js +37 -0
- package/version-history/DiffFileList.js.map +1 -0
- package/version-history/DiffSummary.d.ts +21 -0
- package/version-history/DiffSummary.d.ts.map +1 -0
- package/version-history/DiffSummary.js +16 -0
- package/version-history/DiffSummary.js.map +1 -0
- package/version-history/DiffViewer.d.ts +31 -0
- package/version-history/DiffViewer.d.ts.map +1 -0
- package/version-history/DiffViewer.js +60 -0
- package/version-history/DiffViewer.js.map +1 -0
- package/version-history/MultiFileDiffView.d.ts +30 -0
- package/version-history/MultiFileDiffView.d.ts.map +1 -0
- package/version-history/MultiFileDiffView.js +40 -0
- package/version-history/MultiFileDiffView.js.map +1 -0
- package/version-history/VersionTimeline.d.ts +29 -0
- package/version-history/VersionTimeline.d.ts.map +1 -0
- package/version-history/VersionTimeline.js +87 -0
- package/version-history/VersionTimeline.js.map +1 -0
- package/version-history/VersionTimelineEntry.d.ts +22 -0
- package/version-history/VersionTimelineEntry.d.ts.map +1 -0
- package/version-history/VersionTimelineEntry.js +98 -0
- package/version-history/VersionTimelineEntry.js.map +1 -0
- package/version-history/computeDiff.d.ts +16 -0
- package/version-history/computeDiff.d.ts.map +1 -0
- package/version-history/computeDiff.js +54 -0
- package/version-history/computeDiff.js.map +1 -0
- package/version-history/computeMultiFileDiff.d.ts +15 -0
- package/version-history/computeMultiFileDiff.d.ts.map +1 -0
- package/version-history/computeMultiFileDiff.js +83 -0
- package/version-history/computeMultiFileDiff.js.map +1 -0
- package/version-history/index.d.ts +14 -0
- package/version-history/index.d.ts.map +1 -0
- package/version-history/index.js +9 -0
- package/version-history/index.js.map +1 -0
- package/version-history/types.d.ts +106 -0
- package/version-history/types.d.ts.map +1 -0
- package/version-history/types.js +2 -0
- package/version-history/types.js.map +1 -0
- package/library/ResourceListView.d.ts +0 -174
- package/library/ResourceListView.d.ts.map +0 -1
- package/library/ResourceListView.js +0 -318
- package/library/ResourceListView.js.map +0 -1
- package/src/library/ResourceListView.tsx +0 -956
|
@@ -22,6 +22,8 @@ import {
|
|
|
22
22
|
phaseDotColor,
|
|
23
23
|
PHASE_SORT_ORDER,
|
|
24
24
|
} from "./phase";
|
|
25
|
+
import { EmptyState } from "../empty-state";
|
|
26
|
+
import { RunnerIcon, PhaseBadge, formatRelativeTime } from "./shared";
|
|
25
27
|
|
|
26
28
|
const SYSTEM_MANAGED_LABEL = "stigmer.ai/system-managed";
|
|
27
29
|
const TRANSITIONAL_POLL_MS = 5_000;
|
|
@@ -35,6 +37,9 @@ type ConfirmingState = {
|
|
|
35
37
|
// Public API
|
|
36
38
|
// ---------------------------------------------------------------------------
|
|
37
39
|
|
|
40
|
+
/** Sort key for the runner list. */
|
|
41
|
+
export type RunnerSortKey = "phase" | "name" | "heartbeat" | "executions";
|
|
42
|
+
|
|
38
43
|
/** Props for {@link RunnerListPanel}. */
|
|
39
44
|
export interface RunnerListPanelProps {
|
|
40
45
|
/** Organization slug to scope the runner list. */
|
|
@@ -50,6 +55,28 @@ export interface RunnerListPanelProps {
|
|
|
50
55
|
* @default false
|
|
51
56
|
*/
|
|
52
57
|
readonly includeSystemManaged?: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Restrict the list to runners in the specified phases.
|
|
60
|
+
*
|
|
61
|
+
* When provided, only runners whose phase is in this array are shown.
|
|
62
|
+
* When omitted or empty, all phases are included.
|
|
63
|
+
*/
|
|
64
|
+
readonly filterPhases?: readonly RunnerPhase[];
|
|
65
|
+
/**
|
|
66
|
+
* Client-side text filter. When provided, only runners whose name
|
|
67
|
+
* or hostname contains this substring (case-insensitive) are shown.
|
|
68
|
+
*/
|
|
69
|
+
readonly searchQuery?: string;
|
|
70
|
+
/**
|
|
71
|
+
* Sort key for ordering the runner list.
|
|
72
|
+
* @default "phase"
|
|
73
|
+
*/
|
|
74
|
+
readonly sortBy?: RunnerSortKey;
|
|
75
|
+
/**
|
|
76
|
+
* Sort direction.
|
|
77
|
+
* @default "asc"
|
|
78
|
+
*/
|
|
79
|
+
readonly sortDirection?: "asc" | "desc";
|
|
53
80
|
/** Expose refetch so parent components can trigger a list refresh. */
|
|
54
81
|
readonly onRefetchRef?: (refetch: () => void) => void;
|
|
55
82
|
/**
|
|
@@ -106,6 +133,10 @@ export interface RunnerListPanelProps {
|
|
|
106
133
|
export function RunnerListPanel({
|
|
107
134
|
org,
|
|
108
135
|
includeSystemManaged = false,
|
|
136
|
+
filterPhases,
|
|
137
|
+
searchQuery,
|
|
138
|
+
sortBy = "phase",
|
|
139
|
+
sortDirection = "asc",
|
|
109
140
|
onRefetchRef,
|
|
110
141
|
onStopped,
|
|
111
142
|
onDeleted,
|
|
@@ -130,10 +161,33 @@ export function RunnerListPanel({
|
|
|
130
161
|
onRefetchRef(refetch);
|
|
131
162
|
}
|
|
132
163
|
|
|
133
|
-
const
|
|
134
|
-
(
|
|
135
|
-
|
|
136
|
-
|
|
164
|
+
const hasActiveFilters =
|
|
165
|
+
(filterPhases != null && filterPhases.length > 0) ||
|
|
166
|
+
(searchQuery != null && searchQuery.trim().length > 0);
|
|
167
|
+
|
|
168
|
+
const sorted = useMemo(() => {
|
|
169
|
+
let result = [...runners];
|
|
170
|
+
|
|
171
|
+
if (filterPhases != null && filterPhases.length > 0) {
|
|
172
|
+
const phaseSet = new Set(filterPhases);
|
|
173
|
+
result = result.filter((r) =>
|
|
174
|
+
phaseSet.has(r.status?.phase ?? RunnerPhase.UNSPECIFIED),
|
|
175
|
+
);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
if (searchQuery != null && searchQuery.trim().length > 0) {
|
|
179
|
+
const q = searchQuery.trim().toLowerCase();
|
|
180
|
+
result = result.filter((r) => {
|
|
181
|
+
const name = (r.metadata?.name ?? "").toLowerCase();
|
|
182
|
+
const hostname = (r.status?.connectionInfo?.hostname ?? "").toLowerCase();
|
|
183
|
+
return name.includes(q) || hostname.includes(q);
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
const comparator = buildComparator(sortBy, sortDirection);
|
|
188
|
+
result.sort(comparator);
|
|
189
|
+
return result;
|
|
190
|
+
}, [runners, filterPhases, searchQuery, sortBy, sortDirection]);
|
|
137
191
|
|
|
138
192
|
const handleRequestConfirm = useCallback(
|
|
139
193
|
(runnerId: string, action: "stop" | "delete") => {
|
|
@@ -175,31 +229,35 @@ export function RunnerListPanel({
|
|
|
175
229
|
|
|
176
230
|
if (error) {
|
|
177
231
|
return (
|
|
178
|
-
<
|
|
179
|
-
|
|
180
|
-
|
|
232
|
+
<div className={className}>
|
|
233
|
+
<EmptyState
|
|
234
|
+
variant="error"
|
|
235
|
+
resourceLabel="runners"
|
|
236
|
+
errorMessage={getUserMessage(error)}
|
|
237
|
+
action={{ label: "Retry", onClick: refetch }}
|
|
238
|
+
/>
|
|
239
|
+
</div>
|
|
181
240
|
);
|
|
182
241
|
}
|
|
183
242
|
|
|
184
243
|
if (sorted.length === 0) {
|
|
185
244
|
return (
|
|
186
|
-
<div
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
</p>
|
|
245
|
+
<div className={className}>
|
|
246
|
+
<EmptyState
|
|
247
|
+
variant={hasActiveFilters ? "zero-results" : "first-use"}
|
|
248
|
+
resourceLabel="runners"
|
|
249
|
+
icon={hasActiveFilters ? undefined : <RunnerIcon size={24} />}
|
|
250
|
+
title={
|
|
251
|
+
hasActiveFilters
|
|
252
|
+
? "No runners match your filters"
|
|
253
|
+
: undefined
|
|
254
|
+
}
|
|
255
|
+
description={
|
|
256
|
+
hasActiveFilters
|
|
257
|
+
? "Try adjusting your search or removing some filters."
|
|
258
|
+
: "Start a runner with stigmer up or launch one from your browser."
|
|
259
|
+
}
|
|
260
|
+
/>
|
|
203
261
|
</div>
|
|
204
262
|
);
|
|
205
263
|
}
|
|
@@ -571,106 +629,63 @@ function ActionMenu({
|
|
|
571
629
|
);
|
|
572
630
|
}
|
|
573
631
|
|
|
574
|
-
// ---------------------------------------------------------------------------
|
|
575
|
-
// PhaseBadge (internal)
|
|
576
|
-
// ---------------------------------------------------------------------------
|
|
577
|
-
|
|
578
|
-
function PhaseBadge({ phase }: { phase: RunnerPhase }) {
|
|
579
|
-
const starting = phase === RunnerPhase.STARTING;
|
|
580
|
-
return (
|
|
581
|
-
<span className="inline-flex shrink-0 items-center gap-1">
|
|
582
|
-
{starting ? (
|
|
583
|
-
<span
|
|
584
|
-
className="inline-block h-2.5 w-2.5 animate-spin rounded-full border border-primary border-t-transparent"
|
|
585
|
-
aria-hidden="true"
|
|
586
|
-
/>
|
|
587
|
-
) : (
|
|
588
|
-
<span
|
|
589
|
-
className={`inline-block h-1.5 w-1.5 rounded-full ${phaseDotColor(phase)}`}
|
|
590
|
-
aria-hidden="true"
|
|
591
|
-
/>
|
|
592
|
-
)}
|
|
593
|
-
<span className={cn("text-[0.65rem]", starting ? "text-primary" : "text-muted-foreground")}>
|
|
594
|
-
{phaseLabel(phase)}
|
|
595
|
-
</span>
|
|
596
|
-
</span>
|
|
597
|
-
);
|
|
598
|
-
}
|
|
599
|
-
|
|
600
632
|
// ---------------------------------------------------------------------------
|
|
601
633
|
// Utilities
|
|
602
634
|
// ---------------------------------------------------------------------------
|
|
603
635
|
|
|
604
|
-
function
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
return (a.metadata?.name ?? "").localeCompare(b.metadata?.name ?? "");
|
|
610
|
-
}
|
|
611
|
-
|
|
612
|
-
function formatRelativeTime(date: Date): string {
|
|
613
|
-
const diffMs = Date.now() - date.getTime();
|
|
636
|
+
function buildComparator(
|
|
637
|
+
sortBy: RunnerSortKey,
|
|
638
|
+
direction: "asc" | "desc",
|
|
639
|
+
): (a: Runner, b: Runner) => number {
|
|
640
|
+
const dir = direction === "desc" ? -1 : 1;
|
|
614
641
|
|
|
615
|
-
|
|
642
|
+
return (a, b) => {
|
|
643
|
+
let order: number;
|
|
616
644
|
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
645
|
+
switch (sortBy) {
|
|
646
|
+
case "name":
|
|
647
|
+
order = (a.metadata?.name ?? "").localeCompare(
|
|
648
|
+
b.metadata?.name ?? "",
|
|
649
|
+
);
|
|
650
|
+
break;
|
|
651
|
+
|
|
652
|
+
case "heartbeat": {
|
|
653
|
+
const ha = a.status?.lastHeartbeatAt;
|
|
654
|
+
const hb = b.status?.lastHeartbeatAt;
|
|
655
|
+
const ta = ha ? timestampDate(ha).getTime() : 0;
|
|
656
|
+
const tb = hb ? timestampDate(hb).getTime() : 0;
|
|
657
|
+
order = ta - tb;
|
|
658
|
+
break;
|
|
659
|
+
}
|
|
625
660
|
|
|
626
|
-
|
|
627
|
-
|
|
661
|
+
case "executions":
|
|
662
|
+
order =
|
|
663
|
+
(a.status?.currentExecutions ?? 0) -
|
|
664
|
+
(b.status?.currentExecutions ?? 0);
|
|
665
|
+
break;
|
|
666
|
+
|
|
667
|
+
case "phase":
|
|
668
|
+
default: {
|
|
669
|
+
const pa = a.status?.phase ?? RunnerPhase.UNSPECIFIED;
|
|
670
|
+
const pb = b.status?.phase ?? RunnerPhase.UNSPECIFIED;
|
|
671
|
+
order = PHASE_SORT_ORDER[pa] - PHASE_SORT_ORDER[pb];
|
|
672
|
+
if (order !== 0) return order * dir;
|
|
673
|
+
return (a.metadata?.name ?? "").localeCompare(
|
|
674
|
+
b.metadata?.name ?? "",
|
|
675
|
+
);
|
|
676
|
+
}
|
|
677
|
+
}
|
|
628
678
|
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
});
|
|
679
|
+
if (order !== 0) return order * dir;
|
|
680
|
+
// Stable secondary sort by name
|
|
681
|
+
return (a.metadata?.name ?? "").localeCompare(b.metadata?.name ?? "");
|
|
682
|
+
};
|
|
634
683
|
}
|
|
635
684
|
|
|
636
685
|
// ---------------------------------------------------------------------------
|
|
637
|
-
// Icons
|
|
686
|
+
// Icons (internal to RunnerListPanel)
|
|
638
687
|
// ---------------------------------------------------------------------------
|
|
639
688
|
|
|
640
|
-
function RunnerIcon({
|
|
641
|
-
size = 14,
|
|
642
|
-
className,
|
|
643
|
-
}: {
|
|
644
|
-
size?: number;
|
|
645
|
-
className?: string;
|
|
646
|
-
}) {
|
|
647
|
-
return (
|
|
648
|
-
<svg
|
|
649
|
-
width={size}
|
|
650
|
-
height={size}
|
|
651
|
-
viewBox="0 0 24 24"
|
|
652
|
-
fill="none"
|
|
653
|
-
stroke="currentColor"
|
|
654
|
-
strokeWidth="2"
|
|
655
|
-
strokeLinecap="round"
|
|
656
|
-
strokeLinejoin="round"
|
|
657
|
-
aria-hidden="true"
|
|
658
|
-
className={cn("shrink-0 text-muted-foreground", className)}
|
|
659
|
-
>
|
|
660
|
-
<rect x="4" y="4" width="16" height="16" rx="2" />
|
|
661
|
-
<rect x="9" y="9" width="6" height="6" />
|
|
662
|
-
<path d="M15 2v2" />
|
|
663
|
-
<path d="M15 20v2" />
|
|
664
|
-
<path d="M2 15h2" />
|
|
665
|
-
<path d="M2 9h2" />
|
|
666
|
-
<path d="M20 15h2" />
|
|
667
|
-
<path d="M20 9h2" />
|
|
668
|
-
<path d="M9 2v2" />
|
|
669
|
-
<path d="M9 20v2" />
|
|
670
|
-
</svg>
|
|
671
|
-
);
|
|
672
|
-
}
|
|
673
|
-
|
|
674
689
|
function MoreVerticalIcon() {
|
|
675
690
|
return (
|
|
676
691
|
<svg
|
package/src/runner/index.ts
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
export { useRunner } from "./useRunner";
|
|
2
|
+
export type {
|
|
3
|
+
UseRunnerReturn,
|
|
4
|
+
UseRunnerOptions,
|
|
5
|
+
} from "./useRunner";
|
|
6
|
+
|
|
7
|
+
export { RunnerDetailView } from "./RunnerDetailView";
|
|
8
|
+
export type { RunnerDetailViewProps } from "./RunnerDetailView";
|
|
9
|
+
|
|
1
10
|
export { useRunnerList } from "./useRunnerList";
|
|
2
11
|
export type {
|
|
3
12
|
UseRunnerListOptions,
|
|
@@ -39,7 +48,7 @@ export type {
|
|
|
39
48
|
} from "./useRunnerFileBrowser";
|
|
40
49
|
|
|
41
50
|
export { RunnerListPanel } from "./RunnerListPanel";
|
|
42
|
-
export type { RunnerListPanelProps } from "./RunnerListPanel";
|
|
51
|
+
export type { RunnerListPanelProps, RunnerSortKey } from "./RunnerListPanel";
|
|
43
52
|
|
|
44
53
|
export { WorkspaceRunnerSelector } from "./WorkspaceRunnerSelector";
|
|
45
54
|
export type { WorkspaceRunnerSelectorProps } from "./WorkspaceRunnerSelector";
|
|
@@ -51,3 +60,6 @@ export {
|
|
|
51
60
|
isTransitionalPhase,
|
|
52
61
|
PHASE_SORT_ORDER,
|
|
53
62
|
} from "./phase";
|
|
63
|
+
|
|
64
|
+
export { RunnerIcon, PhaseBadge, formatRelativeTime } from "./shared";
|
|
65
|
+
export type { RunnerIconProps, PhaseBadgeProps } from "./shared";
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { cn } from "@stigmer/theme";
|
|
4
|
+
import { RunnerPhase } from "@stigmer/protos/ai/stigmer/agentic/runner/v1/enum_pb";
|
|
5
|
+
import { phaseLabel, phaseDotColor } from "./phase";
|
|
6
|
+
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
// RunnerIcon
|
|
9
|
+
// ---------------------------------------------------------------------------
|
|
10
|
+
|
|
11
|
+
/** Props for {@link RunnerIcon}. */
|
|
12
|
+
export interface RunnerIconProps {
|
|
13
|
+
readonly size?: number;
|
|
14
|
+
readonly className?: string;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* CPU-chip icon representing a runner. Used across the runner list,
|
|
19
|
+
* fleet section, and empty states.
|
|
20
|
+
*/
|
|
21
|
+
export function RunnerIcon({ size = 14, className }: RunnerIconProps) {
|
|
22
|
+
return (
|
|
23
|
+
<svg
|
|
24
|
+
width={size}
|
|
25
|
+
height={size}
|
|
26
|
+
viewBox="0 0 24 24"
|
|
27
|
+
fill="none"
|
|
28
|
+
stroke="currentColor"
|
|
29
|
+
strokeWidth="2"
|
|
30
|
+
strokeLinecap="round"
|
|
31
|
+
strokeLinejoin="round"
|
|
32
|
+
aria-hidden="true"
|
|
33
|
+
className={cn("shrink-0 text-muted-foreground", className)}
|
|
34
|
+
>
|
|
35
|
+
<rect x="4" y="4" width="16" height="16" rx="2" />
|
|
36
|
+
<rect x="9" y="9" width="6" height="6" />
|
|
37
|
+
<path d="M15 2v2" />
|
|
38
|
+
<path d="M15 20v2" />
|
|
39
|
+
<path d="M2 15h2" />
|
|
40
|
+
<path d="M2 9h2" />
|
|
41
|
+
<path d="M20 15h2" />
|
|
42
|
+
<path d="M20 9h2" />
|
|
43
|
+
<path d="M9 2v2" />
|
|
44
|
+
<path d="M9 20v2" />
|
|
45
|
+
</svg>
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// ---------------------------------------------------------------------------
|
|
50
|
+
// PhaseBadge
|
|
51
|
+
// ---------------------------------------------------------------------------
|
|
52
|
+
|
|
53
|
+
/** Props for {@link PhaseBadge}. */
|
|
54
|
+
export interface PhaseBadgeProps {
|
|
55
|
+
readonly phase: RunnerPhase;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Compact badge showing a colored dot indicator and label for a runner
|
|
60
|
+
* phase. Renders a spinning indicator for the STARTING phase.
|
|
61
|
+
*/
|
|
62
|
+
export function PhaseBadge({ phase }: PhaseBadgeProps) {
|
|
63
|
+
const starting = phase === RunnerPhase.STARTING;
|
|
64
|
+
return (
|
|
65
|
+
<span className="inline-flex shrink-0 items-center gap-1">
|
|
66
|
+
{starting ? (
|
|
67
|
+
<span
|
|
68
|
+
className="inline-block h-2.5 w-2.5 animate-spin rounded-full border border-primary border-t-transparent"
|
|
69
|
+
aria-hidden="true"
|
|
70
|
+
/>
|
|
71
|
+
) : (
|
|
72
|
+
<span
|
|
73
|
+
className={`inline-block h-1.5 w-1.5 rounded-full ${phaseDotColor(phase)}`}
|
|
74
|
+
aria-hidden="true"
|
|
75
|
+
/>
|
|
76
|
+
)}
|
|
77
|
+
<span
|
|
78
|
+
className={cn(
|
|
79
|
+
"text-[0.65rem]",
|
|
80
|
+
starting ? "text-primary" : "text-muted-foreground",
|
|
81
|
+
)}
|
|
82
|
+
>
|
|
83
|
+
{phaseLabel(phase)}
|
|
84
|
+
</span>
|
|
85
|
+
</span>
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// ---------------------------------------------------------------------------
|
|
90
|
+
// formatRelativeTime
|
|
91
|
+
// ---------------------------------------------------------------------------
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Formats a Date as a compact relative time string.
|
|
95
|
+
*
|
|
96
|
+
* - < 60s → "just now"
|
|
97
|
+
* - < 60m → "5m ago"
|
|
98
|
+
* - < 24h → "3h ago"
|
|
99
|
+
* - < 30d → "12d ago"
|
|
100
|
+
* - otherwise → locale short date
|
|
101
|
+
*/
|
|
102
|
+
export function formatRelativeTime(date: Date): string {
|
|
103
|
+
const diffMs = Date.now() - date.getTime();
|
|
104
|
+
|
|
105
|
+
if (diffMs < 0) return "just now";
|
|
106
|
+
|
|
107
|
+
const seconds = Math.floor(diffMs / 1000);
|
|
108
|
+
if (seconds < 60) return "just now";
|
|
109
|
+
|
|
110
|
+
const minutes = Math.floor(seconds / 60);
|
|
111
|
+
if (minutes < 60) return `${minutes}m ago`;
|
|
112
|
+
|
|
113
|
+
const hours = Math.floor(minutes / 60);
|
|
114
|
+
if (hours < 24) return `${hours}h ago`;
|
|
115
|
+
|
|
116
|
+
const days = Math.floor(hours / 24);
|
|
117
|
+
if (days < 30) return `${days}d ago`;
|
|
118
|
+
|
|
119
|
+
return date.toLocaleDateString(undefined, {
|
|
120
|
+
month: "short",
|
|
121
|
+
day: "numeric",
|
|
122
|
+
year: "numeric",
|
|
123
|
+
});
|
|
124
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import type { Runner } from "@stigmer/protos/ai/stigmer/agentic/runner/v1/api_pb";
|
|
4
|
+
import { useStigmer } from "../hooks";
|
|
5
|
+
import { useFetch, type UseFetchOptions } from "../internal/useFetch";
|
|
6
|
+
|
|
7
|
+
/** Return value of {@link useRunner}. */
|
|
8
|
+
export interface UseRunnerReturn {
|
|
9
|
+
/** The fetched runner, or `null` while loading or on error. */
|
|
10
|
+
readonly runner: Runner | null;
|
|
11
|
+
/** `true` while the initial fetch is in flight. */
|
|
12
|
+
readonly isLoading: boolean;
|
|
13
|
+
/** Error from the last failed fetch, or `null` when healthy. */
|
|
14
|
+
readonly error: Error | null;
|
|
15
|
+
/** Discard cached data and re-fetch the runner from the server. */
|
|
16
|
+
readonly refetch: () => void;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/** Options for {@link useRunner}. */
|
|
20
|
+
export interface UseRunnerOptions {
|
|
21
|
+
/**
|
|
22
|
+
* Poll interval in milliseconds for automatic re-fetching.
|
|
23
|
+
*
|
|
24
|
+
* Useful for monitoring runner status transitions (e.g. Starting
|
|
25
|
+
* to Ready) without requiring manual refresh.
|
|
26
|
+
*/
|
|
27
|
+
readonly refetchInterval?: UseFetchOptions["refetchInterval"];
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Data hook that fetches a single runner by ID.
|
|
32
|
+
*
|
|
33
|
+
* Calls `stigmer.runner.get(id)` and returns the result with
|
|
34
|
+
* loading/error state. Returns `null` runner when `id` is `null`
|
|
35
|
+
* (no runner selected).
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```tsx
|
|
39
|
+
* const { runner, isLoading, error } = useRunner(runnerId);
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export function useRunner(
|
|
43
|
+
id: string | null,
|
|
44
|
+
options?: UseRunnerOptions,
|
|
45
|
+
): UseRunnerReturn {
|
|
46
|
+
const stigmer = useStigmer();
|
|
47
|
+
const refetchInterval = options?.refetchInterval;
|
|
48
|
+
|
|
49
|
+
const { data: runner, isLoading, error, refetch } = useFetch(
|
|
50
|
+
id
|
|
51
|
+
? async () => stigmer.runner.get(id)
|
|
52
|
+
: null,
|
|
53
|
+
[stigmer, id],
|
|
54
|
+
null as Runner | null,
|
|
55
|
+
{ refetchInterval },
|
|
56
|
+
);
|
|
57
|
+
|
|
58
|
+
return { runner, isLoading, error, refetch };
|
|
59
|
+
}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { describe, it, expect } from "vitest";
|
|
2
2
|
import { create } from "@bufbuild/protobuf";
|
|
3
3
|
import { timestampFromDate } from "@bufbuild/protobuf/wkt";
|
|
4
|
-
import { SessionSchema } from "@stigmer/protos/ai/stigmer/agentic/session/v1/api_pb";
|
|
5
4
|
import {
|
|
6
|
-
|
|
5
|
+
SessionSchema,
|
|
6
|
+
SessionStatusSchema,
|
|
7
|
+
} from "@stigmer/protos/ai/stigmer/agentic/session/v1/api_pb";
|
|
8
|
+
import {
|
|
7
9
|
ApiResourceAuditSchema,
|
|
8
10
|
ApiResourceAuditInfoSchema,
|
|
9
11
|
} from "@stigmer/protos/ai/stigmer/commons/apiresource/status_pb";
|
|
@@ -18,7 +20,7 @@ function makeSession(date: Date | null) {
|
|
|
18
20
|
auditInfo.createdAt = timestampFromDate(date);
|
|
19
21
|
const audit = create(ApiResourceAuditSchema);
|
|
20
22
|
audit.specAudit = auditInfo;
|
|
21
|
-
const status = create(
|
|
23
|
+
const status = create(SessionStatusSchema);
|
|
22
24
|
status.audit = audit;
|
|
23
25
|
session.status = status;
|
|
24
26
|
}
|