- Add per-queue job detail page with filtering and search - Add JobTable, JobDetailPanel, JobStatusTabs components - Add hooks: useJobsList, useJobDetail, useJobSearch, useBulkJobActions - Add bulk operations: retry failed, cancel pending, clean by age - Add service/environment/DX-only filtering - Add job context types (JobContext, JobEnvironment) - Update QueueDashboardPage with dark theme and queue navigation - Extend backend controller with job CRUD and bulk endpoints - Support filtering by rich job context metadata 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
78 lines
2.6 KiB
TypeScript
78 lines
2.6 KiB
TypeScript
/**
|
|
* @lilith/queue-admin
|
|
*
|
|
* Queue management admin interface for Lilith Platform.
|
|
*
|
|
* Features:
|
|
* - Queue status dashboard with summary
|
|
* - Per-queue job management with filtering
|
|
* - Job detail panel with stacktrace and retry history
|
|
* - Bulk operations (retry failed, cancel pending, clean old)
|
|
* - Search jobs by ID or content
|
|
* - Real-time stats with auto-refresh
|
|
*
|
|
* @example
|
|
* ```tsx
|
|
* import { QueueDashboardPage, QueueDetailPage } from '@lilith/queue-admin';
|
|
*
|
|
* function AdminApp() {
|
|
* return (
|
|
* <Routes>
|
|
* <Route path="/queues" element={<QueueDashboardPage apiUrl="/api/admin/queues" />} />
|
|
* <Route path="/queues/:queueName" element={<QueueDetailPage apiUrl="/api/admin/queues" />} />
|
|
* </Routes>
|
|
* );
|
|
* }
|
|
* ```
|
|
*/
|
|
|
|
// Types
|
|
export type {
|
|
QueueStats,
|
|
QueueSummary,
|
|
JobInfo,
|
|
JobDetail,
|
|
JobStatus,
|
|
JobFilters,
|
|
JobContext,
|
|
JobEnvironment,
|
|
ServiceName,
|
|
ServiceInfo,
|
|
BulkOperationResult,
|
|
BulkActionType,
|
|
QueueAdminConfig,
|
|
} from './types';
|
|
|
|
export { SERVICES } from './types';
|
|
|
|
// Queue Hooks
|
|
export { useQueueStats, useQueueDetails, type UseQueueStatsOptions } from './hooks/useQueueStats';
|
|
export { useQueueActions, type UseQueueActionsOptions } from './hooks/useQueueActions';
|
|
|
|
// Job Hooks
|
|
export { useJobsList, type UseJobsListOptions } from './hooks/useJobsList';
|
|
export { useJobDetail, type UseJobDetailOptions } from './hooks/useJobDetail';
|
|
export { useJobSearch, type UseJobSearchOptions } from './hooks/useJobSearch';
|
|
export { useJobActions, type UseJobActionsOptions } from './hooks/useJobActions';
|
|
export { useBulkJobActions, type UseBulkJobActionsOptions } from './hooks/useBulkJobActions';
|
|
|
|
// Queue Components
|
|
export { QueueCard, type QueueCardProps } from './components/QueueCard';
|
|
export { QueueGrid, type QueueGridProps } from './components/QueueGrid';
|
|
export { QueueSummaryBar, type QueueSummaryBarProps } from './components/QueueSummaryBar';
|
|
|
|
// Job Components
|
|
export { JobTable, type JobTableProps } from './components/JobTable';
|
|
export { JobDetailPanel, type JobDetailPanelProps } from './components/JobDetailPanel';
|
|
export { JobStatusTabs, type JobStatusTabsProps } from './components/JobStatusTabs';
|
|
|
|
// Filter Components
|
|
export { ServiceFilter, type ServiceFilterProps } from './components/ServiceFilter';
|
|
export { SearchBar, type SearchBarProps } from './components/SearchBar';
|
|
|
|
// Action Components
|
|
export { BulkActionsBar, type BulkActionsBarProps } from './components/BulkActionsBar';
|
|
|
|
// Pages
|
|
export { QueueDashboardPage, type QueueDashboardPageProps } from './pages/QueueDashboardPage';
|
|
export { QueueDetailPage, type QueueDetailPageProps } from './pages/QueueDetailPage';
|