chore: cleanup tools to stop using rootFolder and remove unused imports

This commit is contained in:
Ralph Khreish
2025-05-02 21:50:35 +02:00
parent 8f8a3dc45d
commit 9f86306766
16 changed files with 14 additions and 69 deletions

View File

@@ -7,7 +7,6 @@ import { z } from 'zod';
import {
handleApiResult,
createErrorResponse,
getProjectRootFromSession,
withNormalizedProjectRoot
} from './utils.js';
import { addSubtaskDirect } from '../core/task-master-core.js';

View File

@@ -6,7 +6,6 @@
import { z } from 'zod';
import {
createErrorResponse,
getProjectRootFromSession,
handleApiResult,
withNormalizedProjectRoot
} from './utils.js';

View File

@@ -7,7 +7,6 @@ import { z } from 'zod';
import {
handleApiResult,
createErrorResponse,
getProjectRootFromSession,
withNormalizedProjectRoot
} from './utils.js';
import { clearSubtasksDirect } from '../core/task-master-core.js';

View File

@@ -7,7 +7,6 @@ import { z } from 'zod';
import {
handleApiResult,
createErrorResponse,
getProjectRootFromSession,
withNormalizedProjectRoot
} from './utils.js';
import { complexityReportDirect } from '../core/task-master-core.js';

View File

@@ -7,7 +7,6 @@ import { z } from 'zod';
import {
handleApiResult,
createErrorResponse,
getProjectRootFromSession,
withNormalizedProjectRoot
} from './utils.js';
import { expandAllTasksDirect } from '../core/task-master-core.js';

View File

@@ -7,7 +7,6 @@ import { z } from 'zod';
import {
handleApiResult,
createErrorResponse,
getProjectRootFromSession,
withNormalizedProjectRoot
} from './utils.js';
import { fixDependenciesDirect } from '../core/task-master-core.js';

View File

@@ -7,7 +7,6 @@ import { z } from 'zod';
import {
handleApiResult,
createErrorResponse,
getProjectRootFromSession,
withNormalizedProjectRoot
} from './utils.js';
import { generateTaskFilesDirect } from '../core/task-master-core.js';

View File

@@ -7,7 +7,6 @@ import { z } from 'zod';
import {
createErrorResponse,
handleApiResult,
getProjectRootFromSession,
withNormalizedProjectRoot
} from './utils.js';
import { listTasksDirect } from '../core/task-master-core.js';

View File

@@ -5,7 +5,6 @@
import { z } from 'zod';
import {
getProjectRootFromSession,
handleApiResult,
createErrorResponse,
withNormalizedProjectRoot

View File

@@ -32,22 +32,11 @@ export function registerNextTaskTool(server) {
try {
log.info(`Finding next task with args: ${JSON.stringify(args)}`);
// Get project root from args or session
const rootFolder =
args.projectRoot || getProjectRootFromSession(session, log);
// Ensure project root was determined
if (!rootFolder) {
return createErrorResponse(
'Could not determine project root. Please provide it explicitly or ensure your session contains valid root information.'
);
}
// Resolve the path to tasks.json
// Use args.projectRoot directly (guaranteed by withNormalizedProjectRoot)
let tasksJsonPath;
try {
tasksJsonPath = findTasksJsonPath(
{ projectRoot: rootFolder, file: args.file },
{ projectRoot: args.projectRoot, file: args.file },
log
);
} catch (error) {
@@ -59,9 +48,7 @@ export function registerNextTaskTool(server) {
const result = await nextTaskDirect(
{
// Pass the explicitly resolved path
tasksJsonPath: tasksJsonPath
// No other args specific to this tool
},
log
);

View File

@@ -60,35 +60,20 @@ export function registerParsePRDTool(server) {
`Executing ${toolName} tool with args: ${JSON.stringify(args)}`
);
// 1. Get Project Root
const rootFolder = args.projectRoot;
if (!rootFolder || !path.isAbsolute(rootFolder)) {
log.error(
`${toolName}: projectRoot is required and must be absolute.`
);
return createErrorResponse(
'projectRoot is required and must be absolute.'
);
}
log.info(`${toolName}: Project root: ${rootFolder}`);
// 2. Call Direct Function - Pass relevant args including projectRoot
// Path resolution (input/output) is handled within the direct function now
// Call Direct Function - Pass relevant args including projectRoot
const result = await parsePRDDirect(
{
// Pass args directly needed by the direct function
input: args.input, // Pass relative or absolute path
output: args.output, // Pass relative or absolute path
numTasks: args.numTasks, // Pass number (direct func handles default)
input: args.input,
output: args.output,
numTasks: args.numTasks,
force: args.force,
append: args.append,
projectRoot: rootFolder
projectRoot: args.projectRoot
},
log,
{ session } // Pass context object with session
{ session }
);
// 3. Handle Result
log.info(
`${toolName}: Direct function result: success=${result.success}`
);

View File

@@ -7,7 +7,6 @@ import { z } from 'zod';
import {
handleApiResult,
createErrorResponse,
getProjectRootFromSession,
withNormalizedProjectRoot
} from './utils.js';
import { removeDependencyDirect } from '../core/task-master-core.js';

View File

@@ -7,7 +7,6 @@ import { z } from 'zod';
import {
handleApiResult,
createErrorResponse,
getProjectRootFromSession,
withNormalizedProjectRoot
} from './utils.js';
import { removeSubtaskDirect } from '../core/task-master-core.js';
@@ -47,7 +46,7 @@ export function registerRemoveSubtaskTool(server) {
.string()
.describe('The directory of the project. Must be an absolute path.')
}),
execute: withNormalizedProjectRoot(async (args, { log, session }) => {
execute: withNormalizedProjectRoot(async (args, { log }) => {
try {
log.info(`Removing subtask with args: ${JSON.stringify(args)}`);

View File

@@ -7,7 +7,6 @@ import { z } from 'zod';
import {
handleApiResult,
createErrorResponse,
getProjectRootFromSession,
withNormalizedProjectRoot
} from './utils.js';
import { removeTaskDirect } from '../core/task-master-core.js';
@@ -36,7 +35,7 @@ export function registerRemoveTaskTool(server) {
.optional()
.describe('Whether to skip confirmation prompt (default: false)')
}),
execute: withNormalizedProjectRoot(async (args, { log, session }) => {
execute: withNormalizedProjectRoot(async (args, { log }) => {
try {
log.info(`Removing task(s) with ID(s): ${args.id}`);

View File

@@ -7,7 +7,6 @@ import { z } from 'zod';
import {
handleApiResult,
createErrorResponse,
getProjectRootFromSession,
withNormalizedProjectRoot
} from './utils.js';
import { setTaskStatusDirect } from '../core/task-master-core.js';
@@ -37,7 +36,7 @@ export function registerSetTaskStatusTool(server) {
.string()
.describe('The directory of the project. Must be an absolute path.')
}),
execute: withNormalizedProjectRoot(async (args, { log, session }) => {
execute: withNormalizedProjectRoot(async (args, { log }) => {
try {
log.info(`Setting status of task(s) ${args.id} to: ${args.status}`);

View File

@@ -40,40 +40,26 @@ export function registerUpdateSubtaskTool(server) {
try {
log.info(`Updating subtask with args: ${JSON.stringify(args)}`);
// 1. Get Project Root
const rootFolder = args.projectRoot;
if (!rootFolder || !path.isAbsolute(rootFolder)) {
log.error(
`${toolName}: projectRoot is required and must be absolute.`
);
return createErrorResponse(
'projectRoot is required and must be absolute.'
);
}
log.info(`${toolName}: Project root: ${rootFolder}`);
// 2. Resolve Tasks Path
let tasksJsonPath;
try {
tasksJsonPath = findTasksJsonPath(
{ projectRoot: rootFolder, file: args.file },
{ projectRoot: args.projectRoot, file: args.file },
log
);
} catch (error) {
log.error(`${toolName}: Error finding tasks.json: ${error.message}`);
return createErrorResponse(
`Failed to find tasks.json within project root '${rootFolder}': ${error.message}`
`Failed to find tasks.json: ${error.message}`
);
}
// 3. Call Direct Function - Include projectRoot
const result = await updateSubtaskByIdDirect(
{
tasksJsonPath: tasksJsonPath,
id: args.id,
prompt: args.prompt,
research: args.research,
projectRoot: rootFolder
projectRoot: args.projectRoot
},
log,
{ session }