raw('tasks', ['type' => 'array', 'description' => 'Array of task objects. Each must contain headline and projectId.'])->required(); } /** * Handle the tool request. */ public function handle(array $arguments): ToolResult { $tasks = ($arguments['tasks'] ?? []); $results = []; $successCount = 0; $failureCount = 0; foreach ($tasks as $taskData) { try { $params = [ 'headline' => $taskData['headline'] ?? '', 'description' => $taskData['description'] ?? '', 'projectId' => $taskData['projectId'] ?? null, 'editorId' => $taskData['editorId'] ?? null, 'userId' => $taskData['userId'] ?? null, 'dateToFinish' => $taskData['dateToFinish'] ?? null, 'status' => $taskData['status'] ?? 3, 'sprint' => $taskData['sprint'] ?? null, 'editFrom' => $taskData['editFrom'] ?? null, 'editTo' => $taskData['editTo'] ?? null, 'milestone' => $taskData['milestone'] ?? null, 'type' => 'task', ]; $result = $this->ticketsService->quickAddTicket($params); if ($result) { $successCount++; $results[] = ['headline' => $taskData['headline'], 'status' => 'success', 'id' => $result]; } else { $failureCount++; $results[] = ['headline' => $taskData['headline'], 'status' => 'error', 'message' => 'Failed to create task']; } } catch (\Exception $e) { $failureCount++; $results[] = ['headline' => $taskData['headline'] ?? 'Unknown', 'status' => 'error', 'message' => $e->getMessage()]; } } return ToolResult::text( "Bulk task creation completed. Success: {$successCount}, Failed: {$failureCount}\n\n". Str::toMarkdown($results) ); } }