conductor-tasks
Version:
Task Manager for AI Development
90 lines (89 loc) • 4.18 kB
TypeScript
import { Task, TaskPriority, TaskStatus, TaskNote, TaskTemplate, CodebaseAnalysisSummary } from '../core/types.js';
import { LLMManager } from '../llm/llmManager.js';
import { ContextManager } from '../core/contextManager.js';
export declare class TaskManager {
private tasks;
private tasksFilePath;
private workspaceRoot;
private llmManager;
private contextManager;
private config;
private initialized;
constructor(llmManager: LLMManager, contextManager: ContextManager, tasksFilePath?: string);
private getEnvInt;
private getEnvPriority;
initialize(projectName: string, projectDescription: string, filePath: string): Promise<void>;
private createDefaultTasksTemplate;
private createEnhancedInitialTasksWithLLM;
private parseTasksFromLLMInit;
private stringToPriority;
createTask(title: string, description: string, userInput?: string, parentId?: string): Promise<string>;
private mapTaskPriorityToContextPriority;
createSubtask(parentId: string, title: string, description: string, userInput?: string): Promise<string | undefined>;
getSubtasks(taskId: string): Task[];
getSubtaskHierarchy(taskId: string): any;
areAllSubtasksComplete(taskId: string): boolean;
calculateTaskProgress(taskId: string): number;
updateParentTaskStatus(taskId: string): void;
private enhanceTaskWithLLM;
private setDefaultTaskMetadata;
getTask(id: string): Task | undefined;
updateTask(id: string, updates: Partial<Omit<Task, "id" | "createdAt" | "updatedAt">>): Task | undefined;
addTaskNote(taskId: string, content: string, author: string, type: "progress" | "comment" | "blocker" | "solution"): TaskNote | undefined;
deleteTask(id: string): boolean;
getTasks(options?: {
status?: TaskStatus | TaskStatus[];
priority?: TaskPriority | TaskPriority[];
tags?: string[];
sortBy?: "priority" | "dueDate" | "createdAt" | "updatedAt" | "complexity";
sortDirection?: "asc" | "desc";
}): Task[];
getNextTask(): Task | undefined;
getTasksNeedingAttention(): Task[];
private sortTasksByPriority;
private extractJsonFromText;
parsePRD(content: string): Promise<string[]>;
loadTasks(): void;
saveTasks(): void;
private tasksToMarkdown;
exportTasksToMarkdown(): string;
private parseMdToTasks;
private determineStatusFromMarkdown;
private getPriorityEmoji;
getTasksFilePath(): string;
getTaskCount(): number;
getWorkspaceRoot(): string;
reloadTasks(): boolean;
getStructuredCodebaseAnalysis(projectName?: string, projectDescription?: string): Promise<CodebaseAnalysisSummary | null>;
private determineProjectType;
private identifyKeyEntryPoints;
analyzeCodebase(): Promise<string>;
private performDetailedFileAnalyses;
private extractSymbolsFromFile;
private _buildDependencyGraph;
private _getCodebaseContextString;
private extractFunctionSignature;
private getNodeComment;
private getTaskTemplatesDir;
listTaskTemplates(): Promise<string[]>;
getTaskTemplate(templateName: string): Promise<TaskTemplate | undefined>;
private _applyTemplateVariables;
private createTaskFromTemplateDefinition;
createTaskFromTemplate(templateName: string, variables: Record<string, string>, parentId?: string): Promise<string | undefined>;
generateDiffForChange(filePath: string, changeDescription: string, selection?: {
startLine: number;
endLine: number;
}): Promise<string>;
isInitialized(): boolean;
setTasksFilePath(filePath: string): void;
private normalizePath;
generateImplementationSteps(taskId: string): Promise<string>;
expandTask(taskId: string, expansionPrompt?: string): Promise<string>;
suggestTaskImprovements(taskId: string): Promise<string>;
mcpInitializeTasks(projectName: string, projectDescription: string, absoluteFilePath: string): Promise<string>;
mcpCreateTask(title: string, description: string, additionalContext?: string): Promise<string>;
getTaskDependencyTree(taskId: string): {
task: Task;
dependencies: Task[];
} | undefined;
}