{
"event": "PreToolUse",
"tool_name": "Write",
"tool_input": {
"file_path": "\/var\/www\/dev.campus.systemische-tools.de\/crawler\/src\/domain\/ports\/browser_fetcher_port.py",
"content": "from __future__ import annotations\n\nfrom abc import ABC, abstractmethod\nfrom dataclasses import dataclass\nfrom typing import Mapping\n\nfrom src.domain.entities.js_error import JsError\nfrom src.domain.entities.resource import Resource\nfrom src.domain.value_objects.normalized_url import NormalizedUrl\nfrom src.domain.value_objects.performance_metrics import PerformanceMetrics\n\n\n@dataclass(frozen=True, slots=True)\nclass BrowserFetchResult:\n final_url: str\n status_code: int\n html: str\n headers: Mapping[str, str]\n js_errors: tuple[JsError, ...]\n resources: tuple[Resource, ...]\n performance: PerformanceMetrics\n render_time_ms: int\n screenshot_png: bytes | None\n\n\nclass BrowserFetcherPort(ABC):\n @abstractmethod\n async def fetch(self, url: NormalizedUrl, *, screenshot: bool = False) -> BrowserFetchResult: ...\n"
}
}
{
"tool_response": {
"type": "create",
"filePath": "\/var\/www\/dev.campus.systemische-tools.de\/crawler\/src\/domain\/ports\/browser_fetcher_port.py",
"content": "from __future__ import annotations\n\nfrom abc import ABC, abstractmethod\nfrom dataclasses import dataclass\nfrom typing import Mapping\n\nfrom src.domain.entities.js_error import JsError\nfrom src.domain.entities.resource import Resource\nfrom src.domain.value_objects.normalized_url import NormalizedUrl\nfrom src.domain.value_objects.performance_metrics import PerformanceMetrics\n\n\n@dataclass(frozen=True, slots=True)\nclass BrowserFetchResult:\n final_url: str\n status_code: int\n html: str\n headers: Mapping[str, str]\n js_errors: tuple[JsError, ...]\n resources: tuple[Resource, ...]\n performance: PerformanceMetrics\n render_time_ms: int\n screenshot_png: bytes | None\n\n\nclass BrowserFetcherPort(ABC):\n @abstractmethod\n async def fetch(self, url: NormalizedUrl, *, screenshot: bool = False) -> BrowserFetchResult: ...\n",
"structuredPatch": [],
"originalFile": null,
"userModified": false
}
}