raw('updates', ['type' => 'array', 'description' => 'Array of update objects. Each must have id and the fields to update.'])->required(); } /** * Handle the tool request. */ public function handle(array $arguments): ToolResult { $updates = ($arguments['updates'] ?? []); $results = []; $successCount = 0; $failureCount = 0; foreach ($updates as $update) { if (! isset($update['id'])) { $failureCount++; $results[] = ['status' => 'error', 'message' => 'Missing task ID']; continue; } $id = $update['id']; unset($update['id']); if ($this->ticketsService->patch($id, $update)) { $successCount++; $results[] = ['id' => $id, 'status' => 'success']; } else { $failureCount++; $results[] = ['id' => $id, 'status' => 'error', 'message' => 'Failed to update task']; } } return ToolResult::text( "Bulk task update completed. Success: {$successCount}, Failed: {$failureCount}\n\n". Str::toMarkdown($results) ); } }