persona-community-5/workers/media-worker/internal/handlers/generate.go
rdev-worker 66ceb7e55f
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
build: /implement-feature persona-generation --requirements 'Implement the g...
2026-02-24 08:13:52 +00:00

42 lines
2.0 KiB
Go

// Package handlers re-exports generation job handlers from the shared package.
// The worker registers these handlers to process queue jobs.
package handlers
import (
"git.threesix.ai/jordan/persona-community-5/pkg/generation"
"git.threesix.ai/jordan/persona-community-5/pkg/logging"
"git.threesix.ai/jordan/persona-community-5/pkg/mediagen"
"git.threesix.ai/jordan/persona-community-5/pkg/personagen"
"git.threesix.ai/jordan/persona-community-5/pkg/queue"
"git.threesix.ai/jordan/persona-community-5/pkg/realtime"
"git.threesix.ai/jordan/persona-community-5/pkg/storage"
"git.threesix.ai/jordan/persona-community-5/pkg/textgen"
)
// ImageHandler returns a queue.Handler that processes image generation jobs.
func ImageHandler(mg *mediagen.Manager, store storage.Store, pub realtime.EventPublisher, logger *logging.Logger) queue.Handler {
return generation.ImageHandler(mg, store, pub, logger)
}
// VideoHandler returns a queue.Handler that processes video generation jobs.
func VideoHandler(mg *mediagen.Manager, store storage.Store, pub realtime.EventPublisher, logger *logging.Logger) queue.Handler {
return generation.VideoHandler(mg, store, pub, logger)
}
// TextHandler returns a queue.Handler that processes text generation jobs with streaming.
func TextHandler(tg *textgen.Manager, pub realtime.EventPublisher, logger *logging.Logger) queue.Handler {
return generation.TextHandler(tg, pub, logger)
}
// ChatResponseHandler returns a queue.Handler that generates AI chat responses.
func ChatResponseHandler(tg *textgen.Manager, pub realtime.EventPublisher, logger *logging.Logger) queue.Handler {
return generation.ChatResponseHandler(tg, pub, logger)
}
// PersonaGenerateHandler returns a queue.Handler for the staged persona generation pipeline.
// Each job carries a stage (spec, anchor, avatar, banner, gallery_batch, video) and processes
// one unit of work, updating the persona row and publishing SSE events after each stage.
func PersonaGenerateHandler(deps personagen.PipelineDeps) queue.Handler {
return personagen.StagedQueueHandler(deps)
}