platform-codebase/@packages/@infrastructure/queue-admin/src/index.ts
Lilith cd26152cc3 Add job management features to queue-admin
- 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>
2026-01-01 16:46:25 -08:00

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';