integer('projectId')->description('Project ID of the milestones to retrieve.')->required(); } /** * Handle the tool request. */ public function handle(array $arguments): ToolResult { $projectId = (int) ($arguments['projectId'] ?? 0); $milestones = $this->ticketsService->getAllMilestones(['currentProject' => $projectId, 'type' => 'milestone']); $results = "## MILESTONES \n"; if (empty($milestones)) { $results .= 'No Milestones found for this project.'; return ToolResult::text($results); } foreach ($milestones as $milestone) { $progress = $this->ticketsService->getMilestoneProgress($milestone->id); $results .= 'Title: '.$milestone->headline."\n"; $results .= 'Start Date: '.$milestone->editFrom."\n"; $results .= 'End Date: '.$milestone->editTo."\n"; $results .= 'Color: '.$milestone->tags."\n"; $results .= 'Progress: '.$progress."% completed\n"; } return ToolResult::text($results); } }