export type TaskScope = { type: 'global'; } | { type: 'project'; projectName: string; }; export type EntityType = 'notes' | 'todos' | 'events' | 'research' | 'goals' | 'inbox' | 'people'; export type LogLevel = 'debug' | 'info' | 'warn' | 'error'; export interface TaskLogEntry { timestamp: Date; level: LogLevel; stepId: string; toolName: string; message: string; data?: unknown; } export interface TaskLogger { debug(message: string, data?: unknown): void; info(message: string, data?: unknown): void; warn(message: string, data?: unknown): void; error(message: string, data?: unknown): void; } export interface Canvas { type: 'note' | 'todo' | 'event' | 'research' | 'goal' | 'generic'; title: string; content: string; metadata?: Record; dirty: boolean; } export interface TaskContext { tokens: Record; previousOutputs: unknown[]; canvas?: Canvas; entity?: EntityType; } export type TaskStepStatus = 'pending' | 'running' | 'completed' | 'error' | 'skipped'; export interface TaskStep { id: string; toolName: string; input: unknown; output?: unknown; startedAt?: Date; completedAt?: Date; durationMs?: number; status: TaskStepStatus; error?: string; } export type TaskStatus = 'queued' | 'processing' | 'completed' | 'error' | 'paused'; export interface Task { id: string; name: string; scope: TaskScope; sessionId?: string; steps: TaskStep[]; currentStepIndex: number; context: TaskContext; log: TaskLogEntry[]; createdAt: Date; startedAt?: Date; completedAt?: Date; status: TaskStatus; error?: string; } export type QueryPayload = { query: 'queue.size'; } | { query: 'queue.status'; } | { query: 'service.memory'; } | { query: 'index.stats'; } | { query: 'index.graph'; } | { query: 'index.neighbors'; key: string; } | { query: 'index.rebuild'; } | { query: 'task.status'; taskId: string; }; export type ControlPayload = { control: 'queue.clear'; confirm: boolean; } | { control: 'queue.pause'; } | { control: 'queue.resume'; }; export interface ServiceRequest { id: string; type: 'task' | 'query' | 'control'; sessionId?: string; payload: Task | QueryPayload | ControlPayload; } export type ServiceResponseStatus = 'queued' | 'processing' | 'completed' | 'error'; export interface ServiceResponse { requestId: string; status: ServiceResponseStatus; result?: unknown; error?: string; } export interface QueueStatus { size: number; maxSize: number; isFull: boolean; processing: number; pending: number; completedCount: number; errorCount: number; } export declare class QueueFullError extends Error { constructor(); } export declare class ServiceNotRunningError extends Error { constructor(); } //# sourceMappingURL=protocol.d.ts.map