PR complete a task

Change-Id: Icb3f24db0ccd2914a528370d96b8c21168b24e98
diff --git a/server/agent/manager.go b/server/agent/manager.go
index ab2ce72..016f5ac 100644
--- a/server/agent/manager.go
+++ b/server/agent/manager.go
@@ -149,6 +149,32 @@
 	return m.isRunning[agentName]
 }
 
+// CompleteTaskForAgent finds the agent performing a task and resets its state
+func (m *Manager) CompleteTaskForAgent(taskID string) error {
+	// Get the task to find the assignee
+	task, err := m.taskManager.GetTask(taskID)
+	if err != nil {
+		return fmt.Errorf("failed to get task %s: %w", taskID, err)
+	}
+
+	// Find the agent assigned to this task
+	agent, exists := m.agents[task.Assignee]
+	if !exists {
+		return fmt.Errorf("agent %s not found for task %s", task.Assignee, taskID)
+	}
+
+	// Reset the agent's current task and running state
+	agent.CurrentTask = nil
+	agent.IsRunning = false
+	m.isRunning[agent.Name] = false
+
+	m.logger.Info("Completed task for agent",
+		slog.String("task_id", taskID),
+		slog.String("agent", agent.Name))
+
+	return nil
+}
+
 // Close shuts down the agent manager
 func (m *Manager) Close() error {
 	// Stop all running agents