1+ /**
2+ * Image generation task status helpers.
3+ *
4+ * These wrap the shared media task status helpers with image-specific task kind,
5+ * source id, duplicate-guard timing, and prompt/status wording.
6+ */
17import type { TaskRecord } from "../tasks/task-registry.types.js" ;
28import {
39 buildActiveMediaGenerationTaskPromptContextForSession ,
@@ -16,17 +22,20 @@ export const IMAGE_GENERATION_TASK_KIND = "image_generation";
1622const IMAGE_GENERATION_SOURCE_PREFIX = "image_generate" ;
1723const RECENT_IMAGE_GENERATION_DUPLICATE_GUARD_MS = 2 * 60_000 ;
1824
25+ /** Returns whether a task is an active image generation task. */
1926export function isActiveImageGenerationTask ( task : TaskRecord ) : boolean {
2027 return isActiveMediaGenerationTask ( {
2128 task,
2229 taskKind : IMAGE_GENERATION_TASK_KIND ,
2330 } ) ;
2431}
2532
33+ /** Extracts the provider id from an image generation task source. */
2634export function getImageGenerationTaskProviderId ( task : TaskRecord ) : string | undefined {
2735 return getMediaGenerationTaskProviderId ( task , IMAGE_GENERATION_SOURCE_PREFIX ) ;
2836}
2937
38+ /** Finds the active image generation task for a session and optional prompt. */
3039export function findActiveImageGenerationTaskForSession (
3140 sessionKey ?: string ,
3241 params ?: { prompt ?: string } ,
@@ -39,6 +48,7 @@ export function findActiveImageGenerationTaskForSession(
3948 } ) ;
4049}
4150
51+ /** Lists active image generation tasks for a session. */
4252export function listActiveImageGenerationTasksForSession ( sessionKey ?: string ) : TaskRecord [ ] {
4353 return listActiveMediaGenerationTasksForSession ( {
4454 sessionKey,
@@ -47,6 +57,7 @@ export function listActiveImageGenerationTasksForSession(sessionKey?: string): T
4757 } ) ;
4858}
4959
60+ /** Finds an image generation task that should block duplicate generation. */
5061export function findDuplicateGuardImageGenerationTaskForSession (
5162 sessionKey ?: string ,
5263 params ?: { prompt ?: string ; requestKey ?: string } ,
@@ -61,13 +72,15 @@ export function findDuplicateGuardImageGenerationTaskForSession(
6172 } ) ;
6273}
6374
75+ /** Builds structured status details for one image generation task. */
6476export function buildImageGenerationTaskStatusDetails ( task : TaskRecord ) : Record < string , unknown > {
6577 return buildMediaGenerationTaskStatusDetails ( {
6678 task,
6779 sourcePrefix : IMAGE_GENERATION_SOURCE_PREFIX ,
6880 } ) ;
6981}
7082
83+ /** Builds structured status details for a list of image generation tasks. */
7184export function buildImageGenerationTaskStatusListDetails (
7285 tasks : TaskRecord [ ] ,
7386) : Record < string , unknown > {
@@ -77,6 +90,7 @@ export function buildImageGenerationTaskStatusListDetails(
7790 } ) ;
7891}
7992
93+ /** Builds user-facing status text for one image generation task. */
8094export function buildImageGenerationTaskStatusText (
8195 task : TaskRecord ,
8296 params ?: { duplicateGuard ?: boolean } ,
@@ -91,6 +105,7 @@ export function buildImageGenerationTaskStatusText(
91105 } ) ;
92106}
93107
108+ /** Builds user-facing status text for active image generation tasks. */
94109export function buildImageGenerationTaskStatusListText ( tasks : TaskRecord [ ] ) : string {
95110 return buildMediaGenerationTaskStatusListText ( {
96111 tasks,
@@ -101,6 +116,7 @@ export function buildImageGenerationTaskStatusListText(tasks: TaskRecord[]): str
101116 } ) ;
102117}
103118
119+ /** Builds prompt context describing an active image generation task in the session. */
104120export function buildActiveImageGenerationTaskPromptContextForSession (
105121 sessionKey ?: string ,
106122) : string | undefined {
0 commit comments