runner->run('get_document', get_defined_vars(), function () use ($url): array { $document = $this->repository->findOneIndexedByUrl(trim($url)); if (null === $document) { throw new ToolCallException('No document at this url. Use a url returned by search_content.'); } $body = $document->getBodyMd(); $truncated = mb_strlen($body) > self::BODY_LIMIT; return [ 'type' => ContentSearch::publicType($document->getType()), 'title' => $document->getTitle(), 'url' => $document->getUrl(), 'site' => $document->getSite(), 'breadcrumb' => $document->getBreadcrumb(), 'body' => $truncated ? mb_substr($body, 0, self::BODY_LIMIT) : $body, 'truncated' => $truncated, ]; }); } }