'object', 'properties' => [ 'status' => [ 'type' => 'string', 'description' => 'Final session status', 'enum' => ['completed', 'handed_off', 'paused', 'failed'], ], 'summary' => [ 'type' => 'string', 'description' => 'Final summary', ], ], 'required' => ['status'], ]; } public function handle(array $args, array $context = []): array { try { $status = $this->require($args, 'status'); } catch (\InvalidArgumentException $e) { return $this->error($e->getMessage()); } $sessionId = $context['session_id'] ?? null; if (! $sessionId) { return $this->error('No active session'); } $session = AgentSession::where('session_id', $sessionId)->first(); if (! $session) { return $this->error('Session not found'); } $session->end($status, $this->optional($args, 'summary')); return $this->success([ 'session' => [ 'session_id' => $session->session_id, 'status' => $session->status, 'duration' => $session->getDurationFormatted(), ], ]); } }