{
"event": "PreToolUse",
"tool_name": "Write",
"tool_input": {
"file_path": "\/var\/www\/dev.campus.systemische-tools.de\/crawler\/src\/domain\/services\/link_classifier.py",
"content": "from __future__ import annotations\n\nfrom dataclasses import dataclass, field\n\nfrom src.domain.value_objects.normalized_url import NormalizedUrl\n\n\n@dataclass(frozen=True, slots=True)\nclass LinkClassifier:\n registered_domain: str\n extra_internal_hosts: frozenset[str] = field(default_factory=frozenset)\n\n def is_internal(self, target: NormalizedUrl) -> bool:\n host = target.host\n if not host:\n return False\n if host in self.extra_internal_hosts:\n return True\n return host == self.registered_domain or host.endswith(\".\" + self.registered_domain)\n\n def is_external(self, target: NormalizedUrl) -> bool:\n return not self.is_internal(target)\n"
}
}
{
"tool_response": {
"type": "create",
"filePath": "\/var\/www\/dev.campus.systemische-tools.de\/crawler\/src\/domain\/services\/link_classifier.py",
"content": "from __future__ import annotations\n\nfrom dataclasses import dataclass, field\n\nfrom src.domain.value_objects.normalized_url import NormalizedUrl\n\n\n@dataclass(frozen=True, slots=True)\nclass LinkClassifier:\n registered_domain: str\n extra_internal_hosts: frozenset[str] = field(default_factory=frozenset)\n\n def is_internal(self, target: NormalizedUrl) -> bool:\n host = target.host\n if not host:\n return False\n if host in self.extra_internal_hosts:\n return True\n return host == self.registered_domain or host.endswith(\".\" + self.registered_domain)\n\n def is_external(self, target: NormalizedUrl) -> bool:\n return not self.is_internal(target)\n",
"structuredPatch": [],
"originalFile": null,
"userModified": false
}
}