/** * CLI command: next-task * Get the next best task with scoring breakdown. */ import { type ServerConfig, type ScoringWeights, type ScoringBiases } from '../config.js'; import { type ParsedAgentFile } from '../agent-parser.js'; /** * Score breakdown for a task. */ export interface TaskScoreBreakdown { taskId: string; agentNumber: string; title: string; totalScore: number; dependencyScore: number; priorityScore: number; workloadScore: number; biasScore: number; biasBreakdown: { plan: number; persona: number; status: number; agent: number; }; weights: ScoringWeights; reasons: string[]; } interface ScoringWarningsOptions { suppressWarnings?: boolean; } /** * Calculate dependency score. * Higher score when all dependencies are satisfied. * * @param agent - Agent to score * @param allAgents - All agents in the plan * @param maxScore - Maximum score for this category (default: 40) */ declare function calculateDependencyScore(agent: ParsedAgentFile, allAgents: ParsedAgentFile[], maxScore?: number): { score: number; reasons: string[]; }; /** * Calculate priority score. * Lower agent numbers get higher priority. * * @param agent - Agent to score * @param maxScore - Maximum score for this category (default: 30) */ declare function calculatePriorityScore(agent: ParsedAgentFile, maxScore?: number): { score: number; reasons: string[]; }; /** * Calculate workload score. * Based on file count - fewer files = easier task = higher score. * * @param agent - Agent to score * @param maxScore - Maximum score for this category (default: 30) */ declare function calculateWorkloadScore(agent: ParsedAgentFile, maxScore?: number): { score: number; reasons: string[]; }; /** * Calculate bias score. * Biases add or subtract from the total score based on plan, persona, or status. * * @param agent - Agent to score * @param biases - Scoring biases configuration */ declare function calculateBiasScore(agent: ParsedAgentFile, biases: ScoringBiases, agentBias?: number): { score: number; reasons: string[]; breakdown: TaskScoreBreakdown['biasBreakdown']; }; /** * Check if task is eligible (GAP status, dependencies satisfied). */ declare function isTaskEligible(agent: ParsedAgentFile, allAgents: ParsedAgentFile[]): { eligible: boolean; reason?: string; }; /** * Score a task and return breakdown. * * @param agent - Agent to score * @param allAgents - All agents in the plan * @param weights - Scoring weights configuration * @param biases - Scoring biases configuration */ declare function scoreTask(agent: ParsedAgentFile, allAgents: ParsedAgentFile[], weights: ScoringWeights, biases: ScoringBiases, agentBias?: number): TaskScoreBreakdown | null; /** * Result of getting next task. */ export interface NextTaskResult { task: TaskScoreBreakdown; otherAvailableTasks: number; } export interface ScoredTasksResult { planName: string; tasks: TaskScoreBreakdown[]; } /** * Get the next best task data from a plan. * Returns structured data for rendering. * * @param config - Server configuration * @param planId - Plan number or name * @returns Structured task data or error message */ export declare function getNextTaskData(config: ServerConfig, planId: string, options?: ScoringWarningsOptions): Promise; export declare function getScoredTasksData(config: ServerConfig, planId: string, options?: ScoringWarningsOptions): ScoredTasksResult | { error: string; }; export declare function getScoredTaskById(config: ServerConfig, taskId: string, options?: ScoringWarningsOptions): { planName: string; task: TaskScoreBreakdown; } | { error: string; }; /** * Get the next best task from a plan. * * @param config - Server configuration * @param planId - Plan number or name * @returns Formatted string output for CLI */ export declare function nextTask(config: ServerConfig, planId: string): Promise; export { calculateDependencyScore, calculatePriorityScore, calculateWorkloadScore, calculateBiasScore, isTaskEligible, scoreTask, }; //# sourceMappingURL=next-task.d.ts.map