{
"event": "PreToolUse",
"tool_name": "Edit",
"tool_input": {
"file_path": "\/var\/www\/dev.campus.systemische-tools.de\/crawler\/src\/infrastructure\/fetchers\/playwright_http_adapter.py",
"old_string": " response_time_ms=result.render_time_ms,\n ttfb_ms=None,\n error=None,\n )",
"new_string": " response_time_ms=result.render_time_ms,\n ttfb_ms=None,\n error=None,\n performance=result.performance,\n )",
"replace_all": false
}
}
{
"tool_response": {
"filePath": "\/var\/www\/dev.campus.systemische-tools.de\/crawler\/src\/infrastructure\/fetchers\/playwright_http_adapter.py",
"oldString": " response_time_ms=result.render_time_ms,\n ttfb_ms=None,\n error=None,\n )",
"newString": " response_time_ms=result.render_time_ms,\n ttfb_ms=None,\n error=None,\n performance=result.performance,\n )",
"originalFile": "\"\"\"Adapter: BrowserFetcher → HttpFetcherPort (so ProcessUrl can use Chromium).\"\"\"\n\nfrom __future__ import annotations\n\nfrom src.domain.ports.browser_fetcher_port import BrowserFetcherPort\nfrom src.domain.ports.http_fetcher_port import FetchResult, HttpFetcherPort\nfrom src.domain.value_objects.normalized_url import NormalizedUrl\n\n\nclass PlaywrightHttpAdapter(HttpFetcherPort):\n def __init__(self, browser: BrowserFetcherPort, *, screenshot: bool = False) -> None:\n self._browser = browser\n self._screenshot = screenshot\n\n async def fetch(self, url: NormalizedUrl) -> FetchResult:\n result = await self._browser.fetch(url, screenshot=self._screenshot)\n return FetchResult(\n final_url=result.final_url,\n status_code=result.status_code,\n redirect_chain=(),\n headers=dict(result.headers),\n body=result.html.encode(\"utf-8\", errors=\"replace\"),\n response_time_ms=result.render_time_ms,\n ttfb_ms=None,\n error=None,\n )\n",
"structuredPatch": [
{
"oldStart": 23,
"oldLines": 4,
"newStart": 23,
"newLines": 5,
"lines": [
" response_time_ms=result.render_time_ms,",
" ttfb_ms=None,",
" error=None,",
"+ performance=result.performance,",
" )"
]
}
],
"userModified": false,
"replaceAll": false
}
}