This commit completes the major refactoring initiative (Task 61) to migrate all AI-interacting task management functions to the unified service layer (`ai-services-unified.js`) and standardized configuration (`config-manager.js`).
Key Changes:
1. **Refactor `update-task-by-id` & `update-subtask-by-id`:**
* Replaced direct AI client logic and config fetching with calls to `generateTextService`.
* Preserved original prompt logic while ensuring JSON output format is requested.
* Implemented robust manual JSON parsing and Zod validation for text-based AI responses.
* Corrected logger implementation (`logFn`/`isMCP`/`report` pattern) for both CLI and MCP contexts.
* Ensured correct passing of `session` context to the unified service.
* Refactored associated direct function wrappers (`updateTaskByIdDirect`, `updateSubtaskByIdDirect`) to remove AI client initialization and call core logic appropriately.
2. **CLI Environment Loading:**
* Added `dotenv.config()` to `scripts/dev.js` to ensure consistent loading of the `.env` file for CLI operations.
3. **Obsolete Code Removal:**
* Deleted unused helper files:
* `scripts/modules/task-manager/get-subtasks-from-ai.js`
* `scripts/modules/task-manager/generate-subtask-prompt.js`
* `scripts/modules/ai-services.js`
* `scripts/modules/ai-client-factory.js`
* `mcp-server/src/core/utils/ai-client-utils.js`
* Removed corresponding imports/exports from `scripts/modules/task-manager.js` and `mcp-server/src/core/task-master-core.js`.
4. **Verification:**
* Successfully tested `update-task` and `update-subtask` via both CLI and MCP after refactoring.
5. **Task Management:**
* Marked subtasks 61.38, 61.39, 61.40, 61.41, and 61.33 as 'done'.
* Includes other task content/status updates as reflected in the diff.
This completes the migration of core AI features to the new architecture, enhancing maintainability and flexibility.
94 lines
4.0 KiB
JavaScript
94 lines
4.0 KiB
JavaScript
/**
|
|
* task-master-core.js
|
|
* Central module that imports and re-exports all direct function implementations
|
|
* for improved organization and maintainability.
|
|
*/
|
|
|
|
// Import direct function implementations
|
|
import { listTasksDirect } from './direct-functions/list-tasks.js';
|
|
import { getCacheStatsDirect } from './direct-functions/cache-stats.js';
|
|
import { parsePRDDirect } from './direct-functions/parse-prd.js';
|
|
import { updateTasksDirect } from './direct-functions/update-tasks.js';
|
|
import { updateTaskByIdDirect } from './direct-functions/update-task-by-id.js';
|
|
import { updateSubtaskByIdDirect } from './direct-functions/update-subtask-by-id.js';
|
|
import { generateTaskFilesDirect } from './direct-functions/generate-task-files.js';
|
|
import { setTaskStatusDirect } from './direct-functions/set-task-status.js';
|
|
import { showTaskDirect } from './direct-functions/show-task.js';
|
|
import { nextTaskDirect } from './direct-functions/next-task.js';
|
|
import { expandTaskDirect } from './direct-functions/expand-task.js';
|
|
import { addTaskDirect } from './direct-functions/add-task.js';
|
|
import { addSubtaskDirect } from './direct-functions/add-subtask.js';
|
|
import { removeSubtaskDirect } from './direct-functions/remove-subtask.js';
|
|
import { analyzeTaskComplexityDirect } from './direct-functions/analyze-task-complexity.js';
|
|
import { clearSubtasksDirect } from './direct-functions/clear-subtasks.js';
|
|
import { expandAllTasksDirect } from './direct-functions/expand-all-tasks.js';
|
|
import { removeDependencyDirect } from './direct-functions/remove-dependency.js';
|
|
import { validateDependenciesDirect } from './direct-functions/validate-dependencies.js';
|
|
import { fixDependenciesDirect } from './direct-functions/fix-dependencies.js';
|
|
import { complexityReportDirect } from './direct-functions/complexity-report.js';
|
|
import { addDependencyDirect } from './direct-functions/add-dependency.js';
|
|
import { removeTaskDirect } from './direct-functions/remove-task.js';
|
|
import { initializeProjectDirect } from './direct-functions/initialize-project-direct.js';
|
|
import { modelsDirect } from './direct-functions/models.js';
|
|
|
|
// Re-export utility functions
|
|
export { findTasksJsonPath } from './utils/path-utils.js';
|
|
|
|
// Use Map for potential future enhancements like introspection or dynamic dispatch
|
|
export const directFunctions = new Map([
|
|
['listTasksDirect', listTasksDirect],
|
|
['getCacheStatsDirect', getCacheStatsDirect],
|
|
['parsePRDDirect', parsePRDDirect],
|
|
['updateTasksDirect', updateTasksDirect],
|
|
['updateTaskByIdDirect', updateTaskByIdDirect],
|
|
['updateSubtaskByIdDirect', updateSubtaskByIdDirect],
|
|
['generateTaskFilesDirect', generateTaskFilesDirect],
|
|
['setTaskStatusDirect', setTaskStatusDirect],
|
|
['showTaskDirect', showTaskDirect],
|
|
['nextTaskDirect', nextTaskDirect],
|
|
['expandTaskDirect', expandTaskDirect],
|
|
['addTaskDirect', addTaskDirect],
|
|
['addSubtaskDirect', addSubtaskDirect],
|
|
['removeSubtaskDirect', removeSubtaskDirect],
|
|
['analyzeTaskComplexityDirect', analyzeTaskComplexityDirect],
|
|
['clearSubtasksDirect', clearSubtasksDirect],
|
|
['expandAllTasksDirect', expandAllTasksDirect],
|
|
['removeDependencyDirect', removeDependencyDirect],
|
|
['validateDependenciesDirect', validateDependenciesDirect],
|
|
['fixDependenciesDirect', fixDependenciesDirect],
|
|
['complexityReportDirect', complexityReportDirect],
|
|
['addDependencyDirect', addDependencyDirect],
|
|
['removeTaskDirect', removeTaskDirect],
|
|
['initializeProjectDirect', initializeProjectDirect],
|
|
['modelsDirect', modelsDirect]
|
|
]);
|
|
|
|
// Re-export all direct function implementations
|
|
export {
|
|
listTasksDirect,
|
|
getCacheStatsDirect,
|
|
parsePRDDirect,
|
|
updateTasksDirect,
|
|
updateTaskByIdDirect,
|
|
updateSubtaskByIdDirect,
|
|
generateTaskFilesDirect,
|
|
setTaskStatusDirect,
|
|
showTaskDirect,
|
|
nextTaskDirect,
|
|
expandTaskDirect,
|
|
addTaskDirect,
|
|
addSubtaskDirect,
|
|
removeSubtaskDirect,
|
|
analyzeTaskComplexityDirect,
|
|
clearSubtasksDirect,
|
|
expandAllTasksDirect,
|
|
removeDependencyDirect,
|
|
validateDependenciesDirect,
|
|
fixDependenciesDirect,
|
|
complexityReportDirect,
|
|
addDependencyDirect,
|
|
removeTaskDirect,
|
|
initializeProjectDirect,
|
|
modelsDirect
|
|
};
|