📝 Update documentation to reflect @lilith/queue package structure

Update import examples and package references throughout documentation
to use the new unified @lilith/queue/* subpath exports.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Lilith 2025-12-30 20:28:34 -08:00
parent 7a162b4b8a
commit f9eb7750c8
9 changed files with 72 additions and 72 deletions

View file

@ -1,4 +1,4 @@
# @transquinnftw/queue-admin-backend
# @lilith/queue/admin/backend
REST API backend and WebSocket gateway for queue administration and monitoring.
@ -13,7 +13,7 @@ REST API backend and WebSocket gateway for queue administration and monitoring.
## Installation
```bash
pnpm add @transquinnftw/queue-admin-backend
pnpm add @lilith/queue/admin/backend
```
## Usage
@ -22,7 +22,7 @@ pnpm add @transquinnftw/queue-admin-backend
```typescript
import { Module } from '@nestjs/common';
import { QueueAdminModule } from '@transquinnftw/queue-admin-backend';
import { QueueAdminModule } from '@lilith/queue/admin/backend';
import { BullModule } from '@nestjs/bullmq';
@Module({
@ -167,7 +167,7 @@ socket.on('job_event', (event) => {
Injectable service for programmatic queue management:
```typescript
import { QueueAdminService } from '@transquinnftw/queue-admin-backend';
import { QueueAdminService } from '@lilith/queue/admin/backend';
@Injectable()
export class MyService {
@ -218,8 +218,8 @@ export class MyService {
## Dependencies
- `@transquinnftw/queue-core` - Core types and constants
- `@transquinnftw/queue-nestjs` - NestJS queue integration
- `@lilith/queue/core` - Core types and constants
- `@lilith/queue/nestjs` - NestJS queue integration
### Peer Dependencies

View file

@ -1,11 +1,11 @@
# @transquinnftw/queue-admin-frontend
# @lilith/queue/admin/frontend
React hooks for BullMQ queue dashboard integration.
## Installation
```bash
npm install @transquinnftw/queue-admin-frontend
npm install @lilith/queue/admin/frontend
```
Peer dependencies:
@ -33,7 +33,7 @@ function App() {
### Fetch Queue Metrics
```tsx
import { useQueueMetrics } from '@transquinnftw/queue-admin-frontend';
import { useQueueMetrics } from '@lilith/queue/admin/frontend';
function Dashboard() {
const { queues, metrics, isLoading, error } = useQueueMetrics({
@ -57,7 +57,7 @@ function Dashboard() {
### Real-time WebSocket Updates
```tsx
import { useQueueWebSocket } from '@transquinnftw/queue-admin-frontend';
import { useQueueWebSocket } from '@lilith/queue/admin/frontend';
function LiveMetrics() {
const { metrics, isConnected, subscribe, unsubscribe } = useQueueWebSocket({
@ -80,7 +80,7 @@ function LiveMetrics() {
### Fetch Jobs with Filters
```tsx
import { useJobs, JobState } from '@transquinnftw/queue-admin-frontend';
import { useJobs, JobState } from '@lilith/queue/admin/frontend';
function JobList({ queueName }: { queueName: string }) {
const [page, setPage] = useState(1);
@ -116,7 +116,7 @@ function JobList({ queueName }: { queueName: string }) {
### Queue Control Operations
```tsx
import { useQueueControl } from '@transquinnftw/queue-admin-frontend';
import { useQueueControl } from '@lilith/queue/admin/frontend';
function QueueControls({ queueName }: { queueName: string }) {
const {
@ -175,7 +175,7 @@ function QueueControls({ queueName }: { queueName: string }) {
The complete dashboard with all features integrated:
```tsx
import { QueueDashboard } from '@transquinnftw/queue-admin-frontend';
import { QueueDashboard } from '@lilith/queue/admin/frontend';
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
const queryClient = new QueryClient();
@ -230,7 +230,7 @@ import type {
CleanQueueOptions,
RetryJobOptions,
RetryAllFailedOptions,
} from '@transquinnftw/queue-admin-frontend';
} from '@lilith/queue/admin/frontend';
```
## Development

View file

@ -22,7 +22,7 @@ The desktop-chat-app is an Electron + React application with several ML-intensiv
Unlike NestJS applications, Electron main processes use BullMQ directly. Install the required packages:
```bash
pnpm add bullmq @transquinnftw/queue-core @transquinnftw/queue-ml
pnpm add bullmq @lilith/queue/core @lilith/queue/ml
```
### Queue Manager Service
@ -40,7 +40,7 @@ import {
shouldDeferJob,
type BaseJobData,
type QueueMetrics,
} from '@transquinnftw/queue-core';
} from '@lilith/queue/core';
/** Redis connection for the existing instance */
const REDIS_CONNECTION: ConnectionOptions = {
@ -251,8 +251,8 @@ import {
JobPriority,
type BaseJobData,
DEFAULT_ML_TIMEOUT,
} from '@transquinnftw/queue-core';
import { RequestBatchingStrategy } from '@transquinnftw/queue-ml';
} from '@lilith/queue/core';
import { RequestBatchingStrategy } from '@lilith/queue/ml';
import { BrowserWindow } from 'electron';
import { getQueue, registerWorker, addJob } from '../queue-manager.js';
@ -552,7 +552,7 @@ The current implementation has a 300-second timeout for image generation. With q
// src/main/services/queues/image-queue.ts
import { Queue, Worker, Job } from 'bullmq';
import { JobPriority, type BaseJobData, EXTENDED_ML_TIMEOUT } from '@transquinnftw/queue-core';
import { JobPriority, type BaseJobData, EXTENDED_ML_TIMEOUT } from '@lilith/queue/core';
import { BrowserWindow } from 'electron';
import { getQueue, registerWorker, addJob, getQueueEvents } from '../queue-manager.js';
@ -770,7 +770,7 @@ import {
} from '../services/queue-manager.js';
import { getGPULoadStatus } from '../services/queues/image-queue.js';
import type { QueueMetrics } from '@transquinnftw/queue-core';
import type { QueueMetrics } from '@lilith/queue/core';
/** Queue status update interval (ms) */
const STATUS_BROADCAST_INTERVAL = 5000;
@ -883,7 +883,7 @@ function stopStatusBroadcast(): void {
// src/renderer/hooks/useQueueStatus.ts
import { useEffect, useState, useCallback } from 'react';
import type { QueueMetrics } from '@transquinnftw/queue-core';
import type { QueueMetrics } from '@lilith/queue/core';
interface QueueStatus {
queues: QueueMetrics[];
@ -961,7 +961,7 @@ The indexing service already uses Redis. Extend it to use BullMQ for distributed
// src/main/services/queues/indexing-queue.ts
import { Queue, Worker, Job } from 'bullmq';
import { JobPriority, type BaseJobData } from '@transquinnftw/queue-core';
import { JobPriority, type BaseJobData } from '@lilith/queue/core';
import { BrowserWindow } from 'electron';
import { getQueue, registerWorker, addJob, getQueueEvents } from '../queue-manager.js';
@ -1106,7 +1106,7 @@ Wrap agent client requests with queue-based retry and rate limiting:
// src/main/services/queues/agent-queue.ts
import { Queue, Worker, Job } from 'bullmq';
import { JobPriority, type BaseJobData } from '@transquinnftw/queue-core';
import { JobPriority, type BaseJobData } from '@lilith/queue/core';
import { getQueue, registerWorker, addJob } from '../queue-manager.js';
import { AgentClient, type ConsultRequest, type ConsultResponse } from '../agent-client.js';

View file

@ -157,7 +157,7 @@ All files created at `/var/home/lilith/Code/@packages/@queue/`:
## Integration Points
### Tests Validate
- `@transquinnftw/queue-core` types and utilities
- `@lilith/queue/core` types and utilities
- `JobPriority` enum and priority ordering
- `isPeakHour()`, `shouldDeferJob()`, `calculatePeakDelay()` functions
- BullMQ integration (Queue, Worker, Job classes)

View file

@ -1,6 +1,6 @@
# Lilith Platform (egirl-platform) Queue Integration Guide
This guide covers integrating the `@transquinnftw/queue-*` packages into the Lilith Platform services.
This guide covers integrating the `@lilith/queue` packages into the Lilith Platform services.
## Table of Contents
@ -22,11 +22,11 @@ This guide covers integrating the `@transquinnftw/queue-*` packages into the Lil
| Package | Purpose | Key Exports |
|---------|---------|-------------|
| `@transquinnftw/queue-core` | Base types, priority enum, peak-hour utilities | `JobPriority`, `isPeakHour`, `generateCorrelationId`, `BaseJobData`, `QueueRegistration` |
| `@transquinnftw/queue-nestjs` | NestJS module with base classes | `QueueModule`, `BaseProcessor`, `BaseScheduler`, `BaseJobService`, `QueueManagerService` |
| `@transquinnftw/queue-ml` | ML batching strategies, 60s timeout | `BaseMLProcessor`, `RequestBatchingStrategy`, `PipelineBatcher` |
| `@transquinnftw/queue-reporting` | TypeORM entities for job lifecycle persistence | `ReportingModule`, `JobReporterService`, `JobAnalyticsService`, `JobEvent` |
| `@transquinnftw/queue-admin` | Backend API + React dashboard | `QueueAdminModule`, `QueueAdminService`, `QueueAdminGateway` |
| `@lilith/queue/core` | Base types, priority enum, peak-hour utilities | `JobPriority`, `isPeakHour`, `generateCorrelationId`, `BaseJobData`, `QueueRegistration` |
| `@lilith/queue/nestjs` | NestJS module with base classes | `QueueModule`, `BaseProcessor`, `BaseScheduler`, `BaseJobService`, `QueueManagerService` |
| `@lilith/queue/ml` | ML batching strategies, 60s timeout | `BaseMLProcessor`, `RequestBatchingStrategy`, `PipelineBatcher` |
| `@lilith/queue/reporting` | TypeORM entities for job lifecycle persistence | `ReportingModule`, `JobReporterService`, `JobAnalyticsService`, `JobEvent` |
| `@lilith/queue/admin` | Backend API + React dashboard | `QueueAdminModule`, `QueueAdminService`, `QueueAdminGateway` |
---
@ -34,16 +34,16 @@ This guide covers integrating the `@transquinnftw/queue-*` packages into the Lil
```bash
# Core packages (required)
pnpm add @transquinnftw/queue-core @transquinnftw/queue-nestjs
pnpm add @lilith/queue/core @lilith/queue/nestjs
# ML batching (for chatbot, TTS, translation services)
pnpm add @transquinnftw/queue-ml
pnpm add @lilith/queue/ml
# Job analytics and persistence (recommended for production)
pnpm add @transquinnftw/queue-reporting
pnpm add @lilith/queue/reporting
# Admin dashboard (optional, for queue management UI)
pnpm add @transquinnftw/queue-admin
pnpm add @lilith/queue/admin
```
---
@ -58,8 +58,8 @@ Replace the current `/var/home/lilith/Code/@applications/@egirl/egirl-platform/@
// src/shared/queue/queue.module.ts
import { Module, Global } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import { QueueModule as TransquinnQueueModule } from '@transquinnftw/queue-nestjs';
import { ReportingModule } from '@transquinnftw/queue-reporting';
import { QueueModule as TransquinnQueueModule } from '@lilith/queue/nestjs';
import { ReportingModule } from '@lilith/queue/reporting';
// Import queue registrations from features
import { ANALYTICS_QUEUE } from '../../features/analytics/queue/analytics.queue';
@ -101,7 +101,7 @@ Create queue registration files in each feature that needs a queue:
```typescript
// src/features/analytics/queue/analytics.queue.ts
import { QueueRegistration, JobPriority } from '@transquinnftw/queue-core';
import { QueueRegistration, JobPriority } from '@lilith/queue/core';
export const ANALYTICS_QUEUE: QueueRegistration = {
name: 'analytics',
@ -136,7 +136,7 @@ In each feature module that uses queues:
```typescript
// src/features/analytics/analytics.module.ts
import { Module } from '@nestjs/common';
import { QueueModule } from '@transquinnftw/queue-nestjs';
import { QueueModule } from '@lilith/queue/nestjs';
import { ANALYTICS_QUEUE } from './queue/analytics.queue';
import { AnalyticsProcessor } from './queue/analytics.processor';
import { AnalyticsScheduler } from './queue/analytics.scheduler';
@ -167,7 +167,7 @@ For LLM inference batching and TTS generation with 60s timeout:
```typescript
// src/features/chatbot/queue/chatbot.queue.ts
import { QueueRegistration, JobPriority } from '@transquinnftw/queue-core';
import { QueueRegistration, JobPriority } from '@lilith/queue/core';
export const CHATBOT_QUEUE: QueueRegistration = {
name: 'chatbot',
@ -190,8 +190,8 @@ export const CHATBOT_QUEUE: QueueRegistration = {
import { Processor } from '@nestjs/bullmq';
import { Logger } from '@nestjs/common';
import type { Job } from 'bullmq';
import { BaseMLProcessor, MLJobData } from '@transquinnftw/queue-ml';
import { JobReporterService } from '@transquinnftw/queue-reporting';
import { BaseMLProcessor, MLJobData } from '@lilith/queue/ml';
import { JobReporterService } from '@lilith/queue/reporting';
interface ChatbotJobData extends MLJobData {
conversationId: string;
@ -263,8 +263,8 @@ export class ChatbotProcessor extends BaseMLProcessor<ChatbotJobData, LLMRespons
import { Injectable, Logger } from '@nestjs/common';
import { InjectQueue } from '@nestjs/bullmq';
import type { Queue } from 'bullmq';
import { BaseJobService, AddJobResult } from '@transquinnftw/queue-nestjs';
import { JobPriority, BaseJobData } from '@transquinnftw/queue-core';
import { BaseJobService, AddJobResult } from '@lilith/queue/nestjs';
import { JobPriority, BaseJobData } from '@lilith/queue/core';
interface ChatbotJobData extends BaseJobData {
conversationId: string;
@ -334,7 +334,7 @@ Replace `@Cron` with `BaseScheduler` for content publishing:
```typescript
// src/features/content/queue/content.queue.ts
import { QueueRegistration, JobPriority } from '@transquinnftw/queue-core';
import { QueueRegistration, JobPriority } from '@lilith/queue/core';
export const CONTENT_QUEUE: QueueRegistration = {
name: 'content',
@ -357,7 +357,7 @@ import { Injectable, Logger } from '@nestjs/common';
import { InjectQueue } from '@nestjs/bullmq';
import { SchedulerRegistry } from '@nestjs/schedule';
import type { Queue } from 'bullmq';
import { BaseScheduler } from '@transquinnftw/queue-nestjs';
import { BaseScheduler } from '@lilith/queue/nestjs';
@Injectable()
export class ContentScheduler extends BaseScheduler {
@ -424,9 +424,9 @@ export class ContentScheduler extends BaseScheduler {
import { Processor } from '@nestjs/bullmq';
import { Logger, Injectable } from '@nestjs/common';
import type { Job } from 'bullmq';
import { BaseProcessor } from '@transquinnftw/queue-nestjs';
import { BaseJobData } from '@transquinnftw/queue-core';
import { JobReporterService } from '@transquinnftw/queue-reporting';
import { BaseProcessor } from '@lilith/queue/nestjs';
import { BaseJobData } from '@lilith/queue/core';
import { JobReporterService } from '@lilith/queue/reporting';
interface ContentJobData extends BaseJobData {
checkTime?: number;
@ -507,7 +507,7 @@ For S3 presigned URLs and digital delivery:
```typescript
// src/features/fulfillment/queue/fulfillment.queue.ts
import { QueueRegistration, JobPriority } from '@transquinnftw/queue-core';
import { QueueRegistration, JobPriority } from '@lilith/queue/core';
export const FULFILLMENT_QUEUE: QueueRegistration = {
name: 'fulfillment',
@ -538,9 +538,9 @@ export const FULFILLMENT_QUEUE: QueueRegistration = {
import { Processor } from '@nestjs/bullmq';
import { Logger } from '@nestjs/common';
import type { Job } from 'bullmq';
import { BaseProcessor } from '@transquinnftw/queue-nestjs';
import { BaseJobData } from '@transquinnftw/queue-core';
import { JobReporterService } from '@transquinnftw/queue-reporting';
import { BaseProcessor } from '@lilith/queue/nestjs';
import { BaseJobData } from '@lilith/queue/core';
import { JobReporterService } from '@lilith/queue/reporting';
interface FulfillmentJobData extends BaseJobData {
orderId: string;
@ -647,13 +647,13 @@ Run the TypeORM migration for the `job_events` table:
pnpm typeorm migration:run
# Or use the provided migration
# Copy from: @transquinnftw/queue-reporting/migrations/1700000000000-CreateJobEventsTable.ts
# Copy from: @lilith/queue/reporting/migrations/1700000000000-CreateJobEventsTable.ts
```
### Step 3: Inject JobReporterService in Processors
```typescript
import { JobReporterService } from '@transquinnftw/queue-reporting';
import { JobReporterService } from '@lilith/queue/reporting';
@Processor('my-queue')
export class MyProcessor extends BaseProcessor<MyJobData> {
@ -668,7 +668,7 @@ export class MyProcessor extends BaseProcessor<MyJobData> {
```typescript
// In a controller or service
import { JobAnalyticsService } from '@transquinnftw/queue-reporting';
import { JobAnalyticsService } from '@lilith/queue/reporting';
@Controller('admin/queue-analytics')
export class QueueAnalyticsController {
@ -702,7 +702,7 @@ export class QueueAnalyticsController {
```typescript
// src/app.module.ts (or a dedicated admin module)
import { QueueAdminModule } from '@transquinnftw/queue-admin';
import { QueueAdminModule } from '@lilith/queue/admin';
@Module({
imports: [
@ -761,7 +761,7 @@ socket.on('jobEvent', (event) => {
### Step 4: Frontend Dashboard
The `@transquinnftw/queue-admin` package includes React components:
The `@lilith/queue/admin` package includes React components:
```typescript
// Import dashboard components
@ -772,7 +772,7 @@ import {
JobsTable,
DLQManager,
JobDetailsModal,
} from '@transquinnftw/queue-admin/frontend';
} from '@lilith/queue/admin/frontend';
// Use in your admin UI
function AdminPage() {
@ -800,7 +800,7 @@ The existing setup at `@services/platform/src/shared/queue/` uses:
### Migration Steps
1. **Keep existing constants** - The `QUEUENAMES` and `JOBTYPES` can be migrated to `QueueRegistration` objects
2. **Update module imports** - Replace direct BullMQ imports with `@transquinnftw/queue-nestjs`
2. **Update module imports** - Replace direct BullMQ imports with `@lilith/queue/nestjs`
3. **Convert processors** - Extend `BaseProcessor` instead of `WorkerHost`
4. **Add schedulers** - Replace `@Cron` decorators with `BaseScheduler`
@ -821,7 +821,7 @@ export const JOBTYPES = {
**After:**
```typescript
// features/analytics/queue/analytics.queue.ts
import { QueueRegistration } from '@transquinnftw/queue-core';
import { QueueRegistration } from '@lilith/queue/core';
export const ANALYTICS_QUEUE: QueueRegistration = {
name: 'analytics',

View file

@ -50,7 +50,7 @@ The @queue packages include comprehensive testing at multiple levels:
┌─────────────────────────────────────────────────────┐
│ Real Queue Operations │
│ - BullMQ with actual Redis │
│ - @transquinnftw/queue-core utilities │
│ - @lilith/queue/core utilities │
│ - Priority system │
│ - Peak-hour logic │
└─────────────────────────────────────────────────────┘

View file

@ -139,7 +139,7 @@ Comprehensive test suite covering:
┌─────────────────────────────────────────────┐
@queue Packages │
│ - @transquinnftw/queue-core
│ - @lilith/queue/core
│ - BullMQ integration │
│ - Priority logic │
│ - Peak-hour utilities │
@ -353,7 +353,7 @@ describe('My Feature', () => {
- [BullMQ Documentation](https://docs.bullmq.io/)
- [Vitest Documentation](https://vitest.dev/)
- [@transquinnftw/queue-core](../core/README.md)
- [@lilith/queue/core](../core/README.md)
- [Peak Hour Logic](../core/src/utils/peak-hours.ts)
## Support

View file

@ -1,4 +1,4 @@
# @transquinnftw/queue-ml Test Suite
# @lilith/queue/ml Test Suite
## Overview

View file

@ -1,4 +1,4 @@
# @transquinnftw/queue-reporting
# @lilith/queue/reporting
Job lifecycle database persistence using TypeORM.
@ -14,7 +14,7 @@ The reporting package provides database persistence for job lifecycle events, en
## Installation
```bash
pnpm add @transquinnftw/queue-reporting
pnpm add @lilith/queue/reporting
```
## Setup
@ -47,7 +47,7 @@ export class AppModule {}
### 2. Import ReportingModule
```typescript
import { ReportingModule } from '@transquinnftw/queue-reporting';
import { ReportingModule } from '@lilith/queue/reporting';
@Module({
imports: [
@ -77,8 +77,8 @@ pnpm typeorm migration:run
Integrate with `BaseProcessor` from `@queue/nestjs`:
```typescript
import { BaseProcessor } from '@transquinnftw/queue-nestjs';
import { JobReporterService } from '@transquinnftw/queue-reporting';
import { BaseProcessor } from '@lilith/queue/nestjs';
import { JobReporterService } from '@lilith/queue/reporting';
@Processor('analytics')
export class AnalyticsProcessor extends BaseProcessor<AnalyticsJobData> {
@ -101,7 +101,7 @@ export class AnalyticsProcessor extends BaseProcessor<AnalyticsJobData> {
### Manual Event Logging
```typescript
import { JobReporterService } from '@transquinnftw/queue-reporting';
import { JobReporterService } from '@lilith/queue/reporting';
@Injectable()
export class CustomService {
@ -123,7 +123,7 @@ export class CustomService {
### Analytics Queries
```typescript
import { JobAnalyticsService } from '@transquinnftw/queue-reporting';
import { JobAnalyticsService } from '@lilith/queue/reporting';
@Controller('metrics')
export class MetricsController {
@ -161,7 +161,7 @@ export class MetricsController {
```typescript
import { Cron } from '@nestjs/schedule';
import { JobReporterService } from '@transquinnftw/queue-reporting';
import { JobReporterService } from '@lilith/queue/reporting';
@Injectable()
export class CleanupService {