http = $http; } /** @return array> */ public function list(string $sessionId): array { return $this->http->request('GET', "/api/sessions/{$this->http->encodeSegment($sessionId)}/labels") ?? []; } /** @return array */ public function get(string $sessionId, string $labelId): array { return $this->http->request('GET', "/api/sessions/{$this->http->encodeSegment($sessionId)}/labels/{$this->http->encodeSegment($labelId)}"); } /** @return array> */ public function forChat(string $sessionId, string $chatId): array { return $this->http->request('GET', "/api/sessions/{$this->http->encodeSegment($sessionId)}/labels/chat/{$this->http->encodeSegment($chatId)}") ?? []; } /** * Add a label to a chat. Requires an OPERATOR-level key. * * @param array $body Must contain 'labelId'. * @return array */ public function addToChat(string $sessionId, string $chatId, array $body): array { return $this->http->request('POST', "/api/sessions/{$this->http->encodeSegment($sessionId)}/labels/chat/{$this->http->encodeSegment($chatId)}", [], $body); } /** Remove a label from a chat. Requires an OPERATOR-level key. */ public function removeFromChat(string $sessionId, string $chatId, string $labelId): array { return $this->http->request('DELETE', "/api/sessions/{$this->http->encodeSegment($sessionId)}/labels/chat/{$this->http->encodeSegment($chatId)}/{$this->http->encodeSegment($labelId)}"); } }