/** * Task Completion Service - Centralized task completion logic * * REFACTORED: Extracted from TaskManager.completeTask() for Phase 4. * Handles task completion, queue management, file sync, context cleanup, and next task activation. * * @internal * @requirement REFACTOR-EXTRACT-TASK-CRUD-SERVICES - Phase 4: Extract Task CRUD Services */ import { TaskQueueManager } from './task-queue.js'; import { TaskFileSync } from './task-file-sync.js'; import { ContextInjector } from './context-injector.js'; import { RoleSystem } from './role-system.js'; import { RuleManager } from '../utils/rule-manager.js'; import { TaskMigration } from '../utils/migration.js'; /** * Task completion result * @requirement FR-COMPLETE-NEXTACTIONS-001, FR-COMPLETE-NEXTACTIONS-002 - Include commit result for nextActions */ export interface TaskCompletionResult { alreadyCompleted: boolean; commitResult?: { success: boolean; commitHash?: string; error?: string; }; } /** * Task Completion Service * * Centralizes task completion logic with queue management, file sync, context cleanup, and next task activation. */ export declare class TaskCompletionService { private queueManager; private fileSync; private contextInjector; private roleSystem; private ruleManager; private migration; private contextDir; private taskFile; private migrationChecked; private syncFileFromQueue; constructor(queueManager: TaskQueueManager, fileSync: TaskFileSync, contextInjector: ContextInjector, roleSystem: RoleSystem, ruleManager: RuleManager, migration: TaskMigration, contextDir: string, taskFile: string, syncFileFromQueueFn: (queueTask: any, preserveFields: string[]) => Promise); /** * Check and run migration if needed (only once per instance) */ private ensureMigration; /** * Complete the current active task * * Handles task completion with queue management, file sync, context cleanup, and next task activation. * * @param options Completion options * @param options.autoActivateNext Auto-activate next task in queue * @param options.noCommit Skip auto-commit of completion status * @returns Completion result with alreadyCompleted flag * @throws Error if no active task or task not at READY_TO_COMMIT state * @requirement FR-001, FR-002 - Auto-commit completion status with optional flag */ completeTask(options?: { autoActivateNext?: boolean; noCommit?: boolean; }): Promise; /** * Commit task completion status to git * Commits both tasks.json (queue) and current-task.json (mirror) * @param taskId Task ID for commit message * @returns Commit result with success status, optional commit hash, and error message * @requirement FR-001, FR-003, FR-004, FR-005, FR-006 - Auto-commit with proper handling * @requirement FR-COMPLETE-NEXTACTIONS-001, FR-COMPLETE-NEXTACTIONS-002 - Return commit result for nextActions */ private commitCompletionStatus; /** * Show reminder to commit completion status manually * @requirement FR-006 - Error handling with helpful messages */ private showCommitReminder; }