Files
Codeman/src/types/task.ts
T

60 lines
1.7 KiB
TypeScript
Raw Normal View History

/**
* @fileoverview Task queue type definitions
*/
/** Status of a task in the queue */
export type TaskStatus = 'pending' | 'running' | 'completed' | 'failed';
/**
* Definition of a task to be executed
*/
export interface TaskDefinition {
/** Unique task identifier */
id: string;
/** Prompt to send to Claude */
prompt: string;
/** Working directory for task execution */
workingDir: string;
/** Priority level (higher = processed first) */
priority: number;
/** IDs of tasks that must complete first */
dependencies: string[];
/** Custom phrase to detect task completion */
completionPhrase?: string;
/** Timeout in milliseconds */
timeoutMs?: number;
}
/**
* Full state of a task including execution details
*/
export interface TaskState {
/** Unique task identifier */
id: string;
/** Prompt sent to Claude */
prompt: string;
/** Working directory for task execution */
workingDir: string;
/** Priority level (higher = processed first) */
priority: number;
/** IDs of tasks that must complete first */
dependencies: string[];
/** Custom phrase to detect task completion */
completionPhrase?: string;
/** Timeout in milliseconds */
timeoutMs?: number;
/** Current task status */
status: TaskStatus;
/** ID of session running this task, null if not assigned */
assignedSessionId: string | null;
/** Timestamp when task was created */
createdAt: number;
/** Timestamp when task started executing */
startedAt: number | null;
/** Timestamp when task completed */
completedAt: number | null;
/** Captured output from Claude */
output: string;
/** Error message if task failed */
error: string | null;
}